UNPKG

hongluan-ui

Version:
169 lines (164 loc) 6.21 kB
'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