UNPKG

tdesign-react

Version:
94 lines (88 loc) 3.45 kB
/** * tdesign v1.11.6 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _typeof = require('../_chunks/dep-5b35215f.js'); var React = require('react'); var require$$0 = require('react-dom'); var _util_dom = require('../_util/dom.js'); var hooks_useConfig = require('../hooks/useConfig.js'); var hooks_useLayoutEffect = require('../hooks/useLayoutEffect.js'); require('raf'); require('../_util/easing.js'); require('../_chunks/dep-3c8023f1.js'); require('../_chunks/dep-6e34d7d7.js'); require('../_chunks/dep-ec3beb8d.js'); require('../_chunks/dep-d45b3350.js'); require('../config-provider/ConfigContext.js'); require('../_chunks/dep-56a79f9c.js'); require('../_chunks/dep-fa2097c1.js'); require('../_chunks/dep-f6f16bd8.js'); require('dayjs'); require('../_chunks/dep-59bb0827.js'); require('../_chunks/dep-68f8743f.js'); require('../_chunks/dep-a8d0483a.js'); require('../_chunks/dep-b7e21379.js'); require('../_chunks/dep-73937edb.js'); require('../_chunks/dep-8d4e8f1c.js'); require('../_chunks/dep-1d022321.js'); require('../_chunks/dep-ab08e148.js'); require('../_chunks/dep-9df70348.js'); require('../_chunks/dep-af16359b.js'); require('../_chunks/dep-e11afe29.js'); require('../_chunks/dep-346ac5f4.js'); require('../_chunks/dep-612ec5c9.js'); require('../_chunks/dep-4d25d6c0.js'); require('../_chunks/dep-496c0353.js'); require('../_chunks/dep-1f530d81.js'); require('../_chunks/dep-a4bc3144.js'); require('../_chunks/dep-535a3b69.js'); require('../_chunks/dep-d11b328f.js'); function getAttach(attach, triggerNode) { if (!_util_dom.canUseDocument) return null; var el; if (typeof attach === "string") { el = document.querySelector(attach); } if (typeof attach === "function") { el = attach(triggerNode); } if (_typeof._typeof(attach) === "object" && attach instanceof window.HTMLElement) { el = attach; } if (el && el.nodeType === 1) return el; return document.body; } var Portal = /*#__PURE__*/React.forwardRef(function (props, ref) { var attach = props.attach, children = props.children, triggerNode = props.triggerNode; var _useConfig = hooks_useConfig["default"](), classPrefix = _useConfig.classPrefix; var container = React.useMemo(function () { if (!_util_dom.canUseDocument) return null; var el = document.createElement("div"); el.className = "".concat(classPrefix, "-portal-wrapper"); return el; }, [classPrefix]); hooks_useLayoutEffect["default"](function () { var _parentElement$append; var parentElement = getAttach(attach, triggerNode); parentElement === null || parentElement === void 0 || (_parentElement$append = parentElement.appendChild) === null || _parentElement$append === void 0 || _parentElement$append.call(parentElement, container); return function () { var _parentElement$remove; parentElement === null || parentElement === void 0 || (_parentElement$remove = parentElement.removeChild) === null || _parentElement$remove === void 0 || _parentElement$remove.call(parentElement, container); }; }, [container, attach, triggerNode]); React.useImperativeHandle(ref, function () { return container; }); return _util_dom.canUseDocument ? /*#__PURE__*/require$$0.createPortal(children, container) : null; }); Portal.displayName = "Portal"; exports["default"] = Portal; exports.getAttach = getAttach; //# sourceMappingURL=Portal.js.map