text: /**
   * @file Santd trigger utils index file
   * @author mayihui@baidu.com
   **/
  
  export function contains(root, n) {
      let node = n;
      while (node) {
          if (node === root) {
              return true;
          }
          node = node.parentNode;
      }
  
      return false;
  }
  
  export function buffer(fn, ms) {
      let timer;
  
      function clear() {
          if (timer) {
              clearTimeout(timer);
              timer = null;
          }
      }
  
      function bufferFn() {
          clear();
          timer = setTimeout(fn, ms);
      }
  
      bufferFn.clear = clear;
  
      return bufferFn;
  }
  
  export function isSamePoint(prev, next) {
      if (prev === next) {
          return true;
      }
      if (!prev || !next) {
          return false;
      }
  
      if ('pageX' in next && 'pageY' in next) {
          return prev.pageX === next.pageX && prev.pageY === next.pageY;
      }
  
      if ('clientX' in next && 'clientY' in next) {
          return prev.clientX === next.clientX && prev.clientY === next.clientY;
      }
  
      return false;
  }
  
  export function isWindow(obj) {
      return obj && typeof obj === 'object' && obj.window === obj;
  }
  
  export function isSimilarValue(val1, val2) {
      const int1 = Math.floor(val1);
      const int2 = Math.floor(val2);
      return Math.abs(int1 - int2) <= 1;
  }
  
  export function restoreFocus(activeElement, container) {
      // Focus back if is in the container
      if (activeElement !== document.activeElement && contains(container, activeElement)) {
          activeElement.focus();
      }
  }
  