hongluan-ui
Version:
Hongluan Component Library for Vue 3
169 lines (164 loc) • 6.21 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../tokens/index.js');
require('../../../hooks/index.js');
var uploadList = require('./upload-list.js');
var uploadContent = require('./upload-content.js');
var useHandlers = require('./use-handlers.js');
var upload = require('./upload2.js');
var index = require('../../../hooks/use-consistent-prop/index.js');
var index$1 = require('../../../hooks/use-namespace/index.js');
var upload$1 = require('../../../tokens/upload.js');
const __default__ = vue.defineComponent({
name: "Upload"
});
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: upload.uploadProps,
setup(__props, { expose }) {
const props = __props;
const { disabled: uploadDisabled } = index.useConsistentProp();
const { namespace } = index$1.useNamespace("upload");
const uploadRef = vue.shallowRef();
const {
abort,
submit,
clearFiles,
uploadFiles,
handleStart,
handleError,
handleRemove,
handleSuccess,
handleProgress,
revokeFileObjectURL
} = useHandlers.useHandlers(props, uploadRef);
vue.onBeforeUnmount(() => {
uploadFiles.value.forEach(revokeFileObjectURL);
});
vue.provide(upload$1.uploadContextKey, {
accept: vue.toRef(props, "accept")
});
expose({
abort,
submit,
clearFiles,
handleStart,
handleRemove
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", {
class: vue.normalizeClass([
vue.unref(namespace),
_ctx.drag && "is-drag"
]),
style: vue.normalizeStyle([
_ctx.gap ? `--upload-item-gap: ${_ctx.gap}` : ""
])
}, [
_ctx.listType === "card" && _ctx.showFileList ? (vue.openBlock(), vue.createBlock(uploadList["default"], {
key: 0,
disabled: vue.unref(uploadDisabled),
"list-type": _ctx.listType,
files: vue.unref(uploadFiles),
"handle-preview": _ctx.onPreview,
crossorigin: _ctx.crossorigin,
onRemove: vue.unref(handleRemove)
}, vue.createSlots({ _: 2 }, [
_ctx.$slots.file ? {
name: "default",
fn: vue.withCtx(({ file, index }) => [
vue.renderSlot(_ctx.$slots, "file", {
file,
index
})
])
} : void 0,
_ctx.$slots["file-preview"] ? {
name: "file-preview",
fn: vue.withCtx(({ file, index }) => [
vue.renderSlot(_ctx.$slots, "file-preview", {
file,
index
})
])
} : void 0,
_ctx.$slots["file-icon"] ? {
name: "file-icon",
fn: vue.withCtx(({ file, index }) => [
vue.renderSlot(_ctx.$slots, "file-icon", {
file,
index
})
])
} : void 0
]), 1032, ["disabled", "list-type", "files", "handle-preview", "crossorigin", "onRemove"])) : vue.createCommentVNode("v-if", true),
vue.createVNode(uploadContent["default"], {
ref_key: "uploadRef",
ref: uploadRef,
type: _ctx.type,
drag: _ctx.drag,
action: _ctx.action,
multiple: _ctx.multiple,
"with-credentials": _ctx.withCredentials,
headers: _ctx.headers,
method: _ctx.method,
name: _ctx.name,
data: _ctx.data,
accept: _ctx.accept,
"file-list": vue.unref(uploadFiles),
"auto-upload": _ctx.autoUpload,
"list-type": _ctx.listType,
disabled: vue.unref(uploadDisabled),
limit: _ctx.limit,
"http-request": _ctx.httpRequest,
"before-upload": _ctx.beforeUpload,
"on-exceed": _ctx.onExceed,
"on-start": vue.unref(handleStart),
"on-progress": vue.unref(handleProgress),
"on-success": vue.unref(handleSuccess),
"on-error": vue.unref(handleError),
"on-remove": vue.unref(handleRemove)
}, {
default: vue.withCtx(() => [
_ctx.$slots.trigger ? vue.renderSlot(_ctx.$slots, "trigger", { key: 0 }) : vue.createCommentVNode("v-if", true),
!_ctx.$slots.trigger && _ctx.$slots.default ? vue.renderSlot(_ctx.$slots, "default", { key: 1 }) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["type", "drag", "action", "multiple", "with-credentials", "headers", "method", "name", "data", "accept", "file-list", "auto-upload", "list-type", "disabled", "limit", "http-request", "before-upload", "on-exceed", "on-start", "on-progress", "on-success", "on-error", "on-remove"]),
_ctx.$slots.trigger ? vue.renderSlot(_ctx.$slots, "default", { key: 1 }) : vue.createCommentVNode("v-if", true),
vue.renderSlot(_ctx.$slots, "tip"),
_ctx.listType !== "card" && _ctx.showFileList ? (vue.openBlock(), vue.createBlock(uploadList["default"], {
key: 2,
disabled: vue.unref(uploadDisabled),
"list-type": _ctx.listType,
files: vue.unref(uploadFiles),
crossorigin: _ctx.crossorigin,
"handle-preview": _ctx.onPreview,
onRemove: vue.unref(handleRemove)
}, vue.createSlots({ _: 2 }, [
_ctx.$slots.file ? {
name: "default",
fn: vue.withCtx(({ file, index }) => [
vue.renderSlot(_ctx.$slots, "file", {
file,
index
})
])
} : void 0,
_ctx.$slots["file-icon"] ? {
name: "file-icon",
fn: vue.withCtx(({ file, index }) => [
vue.renderSlot(_ctx.$slots, "file-icon", {
file,
index
})
])
} : void 0
]), 1032, ["disabled", "list-type", "files", "crossorigin", "handle-preview", "onRemove"])) : vue.createCommentVNode("v-if", true)
], 6);
};
}
});
exports["default"] = _sfc_main;
//# sourceMappingURL=upload.js.map