e11031f49c26766abba37cb49f8a79c9cc629e0ded6d1bcfa7669a9a08a570e1ba4d6492bd8133dad667629475262d518e4fce92164d3e5a1a659ed0ae04db 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var error = require('../../../utils/error.js');
  5. var constants = require('./constants.js');
  6. var uploadDragger = require('./upload-dragger.js');
  7. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  8. var index = require('../../../hooks/use-namespace/index.js');
  9. var useFormCommonProps = require('../../form/src/hooks/use-form-common-props.js');
  10. const COMPONENT_NAME = "ElUploadDrag";
  11. const __default__ = vue.defineComponent({
  12. name: COMPONENT_NAME
  13. });
  14. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  15. ...__default__,
  16. props: uploadDragger.uploadDraggerProps,
  17. emits: uploadDragger.uploadDraggerEmits,
  18. setup(__props, { emit }) {
  19. const uploaderContext = vue.inject(constants.uploadContextKey);
  20. if (!uploaderContext) {
  21. error.throwError(COMPONENT_NAME, "usage: <el-upload><el-upload-dragger /></el-upload>");
  22. }
  23. const ns = index.useNamespace("upload");
  24. const dragover = vue.ref(false);
  25. const disabled = useFormCommonProps.useFormDisabled();
  26. const onDrop = (e) => {
  27. if (disabled.value)
  28. return;
  29. dragover.value = false;
  30. e.stopPropagation();
  31. const files = Array.from(e.dataTransfer.files);
  32. const items = e.dataTransfer.items || [];
  33. files.forEach((file, index) => {
  34. var _a;
  35. const item = items[index];
  36. const entry = (_a = item == null ? void 0 : item.webkitGetAsEntry) == null ? void 0 : _a.call(item);
  37. if (entry) {
  38. file.isDirectory = entry.isDirectory;
  39. }
  40. });
  41. emit("file", files);
  42. };
  43. const onDragover = () => {
  44. if (!disabled.value)
  45. dragover.value = true;
  46. };
  47. const onDragleave = (e) => {
  48. if (!e.currentTarget.contains(e.relatedTarget))
  49. dragover.value = false;
  50. };
  51. return (_ctx, _cache) => {
  52. return vue.openBlock(), vue.createElementBlock("div", {
  53. class: vue.normalizeClass([vue.unref(ns).b("dragger"), vue.unref(ns).is("dragover", dragover.value)]),
  54. onDrop: vue.withModifiers(onDrop, ["prevent"]),
  55. onDragover: vue.withModifiers(onDragover, ["prevent"]),
  56. onDragleave: vue.withModifiers(onDragleave, ["prevent"])
  57. }, [
  58. vue.renderSlot(_ctx.$slots, "default")
  59. ], 42, ["onDrop", "onDragover", "onDragleave"]);
  60. };
  61. }
  62. });
  63. var UploadDragger = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "upload-dragger.vue"]]);
  64. exports["default"] = UploadDragger;
  65. //# sourceMappingURL=upload-dragger2.js.map