UNPKG

tdesign-react

Version:
291 lines (283 loc) 11.4 kB
/** * tdesign v1.16.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var slicedToArray = require('../_chunks/dep-5cb0d66d.js'); var defineProperty = require('../_chunks/dep-0fe55884.js'); var React = require('react'); var classNames = require('classnames'); var message_MessageComponent = require('../_chunks/dep-eb10a7cb.js'); var _util_style = require('../_chunks/dep-e0735b5f.js'); var _util_reactRender = require('../_util/react-render.js'); var common_PluginContainer = require('../common/PluginContainer.js'); var configProvider_ConfigProvider = require('../config-provider/ConfigProvider.js'); require('../config-provider/ConfigContext.js'); var message_config = require('./config.js'); var message_useMessageClass = require('./useMessageClass.js'); var camelCase = require('../_chunks/dep-b5fda651.js'); require('../_chunks/dep-737b8bd8.js'); require('../_chunks/dep-b325182b.js'); require('../_chunks/dep-40583e7c.js'); require('../_util/noop.js'); require('../hooks/usePersistFn.js'); require('./MessageClose.js'); require('tdesign-icons-react'); require('../hooks/useGlobalIcon.js'); require('../hooks/useConfig.js'); require('./MessageIcon.js'); require('../loading/index.js'); require('../loading/Loading.js'); require('../common/Portal.js'); require('react-dom'); 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-a7fe58de.js'); require('../_chunks/dep-bb3e9667.js'); require('../_chunks/dep-4ce0670e.js'); require('../_chunks/dep-3448f35f.js'); require('../_chunks/dep-b304bc94.js'); require('../_chunks/dep-bdafd287.js'); require('../hooks/useDomRefCallback.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('../loading/plugin.js'); require('../_chunks/dep-e88f025c.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('./defaultProps.js'); require('../_chunks/dep-7659797a.js'); require('../_chunks/dep-eb2203ae.js'); require('../_chunks/dep-908ffaed.js'); require('../_chunks/dep-a76ede3e.js'); require('../_chunks/dep-2ad01263.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 messageKey = 1; var MessageContainerMaps = /* @__PURE__ */new Map(); var MessageContainer = function MessageContainer(props) { var placement = props.placement, children = props.children; var ref = React.useRef(null); var style = {}; Object.keys(message_MessageComponent.PLACEMENT_OFFSET[placement]).forEach(function (key) { style[camelCase.camelCase(key)] = message_MessageComponent.PLACEMENT_OFFSET[placement][key]; }); if (placement.includes("top")) { style.top = "".concat(message_config.globalConfig.top, "px"); } var _useMessageClass = message_useMessageClass.useMessageClass(), tdMessagePlacementClassGenerator = _useMessageClass.tdMessagePlacementClassGenerator, tdMessageListClass = _useMessageClass.tdMessageListClass; return /* @__PURE__ */React__default["default"].createElement("div", { ref: ref, className: classNames__default["default"](tdMessageListClass, tdMessagePlacementClassGenerator(placement)), style: style }, children); }; function getAttachNodeMap(attachNode) { if (!MessageContainerMaps.has(attachNode)) { MessageContainerMaps.set(attachNode, /* @__PURE__ */new Map()); } return MessageContainerMaps.get(attachNode); } function createContainer(placement, attachNode) { var mGlobalConfig = configProvider_ConfigProvider["default"].getGlobalConfig(); var containerWrapper = document.createElement("div"); attachNode.appendChild(containerWrapper); _util_reactRender.render(/* @__PURE__ */React__default["default"].createElement(common_PluginContainer["default"], { globalConfig: mGlobalConfig }, /* @__PURE__ */React__default["default"].createElement(MessageContainer, { placement: placement })), containerWrapper); return containerWrapper; } function renderContainer(containerInstance) { var mGlobalConfig = configProvider_ConfigProvider["default"].getGlobalConfig(); _util_reactRender.render(/* @__PURE__ */React__default["default"].createElement(common_PluginContainer["default"], { globalConfig: mGlobalConfig }, /* @__PURE__ */React__default["default"].createElement(MessageContainer, { placement: containerInstance.placement }, containerInstance.messages.map(function (item) { return /* @__PURE__ */React__default["default"].createElement(message_MessageComponent.MessageComponent, _objectSpread(_objectSpread({ key: item.key, ref: item.ref }, item.config), {}, { theme: item.theme })); }))), containerInstance.container); } function destroyContainer(containerInstance, attachNode) { if (containerInstance.messages.length > 0) return; var container = containerInstance.container, placement = containerInstance.placement; _util_reactRender.render(null, container); if (container.parentNode) { container.parentNode.removeChild(container); } var attachNodeMap = MessageContainerMaps.get(attachNode); if (attachNodeMap) { attachNodeMap["delete"](placement); if (attachNodeMap.size === 0) { MessageContainerMaps["delete"](attachNode); } } } function renderElement(theme, config) { var attach = config.attach, _config$placement = config.placement, placement = _config$placement === void 0 ? "top" : _config$placement; var attachNode = _util_style.getAttach(attach); var attachNodeMap = getAttachNodeMap(attachNode); var containerInstance = attachNodeMap.get(placement); if (!containerInstance) { var container = createContainer(placement, attachNode); containerInstance = { container: container, messages: [], placement: placement }; attachNodeMap.set(placement, containerInstance); } var style = _objectSpread({}, config.style); if (Array.isArray(config.offset) && config.offset.length === 2) { var _config$offset = slicedToArray._slicedToArray(config.offset, 2), left = _config$offset[0], top = _config$offset[1]; style = _objectSpread(_objectSpread({ left: left, top: top }, style), {}, { position: "relative" }); } messageKey += 1; var currentKey = messageKey; var messageRef = /*#__PURE__*/React.createRef(); var message = { key: currentKey, ref: messageRef, theme: theme, content: config.content, config: _objectSpread(_objectSpread({}, config), {}, { style: style, placement: placement, onClose: function onClose(context) { closeMessage(context); } }), close: function close() { var index = containerInstance.messages.indexOf(message); if (index === -1) return; message_MessageComponent.fadeOut(messageRef.current, placement, function () { closeMessage(); }); } }; function closeMessage(context) { var index = containerInstance.messages.indexOf(message); if (index === -1) return; message_MessageComponent.fadeOut(messageRef.current, placement, function () { containerInstance.messages.splice(index, 1); renderContainer(containerInstance); destroyContainer(containerInstance, attachNode); if (context) { var _config$onClose; (_config$onClose = config.onClose) === null || _config$onClose === void 0 || _config$onClose.call(config, context); } }); } containerInstance.messages.push(message); renderContainer(containerInstance); return message; } function isConfig(content) { return Object.prototype.toString.call(content) === "[object Object]" && "content" in content; } var messageMethod = function messageMethod(theme, content, duration) { var config = {}; if (isConfig(content)) { config = _objectSpread({ duration: duration }, content); } else { config = { content: content, duration: duration }; } return Promise.resolve(renderElement(theme, message_config.getMessageConfig(config))); }; var MessagePlugin = function MessagePlugin(theme, message, duration) { return messageMethod(theme, message, duration); }; MessagePlugin.info = function (content, duration) { return messageMethod("info", content, duration); }; MessagePlugin.error = function (content, duration) { return messageMethod("error", content, duration); }; MessagePlugin.warning = function (content, duration) { return messageMethod("warning", content, duration); }; MessagePlugin.success = function (content, duration) { return messageMethod("success", content, duration); }; MessagePlugin.question = function (content, duration) { return messageMethod("question", content, duration); }; MessagePlugin.loading = function (content, duration) { return messageMethod("loading", content, duration); }; MessagePlugin.config = function (options) { return message_config.setGlobalConfig(options); }; MessagePlugin.close = function (messageInstance) { messageInstance.then(function (instance) { return instance.close(); }); }; MessagePlugin.closeAll = function () { MessageContainerMaps.forEach(function (placementMap, attachNode) { placementMap.forEach(function (container) { if (container.messages.length) { container.messages.splice(0, container.messages.length); destroyContainer(container, attachNode); } }); }); }; exports["default"] = message_MessageComponent.MessageComponent; exports.MessagePlugin = MessagePlugin; //# sourceMappingURL=Message.js.map