/////////////////////////////////////////////////////////
// Browser Utils
//
/////////////////////////////////////////////////////////
var Browser = /*#__PURE__*/function () {
  function Browser() {}
  // Check if not running on server
  Browser.isBrowser = function isBrowser() {
    return typeof window !== "undefined";
  }

  // Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
  ;
  Browser.isOpera = function isOpera() {
    return Browser.isBrowser() && (!!window.opera || navigator.userAgent.indexOf(" OPR/") >= 0);
  }

  // Firefox 1.0+
  ;
  Browser.isFirefox = function isFirefox() {
    return Browser.isBrowser() && typeof InstallTrigger !== "undefined";
  }

  // Safari 3.0+
  ;
  Browser.isSafari = function isSafari() {
    if (!Browser.isBrowser()) {
      return false;
    }
    return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
  }

  // Internet Explorer 6-11
  ;
  Browser.isIE = function isIE() {
    /*@cc_on!@*/
    return Browser.isBrowser() && !!document.documentMode;
  }

  // Edge 20+
  ;
  Browser.isEdge = function isEdge() {
    return Browser.isBrowser() && !Browser.isIE() && !!window.StyleMedia;
  }

  // Chrome 1+
  ;
  Browser.isChrome = function isChrome() {
    return Browser.isBrowser() && !!window.chrome && !!window.chrome.webstore;
  }

  // Blink engine detection
  ;
  Browser.isBlink = function isBlink() {
    return Browser.isBrowser() && (Browser.isChrome() || Browser.isOpera()) && !!window.CSS;
  };
  Browser.getUserAgent = function getUserAgent() {
    return typeof navigator === "undefined" ? "" : navigator.userAgent;
  };
  Browser.isAndroid = function isAndroid() {
    return Browser.isBrowser() && Browser.getUserAgent().match(/Android/i);
  };
  Browser.isBlackBerry = function isBlackBerry() {
    return Browser.isBrowser() && Browser.getUserAgent().match(/BlackBerry/i);
  };
  Browser.isIOS = function isIOS() {
    return Browser.isBrowser() && Browser.getUserAgent().match(/iPhone|iPad|iPod/i);
  };
  Browser.isOpera = function isOpera() {
    return Browser.isBrowser() && Browser.getUserAgent().match(/Opera Mini/i);
  };
  Browser.isWindows = function isWindows() {
    return Browser.isBrowser() && Browser.isWindowsDesktop() || Browser.isWindowsMobile();
  };
  Browser.isWindowsMobile = function isWindowsMobile() {
    return Browser.isBrowser() && Browser.getUserAgent().match(/IEMobile/i);
  };
  Browser.isWindowsDesktop = function isWindowsDesktop() {
    return Browser.isBrowser() && Browser.getUserAgent().match(/WPDesktop/i);
  };
  Browser.isMobile = function isMobile() {
    return Browser.isBrowser() && (Browser.isWindowsMobile() || Browser.isBlackBerry() || Browser.isAndroid() || Browser.isIOS());
  };
  return Browser;
}();
export default Browser;