hongluan-ui
Version:
Hongluan Component Library for Vue 3
58 lines (53 loc) • 1.91 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../tokens/index.js');
var error = require('../../../utils/error.js');
require('../../../hooks/index.js');
var uploadDragger = require('./upload-dragger.js');
var index = require('../../../hooks/use-consistent-prop/index.js');
var upload = require('../../../tokens/upload.js');
const COMPONENT_NAME = "UploadDrag";
const __default__ = vue.defineComponent({
name: COMPONENT_NAME
});
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: uploadDragger.uploadDraggerProps,
emits: uploadDragger.uploadDraggerEmits,
setup(__props, { emit }) {
const { disabled } = index.useConsistentProp();
const uploaderContext = vue.inject(upload.uploadContextKey);
if (!uploaderContext) {
error.throwError(COMPONENT_NAME, "usage: <hl-upload><upload-dragger /></hl-upload>");
}
const dragover = vue.ref(false);
const onDrop = (e) => {
if (disabled.value)
return;
dragover.value = false;
e.stopPropagation();
const files = Array.from(e.dataTransfer.files);
emit("file", files);
};
const onDragover = () => {
if (!disabled.value)
dragover.value = true;
};
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass({
["upload-dragger"]: true,
"is-dragover": dragover.value
}),
onDrop: vue.withModifiers(onDrop, ["prevent"]),
onDragover: vue.withModifiers(onDragover, ["prevent"]),
onDragleave: vue.withModifiers(($event) => dragover.value = false, ["prevent"])
}, [
vue.renderSlot(_ctx.$slots, "default")
], 42, ["onDrop", "onDragover", "onDragleave"]);
};
}
});
exports["default"] = _sfc_main;
//# sourceMappingURL=upload-dragger2.js.map