@marsio/vue-draggable 1.0.4 → 1.0.6
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/build/cjs/Draggable.js +61 -26
- package/build/cjs/DraggableCore.js +59 -19
- package/build/cjs/type.js +5 -0
- package/build/cjs/utils/positionFns.js +1 -1
- package/build/cjs/utils/shims.js +10 -6
- package/build/cjs/utils/types.js +0 -4
- package/build/web/vue-draggable.min.js +1 -1420
- package/package.json +2 -3
- package/typings/index.d.ts +34 -30
- package/build/web/vue-draggable.min.89b0ffb5e5b82299d838.hot-update.js +0 -30
- package/build/web/vue-draggable_min.89b0ffb5e5b82299d838.hot-update.json +0 -1
package/build/cjs/Draggable.js
CHANGED
|
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "DraggableCore", {
|
|
|
12
12
|
exports.draggableProps = exports.default = void 0;
|
|
13
13
|
var _vue = require("vue");
|
|
14
14
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
15
|
-
var _vueTypes = _interopRequireDefault(require("vue-types"));
|
|
16
15
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
17
16
|
var _domFns = require("./utils/domFns");
|
|
18
17
|
var _positionFns = require("./utils/positionFns");
|
|
@@ -62,31 +61,66 @@ function _isSlot(s) {
|
|
|
62
61
|
}
|
|
63
62
|
const draggableProps = exports.draggableProps = {
|
|
64
63
|
..._DraggableCore.draggableCoreProps,
|
|
65
|
-
axis:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
64
|
+
axis: {
|
|
65
|
+
type: String,
|
|
66
|
+
default: 'both'
|
|
67
|
+
},
|
|
68
|
+
bounds: {
|
|
69
|
+
type: [Object, String, Boolean],
|
|
70
|
+
default: false
|
|
71
|
+
},
|
|
72
|
+
defaultClassName: {
|
|
73
|
+
type: String,
|
|
74
|
+
default: 'vue-draggable'
|
|
75
|
+
},
|
|
76
|
+
defaultClassNameDragging: {
|
|
77
|
+
type: String,
|
|
78
|
+
default: 'vue-draggable-dragging'
|
|
79
|
+
},
|
|
80
|
+
defaultClassNameDragged: {
|
|
81
|
+
type: String,
|
|
82
|
+
default: 'vue-draggable-dragged'
|
|
83
|
+
},
|
|
84
|
+
defaultPosition: {
|
|
85
|
+
type: Object,
|
|
86
|
+
default: () => ({
|
|
87
|
+
x: 0,
|
|
88
|
+
y: 0
|
|
89
|
+
})
|
|
90
|
+
},
|
|
91
|
+
positionOffset: {
|
|
92
|
+
type: Object
|
|
93
|
+
},
|
|
94
|
+
position: {
|
|
95
|
+
type: Object,
|
|
96
|
+
default: undefined
|
|
97
|
+
}
|
|
98
|
+
// axis: VueTypes.oneOf(['both', 'x', 'y', 'none']).def('both'),
|
|
99
|
+
// bounds: VueTypes.oneOfType([
|
|
100
|
+
// VueTypes.shape({
|
|
101
|
+
// left: VueTypes.number,
|
|
102
|
+
// right: VueTypes.number,
|
|
103
|
+
// top: VueTypes.number,
|
|
104
|
+
// bottom: VueTypes.number
|
|
105
|
+
// }),
|
|
106
|
+
// VueTypes.string,
|
|
107
|
+
// VueTypes.oneOf([false])
|
|
108
|
+
// ]).def(false),
|
|
109
|
+
// defaultClassName: VueTypes.string.def('vue-draggable'),
|
|
110
|
+
// defaultClassNameDragging: VueTypes.string.def('vue-draggable-dragging'),
|
|
111
|
+
// defaultClassNameDragged: VueTypes.string.def('vue-draggable-dragged'),
|
|
112
|
+
// defaultPosition: VueTypes.shape({
|
|
113
|
+
// x: VueTypes.number,
|
|
114
|
+
// y: VueTypes.number
|
|
115
|
+
// }).def({x: 0, y: 0}),
|
|
116
|
+
// positionOffset: VueTypes.shape({
|
|
117
|
+
// x: VueTypes.oneOfType([VueTypes.number, VueTypes.string]),
|
|
118
|
+
// y: VueTypes.oneOfType([VueTypes.number, VueTypes.string])
|
|
119
|
+
// }),
|
|
120
|
+
// position: VueTypes.shape({
|
|
121
|
+
// x: VueTypes.number,
|
|
122
|
+
// y: VueTypes.number
|
|
123
|
+
// }).def(undefined)
|
|
90
124
|
};
|
|
91
125
|
const componentName = 'Draggable';
|
|
92
126
|
const Draggable = exports.default = (0, _vue.defineComponent)({
|
|
@@ -105,6 +139,7 @@ const Draggable = exports.default = (0, _vue.defineComponent)({
|
|
|
105
139
|
let {
|
|
106
140
|
slots
|
|
107
141
|
} = _ref;
|
|
142
|
+
console.log('props', props);
|
|
108
143
|
const rootElement = (0, _vue.ref)(null);
|
|
109
144
|
if (props.position && !(props.dragFn || props.stopFn)) {
|
|
110
145
|
// eslint-disable-next-line no-console
|
|
@@ -4,13 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.draggableCoreProps = exports.draggableCoreDefaultProps = exports.defaultDraggableEventHandler = exports.default = void 0;
|
|
7
|
+
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
7
8
|
var _vue = require("vue");
|
|
8
|
-
var _vueTypes = _interopRequireDefault(require("vue-types"));
|
|
9
|
-
var _get = _interopRequireDefault(require("lodash/get"));
|
|
10
9
|
var _domFns = require("./utils/domFns");
|
|
11
10
|
var _positionFns = require("./utils/positionFns");
|
|
12
|
-
var _shims = require("./utils/shims");
|
|
13
11
|
var _log = _interopRequireDefault(require("./utils/log"));
|
|
12
|
+
var _shims = require("./utils/shims");
|
|
14
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
14
|
/**
|
|
16
15
|
* DraggableCore is a low-level wrapper for draggable functionality, allowing for more fine-grained control over drag events.
|
|
@@ -47,6 +46,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
47
46
|
* Note: This component does not render any DOM elements itself; it merely wraps its default slot's content with draggable functionality.
|
|
48
47
|
*/
|
|
49
48
|
|
|
49
|
+
const funcVoid = function () {};
|
|
50
50
|
// Simple abstraction for dragging events names.
|
|
51
51
|
const eventsFor = {
|
|
52
52
|
touch: {
|
|
@@ -63,27 +63,67 @@ const eventsFor = {
|
|
|
63
63
|
|
|
64
64
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
65
65
|
const defaultDraggableEventHandler = (e, data) => true;
|
|
66
|
-
exports.defaultDraggableEventHandler = defaultDraggableEventHandler;
|
|
67
|
-
const funcVoid = function () {};
|
|
68
66
|
|
|
69
67
|
// Default to mouse events.
|
|
68
|
+
exports.defaultDraggableEventHandler = defaultDraggableEventHandler;
|
|
70
69
|
let dragEventFor = eventsFor.mouse;
|
|
71
70
|
const draggableCoreDefaultProps = exports.draggableCoreDefaultProps = {
|
|
72
|
-
allowAnyClick:
|
|
73
|
-
disabled:
|
|
74
|
-
enableUserSelectHack:
|
|
75
|
-
startFn:
|
|
76
|
-
dragFn:
|
|
77
|
-
stopFn:
|
|
78
|
-
scale:
|
|
71
|
+
// allowAnyClick: VueTypes.bool.def(false),
|
|
72
|
+
// disabled: VueTypes.bool.def(false),
|
|
73
|
+
// enableUserSelectHack: VueTypes.bool.def(true),
|
|
74
|
+
// startFn: VueTypes.func.def(defaultDraggableEventHandler).def(funcVoid),
|
|
75
|
+
// dragFn: VueTypes.func.def(defaultDraggableEventHandler).def(funcVoid),
|
|
76
|
+
// stopFn: VueTypes.func.def(defaultDraggableEventHandler).def(funcVoid),
|
|
77
|
+
// scale: VueTypes.number.def(1),
|
|
78
|
+
allowAnyClick: {
|
|
79
|
+
type: Boolean,
|
|
80
|
+
default: false
|
|
81
|
+
},
|
|
82
|
+
disabled: {
|
|
83
|
+
type: Boolean,
|
|
84
|
+
default: false
|
|
85
|
+
},
|
|
86
|
+
enableUserSelectHack: {
|
|
87
|
+
type: Boolean,
|
|
88
|
+
default: true
|
|
89
|
+
},
|
|
90
|
+
startFn: {
|
|
91
|
+
type: Function,
|
|
92
|
+
default: () => funcVoid
|
|
93
|
+
},
|
|
94
|
+
dragFn: {
|
|
95
|
+
type: Function,
|
|
96
|
+
default: () => funcVoid
|
|
97
|
+
},
|
|
98
|
+
stopFn: {
|
|
99
|
+
type: Function,
|
|
100
|
+
default: () => funcVoid
|
|
101
|
+
},
|
|
102
|
+
scale: {
|
|
103
|
+
type: Number,
|
|
104
|
+
default: 1
|
|
105
|
+
}
|
|
79
106
|
};
|
|
80
107
|
const draggableCoreProps = exports.draggableCoreProps = {
|
|
81
108
|
...draggableCoreDefaultProps,
|
|
82
|
-
cancel:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
109
|
+
cancel: {
|
|
110
|
+
type: String
|
|
111
|
+
},
|
|
112
|
+
offsetParent: {
|
|
113
|
+
type: Object,
|
|
114
|
+
default: () => document.body,
|
|
115
|
+
validator: value => (0, _shims.propIsNotNode)(value)
|
|
116
|
+
},
|
|
117
|
+
grid: {
|
|
118
|
+
type: Array
|
|
119
|
+
},
|
|
120
|
+
handle: {
|
|
121
|
+
type: String
|
|
122
|
+
},
|
|
123
|
+
nodeRef: {
|
|
124
|
+
type: Object,
|
|
125
|
+
default: () => null
|
|
126
|
+
}
|
|
87
127
|
};
|
|
88
128
|
const componentName = 'DraggableCore';
|
|
89
129
|
var _default = exports.default = (0, _vue.defineComponent)({
|
|
@@ -110,7 +150,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
110
150
|
mounted: false
|
|
111
151
|
});
|
|
112
152
|
const findDOMNode = () => {
|
|
113
|
-
return
|
|
153
|
+
return props.nodeRef?.value || rootElement.value;
|
|
114
154
|
};
|
|
115
155
|
const handleDrag = e => {
|
|
116
156
|
// Get the current drag point from the event. This is used as the offset.
|
|
@@ -210,7 +250,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
210
250
|
|
|
211
251
|
// Get nodes. Be sure to grab relative document (could be iframed)
|
|
212
252
|
const thisNode = findDOMNode();
|
|
213
|
-
if (!(0,
|
|
253
|
+
if (!(0, _get2.default)(thisNode, 'ownerDocument.body')) {
|
|
214
254
|
// throw new Error('<DraggableCore> not mounted on DragStart!');
|
|
215
255
|
}
|
|
216
256
|
const {
|
|
@@ -18,7 +18,7 @@ const cloneBounds = bounds => {
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
// This one's a bit tricky. We're trying to find the actual DOM node for a draggable component.
|
|
21
|
-
// It's using some internal
|
|
21
|
+
// It's using some internal stuff, so don't worry if it looks a bit weird.
|
|
22
22
|
const findDOMNode = draggable => {
|
|
23
23
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
24
|
return draggable.findDOMNode();
|
package/build/cjs/utils/shims.js
CHANGED
|
@@ -9,8 +9,6 @@ exports.int = int;
|
|
|
9
9
|
exports.isFunction = isFunction;
|
|
10
10
|
exports.isNum = isNum;
|
|
11
11
|
exports.propIsNotNode = propIsNotNode;
|
|
12
|
-
var _vueTypes = _interopRequireDefault(require("vue-types"));
|
|
13
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
12
|
/**
|
|
15
13
|
* Searches for an element in an array or TouchList that satisfies the provided callback function.
|
|
16
14
|
* @param {T[] | TouchList} array - The array or TouchList to search.
|
|
@@ -60,12 +58,18 @@ function int(a) {
|
|
|
60
58
|
* Creates a custom Vue prop type that fails validation.
|
|
61
59
|
* @param {string} propsName - The name of the prop.
|
|
62
60
|
* @param {string} componentName - The name of the component.
|
|
63
|
-
* @returns {VueTypeDef<T>} A VueTypeDef that always fails validation.
|
|
64
61
|
*/
|
|
65
62
|
function dontSetMe(propsName, componentName) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
return {
|
|
64
|
+
validator() {
|
|
65
|
+
if (!propsName) {
|
|
66
|
+
console.error(`Invalid prop ${propsName} passed to ${componentName} - do not set this, set it on the child.`);
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
// 如果有其他验证逻辑,可以在这里添加
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
69
73
|
}
|
|
70
74
|
|
|
71
75
|
/**
|
package/build/cjs/utils/types.js
CHANGED
|
@@ -21,9 +21,5 @@ class TouchEvent2 extends TouchEvent {
|
|
|
21
21
|
|
|
22
22
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
23
23
|
|
|
24
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
25
|
-
|
|
26
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
27
|
-
|
|
28
24
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
29
25
|
exports.TouchEvent2 = TouchEvent2;
|