{"version":3,"sources":["jsdelivr-header.js","/npm/rc-align@4.0.15/es/util.js","/npm/rc-align@4.0.15/es/Align.js","/npm/rc-align@4.0.15/es/hooks/useBuffer.js"],"names":[],"mappings":"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","file":"/npm/rc-align@4.0.15/es/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/rc-align@4.0.15/es/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\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});"]}