tdesign-vue-next
Version:
TDesign Component for vue-next
157 lines (153 loc) • 4.98 kB
JavaScript
/**
* tdesign v1.11.5
* (c) 2025 tdesign
* @license MIT
*/
import { DragPosition } from './useDraggable.mjs';
import { emitEvent } from '../util.mjs';
import 'lodash-es';
import '../adapt.mjs';
import 'vue';
import '../../utils/withInstall.mjs';
import '../../hooks/useVModel.mjs';
import '../../hooks/useDefaultValue.mjs';
import 'tdesign-icons-vue-next';
import '../../checkbox/index.mjs';
import '../../checkbox/checkbox.mjs';
import '../../_chunks/dep-6d9c1bfc.mjs';
import '../../_chunks/dep-9f375e51.mjs';
import '../../_chunks/dep-da95471f.mjs';
import '../../_chunks/dep-4ed7019e.mjs';
import '../../checkbox/props.mjs';
import '../../hooks/useRipple.mjs';
import '../../hooks/useKeepAnimation.mjs';
import '../../hooks/useConfig.mjs';
import '../../config-provider/hooks/useConfig.mjs';
import '../../config-provider/utils/context.mjs';
import '../../_chunks/dep-a5ae2f3f.mjs';
import '../../_chunks/dep-82d2a14f.mjs';
import '../../_chunks/dep-37fa6ccb.mjs';
import '../../_chunks/dep-7fb24b17.mjs';
import '../../_chunks/dep-6cfc5734.mjs';
import '../../_chunks/dep-46ec3e86.mjs';
import '../../utils/render-tnode.mjs';
import '../../checkbox/consts/index.mjs';
import '../../checkbox/hooks/useCheckboxLazyLoad.mjs';
import '../../_chunks/dep-221379fb.mjs';
import '../../checkbox/hooks/useKeyboardEvent.mjs';
import '../../_chunks/dep-251d5b63.mjs';
import '../../hooks/useDisabled.mjs';
import '../../hooks/useReadonly.mjs';
import '../../checkbox/group.mjs';
import '../../_chunks/dep-03e058e5.mjs';
import '../../checkbox/checkbox-group-props.mjs';
import '../../hooks/slot.mjs';
import './style/css.mjs';
import '../../loading/index.mjs';
import '../../loading/directive.mjs';
import '../../loading/plugin.mjs';
import '../../loading/loading.mjs';
import '../../loading/icon/gradient.mjs';
import '../../_chunks/dep-3d81ac0a.mjs';
import '../../_chunks/dep-6a79c950.mjs';
import '../../utils/dom.mjs';
import '../../hooks/useTeleport.mjs';
import '../../loading/props.mjs';
import '../../hooks/useGlobalIcon.mjs';
import '../../hooks/useLazyLoad.mjs';
import '../../hooks/useVirtualScrollNew.mjs';
import '../../hooks/useResizeObserver.mjs';
import '../../_chunks/dep-3f189a8c.mjs';
import '../../_chunks/dep-3630a49c.mjs';
import '../../_chunks/dep-7dcc7954.mjs';
import '../../_chunks/dep-88187fb2.mjs';
import '../../_chunks/dep-198540b0.mjs';
function useDragHandle(state) {
var props = state.props,
context = state.context,
scope = state.scope,
store = state.store;
var dragNode = null;
var handleDragStart = function handleDragStart(state2) {
var dragEvent = state2.dragEvent,
node = state2.node;
dragNode = node;
var ctx = {
node: node.getModel(),
e: dragEvent
};
emitEvent(props, context, "drag-start", ctx);
};
var handleDragEnd = function handleDragEnd(state2) {
var dragEvent = state2.dragEvent,
node = state2.node;
dragNode = node;
var ctx = {
node: node.getModel(),
e: dragEvent
};
emitEvent(props, context, "drag-end", ctx);
};
var handleDragOver = function handleDragOver(state2) {
var dragEvent = state2.dragEvent,
node = state2.node;
var ctx = {
node: node.getModel(),
e: dragEvent
};
emitEvent(props, context, "drag-over", ctx);
};
var handleDragLeave = function handleDragLeave(state2) {
var dragEvent = state2.dragEvent,
node = state2.node;
var ctx = {
node: node.getModel(),
e: dragEvent
};
emitEvent(props, context, "drag-leave", ctx);
};
var handleDrop = function handleDrop(state2) {
var _props$allowDrop;
var dragEvent = state2.dragEvent,
node = state2.node,
dropPosition = state2.dropPosition;
if (node.value === dragNode.value || node.getParents().some(function (_node) {
return _node.value === dragNode.value;
})) return;
var ctx = {
dropNode: node.getModel(),
dragNode: dragNode.getModel(),
dropPosition: dropPosition,
e: dragEvent
};
if (((_props$allowDrop = props.allowDrop) === null || _props$allowDrop === void 0 ? void 0 : _props$allowDrop.call(props, ctx)) === false) return;
var nodes = store.getNodes();
nodes.some(function (_node) {
if (_node.value === node.value) {
if (dropPosition === DragPosition.Inside) {
dragNode.appendTo(store, _node);
} else if (dropPosition === DragPosition.Before) {
node.insertBefore(dragNode);
} else {
node.insertAfter(dragNode);
}
return true;
}
return false;
});
emitEvent(props, context, "drop", ctx);
};
var drag = {
handleDragStart: handleDragStart,
handleDragEnd: handleDragEnd,
handleDragOver: handleDragOver,
handleDragLeave: handleDragLeave,
handleDrop: handleDrop
};
scope.drag = drag;
return {
drag: drag
};
}
export { useDragHandle as default };
//# sourceMappingURL=useDragHandle.mjs.map