content: import _extends from "@babel/runtime/helpers/esm/extends";
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  import React from 'react';
  import PropTypes from 'prop-types';
  import debounce from '../utils/debounce';
  const styles = {
    width: 99,
    height: 99,
    position: 'absolute',
    top: -9999,
    overflow: 'scroll'
  };
  /**
   * @ignore - internal component.
   * The component is originates from https://github.com/STORIS/react-scrollbar-size.
   * It has been moved into the core in order to minimize the bundle size.
   */
  
  export default function ScrollbarSize(props) {
    const {
      onChange
    } = props,
          other = _objectWithoutPropertiesLoose(props, ["onChange"]);
  
    const scrollbarHeight = React.useRef();
    const nodeRef = React.useRef(null);
  
    const setMeasurements = () => {
      scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;
    };
  
    React.useEffect(() => {
      const handleResize = debounce(() => {
        const prevHeight = scrollbarHeight.current;
        setMeasurements();
  
        if (prevHeight !== scrollbarHeight.current) {
          onChange(scrollbarHeight.current);
        }
      });
      window.addEventListener('resize', handleResize);
      return () => {
        handleResize.clear();
        window.removeEventListener('resize', handleResize);
      };
    }, [onChange]);
    React.useEffect(() => {
      setMeasurements();
      onChange(scrollbarHeight.current);
    }, [onChange]);
    return React.createElement("div", _extends({
      style: styles,
      ref: nodeRef
    }, other));
  }
  process.env.NODE_ENV !== "production" ? ScrollbarSize.propTypes = {
    onChange: PropTypes.func.isRequired
  } : void 0;