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