tdesign-react
Version:
TDesign Component for React
179 lines (171 loc) • 8.11 kB
JavaScript
/**
* tdesign v1.13.2
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var defineProperty = require('../_chunks/dep-cc768e34.js');
var slicedToArray = require('../_chunks/dep-e17e2d31.js');
var React = require('react');
var classNames = require('classnames');
var _util_style = require('../_chunks/dep-3f65dfe7.js');
var hooks_useConfig = require('../hooks/useConfig.js');
var common_Portal = require('../common/Portal.js');
var loading_gradient = require('./gradient.js');
var loading_defaultProps = require('./defaultProps.js');
var hooks_useDefaultProps = require('../hooks/useDefaultProps.js');
require('../_chunks/dep-6d4d8660.js');
require('../_chunks/dep-b7d577ac.js');
require('../_chunks/dep-3e2d2665.js');
require('../_chunks/dep-f0379c5f.js');
require('../_chunks/dep-028b759d.js');
require('../_chunks/dep-ddacd27a.js');
require('../config-provider/ConfigContext.js');
require('../_chunks/dep-3a869b87.js');
require('../_chunks/dep-ac58e1cc.js');
require('dayjs');
require('../_chunks/dep-7da96a57.js');
require('../_chunks/dep-07b911d8.js');
require('../_chunks/dep-4b02d669.js');
require('../_chunks/dep-8a116183.js');
require('../_chunks/dep-4671b9bd.js');
require('../_chunks/dep-bed9d73e.js');
require('../_chunks/dep-780eda7b.js');
require('../_chunks/dep-47bdc05f.js');
require('../_chunks/dep-cab13149.js');
require('../_chunks/dep-a30819a4.js');
require('../_chunks/dep-6a7ba247.js');
require('../_chunks/dep-c87d9752.js');
require('../_chunks/dep-bd956a2d.js');
require('../_chunks/dep-0cdb3286.js');
require('../_chunks/dep-865c186c.js');
require('../_chunks/dep-f4e58639.js');
require('../_chunks/dep-781a2854.js');
require('../_chunks/dep-1ef213f8.js');
require('../_chunks/dep-e2c832a5.js');
require('react-dom');
require('../hooks/useLayoutEffect.js');
require('../_chunks/dep-58719304.js');
require('../_chunks/dep-b8d4cf07.js');
require('../_chunks/dep-64a1054a.js');
require('../_chunks/dep-422caf30.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 loading ? /* @__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
}, loading ? /* @__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 loading ? /* @__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