tdesign-react
Version:
TDesign Component for React
179 lines (171 loc) • 8.12 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var defineProperty = require('../_chunks/dep-0fe55884.js');
var slicedToArray = require('../_chunks/dep-5cb0d66d.js');
var React = require('react');
var classNames = require('classnames');
var _util_style = require('../_chunks/dep-e0735b5f.js');
var common_Portal = require('../common/Portal.js');
var hooks_useConfig = require('../hooks/useConfig.js');
var hooks_useDefaultProps = require('../hooks/useDefaultProps.js');
var loading_defaultProps = require('./defaultProps.js');
var loading_gradient = require('./gradient.js');
require('../_chunks/dep-b325182b.js');
require('../_chunks/dep-737b8bd8.js');
require('../_chunks/dep-b304bc94.js');
require('../_chunks/dep-4ce0670e.js');
require('../_chunks/dep-bdafd287.js');
require('../_chunks/dep-3448f35f.js');
require('react-dom');
require('../hooks/useLayoutEffect.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-967e785f.js');
require('../_chunks/dep-5c8525ea.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('../_chunks/dep-1ff6cacd.js');
require('../_chunks/dep-779273e7.js');
require('../_chunks/dep-a7fe58de.js');
require('../_chunks/dep-40583e7c.js');
require('../_chunks/dep-bb3e9667.js');
require('../hooks/useDomRefCallback.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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var Loading = function Loading(props) {
var _useDefaultProps = hooks_useDefaultProps["default"](props, loading_defaultProps.loadingDefaultProps),
attach = _useDefaultProps.attach,
indicator = _useDefaultProps.indicator,
text = _useDefaultProps.text,
loading = _useDefaultProps.loading,
size = _useDefaultProps.size,
delay = _useDefaultProps.delay,
fullscreen = _useDefaultProps.fullscreen,
preventScrollThrough = _useDefaultProps.preventScrollThrough,
showOverlay = _useDefaultProps.showOverlay,
content = _useDefaultProps.content,
children = _useDefaultProps.children,
inheritColor = _useDefaultProps.inheritColor,
zIndex = _useDefaultProps.zIndex,
className = _useDefaultProps.className,
style = _useDefaultProps.style;
var _useState = React.useState(function () {
return delay ? false : loading;
}),
_useState2 = slicedToArray._slicedToArray(_useState, 2),
showLoading = _useState2[0],
setShowLoading = _useState2[1];
var _useConfig = hooks_useConfig["default"](),
classPrefix = _useConfig.classPrefix;
var name = "".concat(classPrefix, "-loading");
var centerClass = "".concat(classPrefix, "-loading--center");
var inheritColorClass = "".concat(classPrefix, "-loading--inherit-color");
var fullClass = "".concat(classPrefix, "-loading--full");
var fullscreenClass = "".concat(classPrefix, "-loading__fullscreen");
var lockClass = "".concat(classPrefix, "-loading--lock");
var overlayClass = "".concat(classPrefix, "-loading__overlay");
var relativeClass = "".concat(classPrefix, "-loading__parent");
var textClass = "".concat(classPrefix, "-loading__text");
React.useEffect(function () {
var timer;
if (delay && loading) {
timer = setTimeout(function () {
setShowLoading(loading);
}, delay);
} else {
setShowLoading(loading);
}
return function () {
clearTimeout(timer);
};
}, [delay, loading]);
var calcStyles = React.useMemo(function () {
var styles = {};
if (zIndex !== void 0) {
styles.zIndex = zIndex;
}
if (!["small", "medium", "large"].includes(size)) {
styles.fontSize = size;
}
return styles;
}, [size, zIndex]);
var sizeMap = {
large: "".concat(classPrefix, "-size-l"),
small: "".concat(classPrefix, "-size-s"),
medium: "".concat(classPrefix, "-size-m")
};
var baseClasses = classNames__default["default"](centerClass, sizeMap[size], defineProperty._defineProperty({}, inheritColorClass, inheritColor), className);
React.useEffect(function () {
if (preventScrollThrough && fullscreen && _util_style.canUseDocument && loading) {
_util_style.addClass(document.body, lockClass);
}
return function () {
_util_style.removeClass(document.body, lockClass);
};
}, [loading, preventScrollThrough, fullscreen, lockClass]);
var commonContent = function commonContent() {
var renderIndicator = /* @__PURE__ */React__default["default"].createElement(loading_gradient["default"], null);
if (indicator && typeof indicator !== "boolean") {
renderIndicator = indicator;
}
return /* @__PURE__ */React__default["default"].createElement(React__default["default"].Fragment, null, indicator ? renderIndicator : null, text ? /* @__PURE__ */React__default["default"].createElement("div", {
className: textClass
}, text) : null);
};
if (fullscreen) {
return showLoading ? /* @__PURE__ */React__default["default"].createElement("div", {
className: classNames__default["default"](name, fullscreenClass, centerClass, overlayClass),
style: _objectSpread(_objectSpread({}, calcStyles), style)
}, /* @__PURE__ */React__default["default"].createElement("div", {
className: baseClasses
}, commonContent())) : null;
}
if (content || children) {
return /* @__PURE__ */React__default["default"].createElement("div", {
className: relativeClass,
style: style
}, content || children, showLoading ? /* @__PURE__ */React__default["default"].createElement("div", {
className: classNames__default["default"](name, baseClasses, fullClass, defineProperty._defineProperty({}, overlayClass, showOverlay)),
style: calcStyles
}, commonContent()) : null);
}
if (attach) {
return /* @__PURE__ */React__default["default"].createElement(common_Portal["default"], {
attach: attach
}, showLoading ? /* @__PURE__ */React__default["default"].createElement("div", {
className: classNames__default["default"](name, baseClasses, fullClass, defineProperty._defineProperty({}, overlayClass, showOverlay)),
style: _objectSpread(_objectSpread({}, calcStyles), style)
}, commonContent()) : null);
}
return showLoading ? /* @__PURE__ */React__default["default"].createElement("div", {
className: classNames__default["default"](name, baseClasses),
style: _objectSpread(_objectSpread({}, calcStyles), style)
}, commonContent()) : null;
};
Loading.displayName = "Loading";
exports["default"] = Loading;
//# sourceMappingURL=Loading.js.map