{"version":3,"file":"static/js/6178.4eae5b66.chunk.js","mappings":"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","sources":["../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/propertyUtils.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-util/lib/Children/toArray.js","../node_modules/rc-util/lib/hooks/useEvent.js","../node_modules/rc-util/lib/hooks/useLayoutEffect.js","../node_modules/rc-util/lib/hooks/useMergedState.js","../node_modules/rc-util/lib/hooks/useState.js","../node_modules/rc-util/lib/ref.js"],"sourcesContent":["import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 ? void 0 : onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { observe, unobserve } from '../utils/observerUtil';\nimport DomWrapper from './DomWrapper';\nimport { CollectionContext } from '../Collection';\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = React.useMemo(function () {\n return composeRef(originRef, elementRef);\n }, [originRef, elementRef]);\n var getDom = function getDom() {\n return findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from './SingleObserver';\nimport { Collection } from './Collection';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from './utils/observerUtil';\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","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\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, function () {\n return {};\n });\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\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
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\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 // 例如
\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);","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toArray;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactIs = require(\"react-is\");\nfunction toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n _react.default.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if ((0, _reactIs.isFragment)(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useEvent;\nvar React = _interopRequireWildcard(require(\"react\"));\nfunction useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useLayoutUpdateEffect = exports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _canUseDom = _interopRequireDefault(require(\"../Dom/canUseDom\"));\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && (0, _canUseDom.default)() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nvar useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexports.useLayoutUpdateEffect = useLayoutUpdateEffect;\nvar _default = useLayoutEffect;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useMergedState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar _useEvent = _interopRequireDefault(require(\"./useEvent\"));\nvar _useLayoutEffect = require(\"./useLayoutEffect\");\nvar _useState5 = _interopRequireDefault(require(\"./useState\"));\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nfunction useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = (0, _useState5.default)(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = (0, _useEvent.default)(onChange);\n var _useState3 = (0, _useState5.default)([mergedValue]),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n (0, _useLayoutEffect.useLayoutUpdateEffect)(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n (0, _useLayoutEffect.useLayoutUpdateEffect)(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = (0, _useEvent.default)(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\").default;\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useSafeState;\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\nvar React = _interopRequireWildcard(require(\"react\"));\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nfunction useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.composeRef = composeRef;\nexports.fillRef = fillRef;\nexports.supportNodeRef = supportNodeRef;\nexports.supportRef = supportRef;\nexports.useComposeRef = useComposeRef;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _react = require(\"react\");\nvar _reactIs = require(\"react-is\");\nvar _useMemo = _interopRequireDefault(require(\"./hooks/useMemo\"));\n/* eslint-disable no-param-reassign */\n\nfunction fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if ((0, _typeof2.default)(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nfunction composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nfunction useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return (0, _useMemo.default)(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nfunction supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = (0, _reactIs.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nfunction supportNodeRef(node) {\n if (! /*#__PURE__*/(0, _react.isValidElement)(node)) {\n return false;\n }\n if ((0, _reactIs.isFragment)(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */"],"names":["elementListeners","Map","resizeObserver","ResizeObserver","entities","forEach","entity","_elementListeners$get","target","get","listener","_rs","DomWrapper","_React$Component","_inherits","_super","_createSuper","_classCallCheck","this","apply","arguments","_createClass","key","value","props","children","React","CollectionContext","SingleObserver","ref","disabled","elementRef","wrapperRef","onCollectionResize","isRenderProps","mergedChildren","sizeRef","width","height","offsetWidth","offsetHeight","canRef","supportRef","originRef","mergedRef","composeRef","getDom","findDOMNode","current","propsRef","onInternalResize","_propsRef$current","onResize","data","_target$getBoundingCl","getBoundingClientRect","fixedWidth","Math","floor","fixedHeight","size","mergedOffsetWidth","round","mergedOffsetHeight","sizeInfo","_objectSpread","Promise","resolve","then","element","callback","currentElement","has","set","Set","observe","add","delete","unobserve","toArray","map","child","index","concat","_extends","undefined","RefResizeObserver","Collection","_ref","onBatchResize","resizeIdRef","resizeInfosRef","currentId","push","Provider","forwardRef","didUpdate","getContainer","parentRef","useRef","containerRef","useImperativeHandle","initRef","canUseDom","parentNode","useEffect","appendChild","_containerRef$current","_containerRef$current2","removeChild","ReactDOM","isPointsEq","a1","a2","isAlignPoint","getMotion","prefixCls","motion","animation","transitionName","motionName","Mask","visible","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","motionAppear","CSSMotion","removeOnLeave","className","style","classNames","vendorPrefix","jsCssMap","Webkit","Moz","ms","O","getVendorPrefix","document","createElement","getTransitionName","getTransformName","setTransitionProperty","node","name","transitionProperty","setTransform","transform","getComputedStyleX","matrix2d","matrix3d","forceRelayout","elem","originalStyle","display","css","el","v","_typeof","i","hasOwnProperty","getScroll","w","top","ret","method","d","documentElement","body","getScrollLeft","getScrollTop","getOffset","pos","box","x","y","doc","ownerDocument","docElem","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","_key","_dir","_off","setTransform$1","originalXY","getComputedStyle","getPropertyValue","matrix","replace","split","parseFloat","getTransformXY","resultXY","xy","arr","match2d","match","item","join","setTransformXY","each","fn","length","isBorderBoxFn","cs","computedStyle","val","test","rsLeft","pixelLeft","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","getPBMWidth","which","prop","j","cssProp","domUtils","getParent","parent","host","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","Number","borderBoxValueOrIsBorderBox","slice","refWin","max","win","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","_len","args","Array","_key2","options","call","swap","mix","to","from","first","charAt","toUpperCase","includeMargin","utils","getWindow","setTimeout","ignoreShake","oriOffset","oLeft","toFixed","oTop","tLeft","tTop","useCssTransform","setOffset","clone","overflow","getWindowScrollLeft","getWindowScrollTop","merge","getOffsetParent","positionStyle","nodeName","toLowerCase","getParent$1","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","isFailX","elFuturePos","isFailY","flip","reg","p","m","flipOffset","convertOffset","str","offsetLen","parseInt","substring","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","adjustX","adjustY","newPoints","l","r","newOffset","newTargetOffset","isCompleteFailX","_newPoints","t","b","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","isTargetNotOutOfVisible","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevWidth","prevHeight","_slicedToArray","contains","disconnect","getElement","func","getPoint","point","Align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","nodeRef","childNode","only","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","_objectSpread2","alignPoint","container","focus","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","_React$useState","_React$useState2","setElement","_React$useState3","_React$useState4","setPoint","useLayoutEffect","prev","next","isEqual","addEventListener","remove","forceAlign","RcAlign","displayName","StatusQueue","PopupInner","stretch","destroyPopupOnHide","forceRender","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","onClick","alignRef","_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","cancel","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","stop","useVisibleStatus","_useVisibleStatus2","goNextStatus","_useState3","_useState4","alignTimes","setAlignTimes","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","eventName","originHandler","event","mergedStyle","opacity","pointerEvents","alignDisabled","count","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","_this","_popupVisible","_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","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","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","newChildProps","onContextMenu","createTwoChains","onMouseMove","onFocus","onBlur","childrenClassName","portal","handlePortalUpdate","getComponent","TriggerContext","triggerContextValue","prevState","newState","Portal","keepEmpty","isArray","isFragment","Element","offsetParent","getBBox","_getBBox","_width","_height","obj1","obj2","shallow","refSet","deepEqual","a","level","circular","warning","newLevel","every","agent","vendor","opera","substr","_interopRequireDefault","require","defineProperty","exports","_react","default","Children","_reactIs","_interopRequireWildcard","fnRef","memoFn","useCallback","_fnRef$current","useLayoutUpdateEffect","useInternalLayoutEffect","deps","firstMountRef","firstMount","_default","defaultStateValue","defaultValue","onChange","postState","_useState5","hasValue","_slicedToArray2","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","_useEvent","prevValue","setPrevValue","_useLayoutEffect","triggerChange","updater","ignoreDestroy","destroyRef","setValue","fillRef","supportNodeRef","isValidElement","useComposeRef","_len2","refs","_useMemo","_typeof2","refList","filter","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isMemo","prototype","render"],"sourceRoot":""}