tdesign-react
Version:
TDesign Component for React
195 lines (187 loc) • 11 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var defineProperty = require('../../_chunks/dep-0fe55884.js');
var toConsumableArray = require('../../_chunks/dep-a7fe58de.js');
var React = require('react');
var tdesignIconsReact = require('tdesign-icons-react');
var classNames = require('classnames');
var utils = require('../../_chunks/dep-d56617af.js');
var _util_parseTNode = require('../../_util/parseTNode.js');
var loading_index = require('../../loading/index.js');
var link_index = require('../../link/index.js');
var hooks_useGlobalIcon = require('../../hooks/useGlobalIcon.js');
require('../../_chunks/dep-b325182b.js');
require('../../_chunks/dep-737b8bd8.js');
require('../../_chunks/dep-05f87b98.js');
require('../../_chunks/dep-967e785f.js');
require('../../_chunks/dep-4ce0670e.js');
require('../../_chunks/dep-5c8525ea.js');
require('../../loading/Loading.js');
require('../../_chunks/dep-5cb0d66d.js');
require('../../_chunks/dep-e0735b5f.js');
require('../../_chunks/dep-b304bc94.js');
require('../../_chunks/dep-bdafd287.js');
require('../../_chunks/dep-3448f35f.js');
require('../../common/Portal.js');
require('react-dom');
require('../../hooks/useConfig.js');
require('../../config-provider/ConfigContext.js');
require('../../_chunks/dep-17dea53e.js');
require('../../_chunks/dep-a0cbf081.js');
require('dayjs');
require('../../_chunks/dep-481a1ecc.js');
require('../../_chunks/dep-474eb386.js');
require('../../_chunks/dep-3b256bc0.js');
require('../../_chunks/dep-b6a3ada9.js');
require('../../_chunks/dep-735cd5b9.js');
require('../../_chunks/dep-4d300b8f.js');
require('../../_chunks/dep-3332ad6f.js');
require('../../_chunks/dep-98783318.js');
require('../../_chunks/dep-fc884a8e.js');
require('../../_chunks/dep-008b21d4.js');
require('../../_chunks/dep-9193eded.js');
require('../../_chunks/dep-afe817f9.js');
require('../../_chunks/dep-0b70c7ec.js');
require('../../_chunks/dep-a1e3e59b.js');
require('../../_chunks/dep-24ab8f68.js');
require('../../_chunks/dep-753b7d52.js');
require('../../hooks/useLayoutEffect.js');
require('../../hooks/useDefaultProps.js');
require('../../loading/defaultProps.js');
require('../../loading/gradient.js');
require('../../_chunks/dep-1ff6cacd.js');
require('../../_chunks/dep-779273e7.js');
require('../../_chunks/dep-40583e7c.js');
require('../../_chunks/dep-bb3e9667.js');
require('../../hooks/useDomRefCallback.js');
require('../../loading/plugin.js');
require('../../_util/react-render.js');
require('../../_chunks/dep-e88f025c.js');
require('../../common/PluginContainer.js');
require('../../config-provider/ConfigProvider.js');
require('../../_chunks/dep-542bd26e.js');
require('../../_chunks/dep-c89d3d1e.js');
require('../../_chunks/dep-e018b522.js');
require('../../_chunks/dep-7f4d0687.js');
require('../../_chunks/dep-b23d5e45.js');
require('../../link/Link.js');
require('../../link/defaultProps.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
function NormalFile(props) {
var _displayFiles$, _displayFiles$0$respo;
var theme = props.theme,
disabled = props.disabled,
classPrefix = props.classPrefix,
locale = props.locale;
var _useGlobalIcon = hooks_useGlobalIcon["default"]({
CloseIcon: tdesignIconsReact.CloseIcon,
TimeFilledIcon: tdesignIconsReact.TimeFilledIcon,
CheckCircleFilledIcon: tdesignIconsReact.CheckCircleFilledIcon,
ErrorCircleFilledIcon: tdesignIconsReact.ErrorCircleFilledIcon,
CloseCircleFilledIcon: tdesignIconsReact.CloseCircleFilledIcon
}),
CloseIcon = _useGlobalIcon.CloseIcon,
TimeFilledIcon = _useGlobalIcon.TimeFilledIcon,
CheckCircleFilledIcon = _useGlobalIcon.CheckCircleFilledIcon,
ErrorCircleFilledIcon = _useGlobalIcon.ErrorCircleFilledIcon,
CloseCircleFilledIcon = _useGlobalIcon.CloseCircleFilledIcon;
var uploadPrefix = "".concat(classPrefix, "-upload");
var renderProgress = function renderProgress(percent) {
return /* @__PURE__ */React__default["default"].createElement("div", {
className: "".concat(uploadPrefix, "__single-progress")
}, /* @__PURE__ */React__default["default"].createElement(loading_index.Loading, null), /* @__PURE__ */React__default["default"].createElement("span", {
className: "".concat(uploadPrefix, "__single-percent")
}, percent || 0, "%"));
};
var renderFilePreviewAsText = function renderFilePreviewAsText(files) {
var _files$;
if (theme !== "file") return null;
if (!props.multiple && ((_files$ = files[0]) === null || _files$ === void 0 ? void 0 : _files$.status) === "fail" && props.autoUpload) {
return null;
}
return files.map(function (file, index) {
var fileName = props.abridgeName && file.name ? utils.abridgeName.apply(void 0, [file.name].concat(toConsumableArray._toConsumableArray(props.abridgeName))) : file.name;
return /* @__PURE__ */React__default["default"].createElement("div", {
className: "".concat(uploadPrefix, "__single-display-text ").concat(uploadPrefix, "__display-text--margin"),
key: file.name + index + file.percent + file.status
}, file.url ? /* @__PURE__ */React__default["default"].createElement(link_index.Link, {
href: file.url,
target: "_blank",
hover: "color",
size: "small",
className: "".concat(uploadPrefix, "__single-name")
}, fileName) : /* @__PURE__ */React__default["default"].createElement("span", {
className: "".concat(uploadPrefix, "__single-name")
}, fileName), file.status === "fail" && /* @__PURE__ */React__default["default"].createElement("div", {
className: "".concat(uploadPrefix, "__flow-status ").concat(uploadPrefix, "__file-fail")
}, /* @__PURE__ */React__default["default"].createElement(ErrorCircleFilledIcon, null)), file.status === "waiting" && /* @__PURE__ */React__default["default"].createElement("div", {
className: "".concat(uploadPrefix, "__flow-status ").concat(uploadPrefix, "__file-waiting")
}, /* @__PURE__ */React__default["default"].createElement(TimeFilledIcon, null)), file.status === "progress" && renderProgress(file.percent), !disabled && file.status !== "progress" && /* @__PURE__ */React__default["default"].createElement(CloseIcon, {
className: "".concat(uploadPrefix, "__icon-delete"),
onClick: function onClick(e) {
return props.onRemove({
e: e,
file: file,
index: index
});
}
}));
});
};
var renderFilePreviewAsInput = function renderFilePreviewAsInput() {
var _props$abridgeName;
var file = props.displayFiles[0];
var inputTextClass = ["".concat(classPrefix, "-input__inner"), defineProperty._defineProperty({}, "".concat(uploadPrefix, "__placeholder"), !props.displayFiles[0])];
var disabledClass = disabled ? "".concat(classPrefix, "-is-disabled") : "";
var fileName = (_props$abridgeName = props.abridgeName) !== null && _props$abridgeName !== void 0 && _props$abridgeName.length && file !== null && file !== void 0 && file.name ? utils.abridgeName.apply(void 0, [file.name].concat(toConsumableArray._toConsumableArray(props.abridgeName))) : file === null || file === void 0 ? void 0 : file.name;
return /* @__PURE__ */React__default["default"].createElement("div", {
className: "".concat(uploadPrefix, "__single-input-preview ").concat(classPrefix, "-input ").concat(disabledClass)
}, /* @__PURE__ */React__default["default"].createElement("div", {
className: classNames__default["default"](inputTextClass)
}, /* @__PURE__ */React__default["default"].createElement("span", {
className: classNames__default["default"]("".concat(uploadPrefix, "__single-input-text"), defineProperty._defineProperty({}, props.placeholderClass, props.placeholder && !(file !== null && file !== void 0 && file.name)))
}, file !== null && file !== void 0 && file.name ? fileName : props.placeholder), (file === null || file === void 0 ? void 0 : file.status) === "progress" && renderProgress(file.percent), (file === null || file === void 0 ? void 0 : file.status) === "waiting" && /* @__PURE__ */React__default["default"].createElement(TimeFilledIcon, {
className: "".concat(uploadPrefix, "__status-icon ").concat(uploadPrefix, "__file-waiting")
}), (file === null || file === void 0 ? void 0 : file.name) && file.status === "success" && /* @__PURE__ */React__default["default"].createElement(CheckCircleFilledIcon, {
className: "".concat(uploadPrefix, "__status-icon")
}), (file === null || file === void 0 ? void 0 : file.name) && file.status === "fail" && /* @__PURE__ */React__default["default"].createElement(ErrorCircleFilledIcon, {
className: "".concat(uploadPrefix, "__status-icon ").concat(uploadPrefix, "__file-fail")
}), Boolean(!disabled && (file === null || file === void 0 ? void 0 : file.name)) && /* @__PURE__ */React__default["default"].createElement(CloseCircleFilledIcon, {
className: "".concat(uploadPrefix, "__single-input-clear"),
onClick: function onClick(e) {
return props.onRemove({
e: e,
file: file,
index: 0
});
}
})));
};
var displayFiles = props.displayFiles,
fileListDisplay = props.fileListDisplay;
var fileListDisplayNode = _util_parseTNode["default"](fileListDisplay, {
onRemove: props.onRemove,
toUploadFiles: props.toUploadFiles,
sizeOverLimitMessage: props.sizeOverLimitMessage,
locale: props.locale,
files: displayFiles
});
var classes = ["".concat(uploadPrefix, "__single"), "".concat(uploadPrefix, "__single-").concat(theme)];
return /* @__PURE__ */React__default["default"].createElement("div", {
className: classNames__default["default"](classes)
}, theme === "file-input" && renderFilePreviewAsInput(), props.children, theme === "file" && props.placeholder && !displayFiles[0] && /* @__PURE__ */React__default["default"].createElement("small", {
className: classNames__default["default"]([props.tipsClasses, props.placeholderClass])
}, props.placeholder), fileListDisplayNode === null ? null : fileListDisplayNode || renderFilePreviewAsText(displayFiles), !props.multiple && ((_displayFiles$ = displayFiles[0]) === null || _displayFiles$ === void 0 ? void 0 : _displayFiles$.status) === "fail" && theme === "file" ? /* @__PURE__ */React__default["default"].createElement("small", {
className: classNames__default["default"](props.errorClasses)
}, ((_displayFiles$0$respo = displayFiles[0].response) === null || _displayFiles$0$respo === void 0 ? void 0 : _displayFiles$0$respo.error) || locale.progress.failText) : null);
}
NormalFile.displayName = "NormalFile";
exports["default"] = NormalFile;
//# sourceMappingURL=NormalFile.js.map