@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.
@@ -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: _vueTypes.default.oneOf(['both', 'x', 'y', 'none']).def('both'),
66
- bounds: _vueTypes.default.oneOfType([_vueTypes.default.shape({
67
- left: _vueTypes.default.number,
68
- right: _vueTypes.default.number,
69
- top: _vueTypes.default.number,
70
- bottom: _vueTypes.default.number
71
- }), _vueTypes.default.string, _vueTypes.default.oneOf([false])]).def(false),
72
- defaultClassName: _vueTypes.default.string.def('vue-draggable'),
73
- defaultClassNameDragging: _vueTypes.default.string.def('vue-draggable-dragging'),
74
- defaultClassNameDragged: _vueTypes.default.string.def('vue-draggable-dragged'),
75
- defaultPosition: _vueTypes.default.shape({
76
- x: _vueTypes.default.number,
77
- y: _vueTypes.default.number
78
- }).def({
79
- x: 0,
80
- y: 0
81
- }),
82
- positionOffset: _vueTypes.default.shape({
83
- x: _vueTypes.default.oneOfType([_vueTypes.default.number, _vueTypes.default.string]),
84
- y: _vueTypes.default.oneOfType([_vueTypes.default.number, _vueTypes.default.string])
85
- }),
86
- position: _vueTypes.default.shape({
87
- x: _vueTypes.default.number,
88
- y: _vueTypes.default.number
89
- }).def(undefined)
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: _vueTypes.default.bool.def(false),
73
- disabled: _vueTypes.default.bool.def(false),
74
- enableUserSelectHack: _vueTypes.default.bool.def(true),
75
- startFn: _vueTypes.default.func.def(defaultDraggableEventHandler).def(funcVoid),
76
- dragFn: _vueTypes.default.func.def(defaultDraggableEventHandler).def(funcVoid),
77
- stopFn: _vueTypes.default.func.def(defaultDraggableEventHandler).def(funcVoid),
78
- scale: _vueTypes.default.number.def(1)
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: _vueTypes.default.string,
83
- offsetParent: _vueTypes.default.custom(_shims.propIsNotNode, 'Draggable\'s offsetParent must be a DOM Node.'),
84
- grid: _vueTypes.default.arrayOf(_vueTypes.default.number),
85
- handle: _vueTypes.default.string,
86
- nodeRef: _vueTypes.default.object.def(() => null)
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 (0, _get.default)(props, 'nodeRef.value') || rootElement.value;
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, _get.default)(thisNode, 'ownerDocument.body')) {
253
+ if (!(0, _get2.default)(thisNode, 'ownerDocument.body')) {
214
254
  // throw new Error('<DraggableCore> not mounted on DragStart!');
215
255
  }
216
256
  const {
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -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 React stuff, so don't worry if it looks a bit weird.
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();
@@ -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
- const failedPropType = () => !propsName;
67
- const message = `Invalid prop ${propsName} passed to ${componentName} - do not set this, set it on the child.`;
68
- return _vueTypes.default.custom(failedPropType, message);
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
  /**
@@ -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;