UNPKG

hongluan-ui

Version:
54 lines (51 loc) 1.9 kB
import { defineComponent, inject, ref, openBlock, createElementBlock, normalizeClass, withModifiers, renderSlot } from 'vue'; import '../../../tokens/index.mjs'; import { throwError } from '../../../utils/error.mjs'; import '../../../hooks/index.mjs'; import { uploadDraggerProps, uploadDraggerEmits } from './upload-dragger.mjs'; import { useConsistentProp } from '../../../hooks/use-consistent-prop/index.mjs'; import { uploadContextKey } from '../../../tokens/upload.mjs'; const COMPONENT_NAME = "UploadDrag"; const __default__ = defineComponent({ name: COMPONENT_NAME }); const _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, props: uploadDraggerProps, emits: uploadDraggerEmits, setup(__props, { emit }) { const { disabled } = useConsistentProp(); const uploaderContext = inject(uploadContextKey); if (!uploaderContext) { throwError(COMPONENT_NAME, "usage: <hl-upload><upload-dragger /></hl-upload>"); } const dragover = 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 openBlock(), createElementBlock("div", { class: normalizeClass({ ["upload-dragger"]: true, "is-dragover": dragover.value }), onDrop: withModifiers(onDrop, ["prevent"]), onDragover: withModifiers(onDragover, ["prevent"]), onDragleave: withModifiers(($event) => dragover.value = false, ["prevent"]) }, [ renderSlot(_ctx.$slots, "default") ], 42, ["onDrop", "onDragover", "onDragleave"]); }; } }); export { _sfc_main as default }; //# sourceMappingURL=upload-dragger2.mjs.map