{"version":3,"file":"js/chunk.ea09fe5ec1c14b0f.js","mappings":"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","sources":["webpack:///./node_modules/rc-util/es/Portal.js","webpack:///./node_modules/rc-trigger/es/utils/alignUtil.js","webpack:///./node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:///./node_modules/rc-trigger/es/Popup/Mask.js","webpack:///../src/propertyUtils.js","webpack:///../src/utils.js","webpack:///../src/getOffsetParent.js","webpack:///../src/isAncestorFixed.js","webpack:///../src/getVisibleRectForElement.js","webpack:///../src/getRegion.js","webpack:///../src/getAlignOffset.js","webpack:///../src/getElFuturePos.js","webpack:///../src/align/align.js","webpack:///../src/adjustForViewport.js","webpack:///../src/align/alignElement.js","webpack:///./node_modules/rc-align/es/util.js","webpack:///./node_modules/rc-align/es/Align.js","webpack:///./node_modules/rc-align/es/hooks/useBuffer.js","webpack:///../src/align/alignPoint.js","webpack:///./node_modules/rc-align/es/index.js","webpack:///./node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:///./node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:///./node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:///./node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack:///./node_modules/rc-trigger/es/Popup/index.js","webpack:///./node_modules/rc-trigger/es/context.js","webpack:///./node_modules/rc-trigger/es/index.js"],"sourcesContent":["import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var parentRef = useRef();\n var containerRef = useRef();\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, function () {\n return {};\n });\n // Create container in client side with sync to avoid useEffect not get ref\n var initRef = useRef(false);\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n parentRef.current = containerRef.current.parentNode;\n initRef.current = true;\n }\n // [Legacy] Used by `rc-trigger`\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n // Restore container to original place\n // React 18 StrictMode will unmount first and mount back for effect test:\n // https://reactjs.org/blog/2022/03/29/react-v18.html#new-strict-mode-behaviors\n if (containerRef.current.parentNode === null && parentRef.current !== null) {\n parentRef.current.appendChild(containerRef.current);\n }\n return function () {\n var _containerRef$current, _containerRef$current2;\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/legacyUtil\";\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0),\n };\n }\n return {\n x: 0,\n y: 0,\n };\n}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top);\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? Math.floor(elem.getBoundingClientRect().width)\n : Math.floor(elem.getBoundingClientRect().height);\n const isBorderBox = isBorderBoxFn(elem);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which)\n : getPBMWidth(elem, ['margin'], which))\n );\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if (\n (navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n (el !== body &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n const bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n const win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win),\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1]),\n };\n}\n\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let n;\n if (/%$/.test(str)) {\n n = (parseInt(str.substring(0, str.length - 1), 10) / 100) * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport { alignElement, alignPoint } from 'dom-align';\nimport isEqual from \"rc-util/es/isEqual\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useBuffer from \"./hooks/useBuffer\";\nimport { isSamePoint, monitorResize, restoreFocus } from \"./util\";\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n /** Popup node ref */\n\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n var source = nodeRef.current;\n\n if (!latestDisabled && latestTarget && source) {\n var _result;\n\n var _element = getElement(latestTarget);\n\n var _point = getPoint(latestTarget);\n\n cacheRef.current.element = _element;\n cacheRef.current.point = _point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (_element && isVisible(_element)) {\n _result = alignElement(source, _element, latestAlign);\n } else if (_point) {\n _result = alignPoint(source, _point, latestAlign);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && _result) {\n latestOnAlign(source, _result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Handle props change\n\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n point = _React$useState4[0],\n setPoint = _React$useState4[1];\n\n useLayoutEffect(function () {\n setElement(getElement(target));\n setPoint(getPoint(target));\n });\n React.useEffect(function () {\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign();\n }\n }); // Watch popup element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(nodeRef.current, _forceAlign);\n return cancelFn;\n }, [nodeRef.current]); // Watch target element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(element, _forceAlign);\n return cancelFn;\n }, [element]); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n React.useEffect(function () {\n if (monitorWindowResize) {\n var cancelFn = addEventListener(window, 'resize', _forceAlign);\n return cancelFn.remove;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n cancelTrigger();\n\n if (!calledRef.current || force === true) {\n if (callback(force) === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import utils from '../utils';\nimport doAlign from './align';\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","// export this package's api\nimport Align from \"./Align\";\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * Popup should follow the steps for each component work correctly:\n * measure - check for the current stretch size\n * align - let component align the position\n * aligned - re-align again in case additional className changed the size\n * afterAlign - choice next step is trigger motion or finished\n * beforeMotion - should reset motion to invisible so that CSSMotion can do normal motion\n * motion - play the motion\n * stable - everything is done\n */\n\nvar StatusQueue = ['measure', 'alignPre', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function setStatus(nextStatus) {\n setInternalStatus(nextStatus, true);\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from \"./useVisibleStatus\";\nimport { getMotion } from \"../utils/legacyUtil\";\nimport useStretchStyle from \"./useStretchStyle\";\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart,\n onClick = props.onClick;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n /**\n * `alignedClassName` may modify `source` size,\n * which means one time align may not move to the correct position at once.\n *\n * We will reset `alignTimes` for each status switch to `alignPre`\n * and let `rc-align` to align for multiple times to ensure get final stable place.\n * Currently we mark `alignTimes < 2` repeat align, it will increase if user report for align issue.\n * \n * Update:\n * In React 18. `rc-align` effect of align may faster than ref called trigger `forceAlign`.\n * We adjust this to `alignTimes < 2`.\n * We need refactor `rc-align` to support mark of `forceAlign` call if this still happen.\n */\n\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n alignTimes = _useState4[0],\n setAlignTimes = _useState4[1];\n\n var prepareResolveRef = useRef();\n useLayoutEffect(function () {\n if (status === 'alignPre') {\n setAlignTimes(0);\n }\n }, [status]); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n } // We will retry multi times to make sure that the element has been align in the right position.\n\n\n setAlignTimes(function (val) {\n return val + 1;\n });\n\n if (status === 'align') {\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // Delay to go to next status\n\n\n useLayoutEffect(function () {\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignTimes < 3) {\n forceAlign();\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n }\n }, [alignTimes]); // ======================== Motion ========================\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n // Cannot interact with disappearing elements\n // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714\n pointerEvents: !visible && status !== 'stable' ? 'none' : undefined\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if (align !== null && align !== void 0 && align.points && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n var tgtWidth = element.offsetWidth,\n tgtHeight = element.offsetHeight;\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n width = _element$getBoundingC.width,\n height = _element$getBoundingC.height; // Rect is more accurate than offset, use if near\n\n\n if (Math.abs(tgtWidth - width) < 1 && Math.abs(tgtHeight - height) < 1) {\n tgtWidth = width;\n tgtHeight = height;\n }\n\n setTargetSize({\n width: tgtWidth,\n height: tgtHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender,\n onClick = props.onClick;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from \"./Mask\";\nimport PopupInner from \"./PopupInner\";\nimport MobilePopupInner from \"./MobilePopupInner\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from \"./utils/alignUtil\";\nimport Popup from \"./Popup\";\nimport TriggerContext from \"./context\";\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n // ensure `getContainer` will be called only once\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"popupRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"triggerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"portalContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"attachId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"clickOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"touchOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler1\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler2\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mouseDownTimeout\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focusTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preClickTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preTouchTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"delayTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasPopupMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseMove\", function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseEnter\", function () {\n _this.clearDelayTimer();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseLeave\", function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenuClose\", function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseDown\", function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootDomNode\", function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopupClassNameFromAlign\", function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getComponent\", function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender,\n onPopupClick = _this$props2.onPopupClick;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender,\n onClick: onPopupClick\n }), typeof popup === 'function' ? popup() : popup);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"attachParent\", function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getContainer\", function () {\n if (!_this.portalContainer) {\n // In React.StrictMode component will call render multiple time in first mount.\n // When you want to refactor with FC, useRef will also init multiple time and\n // point to different useRef instance which will create multiple element\n // (This multiple render will not trigger effect so you can not clean up this\n // in effect). But this is safe with class component since it always point to same class instance.\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n _this.portalContainer = popupContainer;\n }\n\n _this.attachParent(_this.portalContainer);\n\n return _this.portalContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPoint\", function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePortalUpdate\", function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerContextValue\", {\n onPopupMouseDown: _this.onPopupMouseDown\n });\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n _defineProperty(Trigger, \"contextType\", TriggerContext);\n\n _defineProperty(Trigger, \"defaultProps\", {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n });\n\n return Trigger;\n}\nexport default generateTrigger(Portal);"],"names":["forwardRef","props","ref","didUpdate","getContainer","children","parentRef","useRef","containerRef","useImperativeHandle","initRef","current","canUseDom","parentNode","useEffect","appendChild","_containerRef$current","_containerRef$current2","removeChild","ReactDOM","isPointsEq","a1","a2","isAlignPoint","getMotion","_ref","prefixCls","motion","animation","transitionName","motionName","concat","Mask","visible","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","_objectSpread","motionAppear","React","CSSMotion","_extends","removeOnLeave","className","style","classNames","vendorPrefix","jsCssMap","Webkit","Moz","ms","O","getVendorPrefix","undefined","document","createElement","key","getTransitionName","getTransformName","setTransitionProperty","node","value","name","transitionProperty","setTransform","transform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","elem","originalStyle","display","offsetHeight","css","el","v","_typeof","i","hasOwnProperty","getScroll","w","top","ret","method","d","documentElement","body","getScrollLeft","getScrollTop","getOffset","pos","box","x","y","doc","ownerDocument","docElem","getBoundingClientRect","Math","floor","left","clientLeft","clientTop","getClientPosition","defaultView","parentWindow","isWindow","obj","window","getDocument","nodeType","_RE_NUM_NO_PX","RegExp","source","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","getOffsetDirection","dir","option","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","offset","position","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","originalXY","getComputedStyle","getPropertyValue","matrix","replace","split","parseFloat","getTransformXY","resultXY","xy","arr","match2d","match","map","item","join","setTransformXY","each","fn","length","isBorderBoxFn","cs","computedStyle","val","test","rsLeft","pixelLeft","BOX_MODELS","swap","options","callback","call","getPBMWidth","which","prop","j","cssProp","domUtils","getParent","element","parent","host","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","width","height","isBorderBox","cssBoxValue","Number","borderBoxValueOrIsBorderBox","slice","refWin","max","win","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","args","offsetWidth","apply","mix","to","from","first","charAt","toUpperCase","includeMargin","utils","getWindow","setTimeout","ignoreShake","oriOffset","oLeft","toFixed","oTop","tLeft","tTop","useCssTransform","setOffset","clone","overflow","getWindowScrollLeft","getWindowScrollTop","merge","arguments","getOffsetParent","positionStyle","nodeName","toLowerCase","getVisibleRectForElement","alwaysByViewport","visibleRect","right","Infinity","bottom","navigator","userAgent","indexOf","clientWidth","min","clientHeight","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","bodyStyle","overflowX","innerWidth","overflowY","innerHeight","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","h","outerWidth","outerHeight","getAlignOffset","region","align","V","H","getElFuturePos","elRegion","refNodeRegion","points","targetOffset","p1","p2","diff","round","isFailX","elFuturePos","isFailY","flip","reg","p","push","m","flipOffset","index","convertOffset","str","offsetLen","parseInt","substring","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","adjustX","adjustY","newPoints","l","r","newOffset","newTargetOffset","isCompleteFailX","t","b","isCompleteFailY","isStillFailX","isStillFailY","size","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","target","isTargetNotOutOfVisible","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevWidth","prevHeight","resizeObserver","ResizeObserver","_slicedToArray","contains","_target$getBoundingCl","fixedWidth","fixedHeight","Promise","resolve","then","observe","disconnect","getElement","func","getPoint","point","Align","disabled","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","nodeRef","childNode","forceAlignPropsRef","_useBuffer","buffer","calledRef","timeoutRef","cancelTrigger","clearTimeout","trigger","force","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestAlign","latestOnAlign","_result","_element","_point","activeElement","isVisible","tgtPoint","pageX","pageY","clientX","clientY","pointInView","alignPoint","container","focus","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","_React$useState","_React$useState2","setElement","_React$useState3","_React$useState4","setPoint","useLayoutEffect","prev","next","isEqual","addEventListener","remove","forceAlign","composeRef","RcAlign","displayName","StatusQueue","PopupInner","stretch","destroyPopupOnHide","forceRender","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","onClick","alignRef","elementRef","_useState","useState","_useState2","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","sizeStyle","minHeight","minWidth","tgtWidth","tgtHeight","_element$getBoundingC","abs","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","status","setInternalStatus","rafRef","setStatus","nextStatus","cancelRaf","raf","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","stop","useVisibleStatus","_useVisibleStatus2","goNextStatus","_useState3","_useState4","alignTimes","setAlignTimes","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","forEach","eventName","originHandler","event","mergedStyle","opacity","pointerEvents","alignDisabled","leavedClassName","onAppearPrepare","onEnterPrepare","motionRef","motionClassName","motionStyle","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","_excluded","Popup","_objectWithoutProperties","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","isMobile","popupNode","noop","returnEmptyString","returnDocument","ALL_HANDLERS","PortalComponent","Trigger","Portal","_React$Component","_inherits","_super","_createSuper","_this","_popupVisible","_classCallCheck","this","_defineProperty","_assertThisInitialized","e","mouseEnterDelay","fireEvents","delaySetPopupVisible","mouseLeaveDelay","clearDelayTimer","_this$popupRef$curren","relatedTarget","popupRef","isFocusToShow","focusTime","Date","now","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","preventDefault","setPopupVisible","isContextMenuToShow","close","preTime","isClickToShow","isClickToHide","nextVisible","state","popupVisible","_this$context","hasPopupMouseDown","mouseDownTimeout","context","onPopupMouseDown","maskClosable","root","getPopupDomNode","isContextMenuOnly","getTriggerDOMNode","triggerRef","domNode","findDOMNode","err","_this$props","popupPlacement","builtinPlacements","getPopupClassNameFromAlign","placements","Object","keys","placement","getAlignPopupClassName","_this$props2","onPopupAlign","popupAnimation","popupTransitionName","popup","onPopupClick","_this$state","getPopupAlign","mouseProps","isMouseEnterToShow","onPopupMouseEnter","isMouseLeaveToHide","onPopupMouseLeave","popupContainer","attachId","mountNode","_this$props3","getPopupContainer","attachParent","portalContainer","setState","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","_createClass","componentDidUpdate","currentDocument","clickOutsideHandler","onDocumentClick","touchOutsideHandler","contextMenuOutsideHandler1","onContextMenuClose","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","popupAlign","placementStr","baseAlign","getAlignFromPlacement","onPopupVisibleChange","delayS","_this2","delay","delayTimer","childPros","_this$props4","action","showAction","_this$props5","_this$props6","hideAction","_this$props7","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","type","childCallback","_this$props11","autoDestroy","child","newChildProps","onContextMenu","createTwoChains","onMouseMove","onFocus","onBlur","childrenClassName","supportRef","portal","handlePortalUpdate","getComponent","TriggerContext","triggerContextValue","prevState","newState"],"sourceRoot":""}