forked from duskload/react-device-detect
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
1 lines (1 loc) · 15.4 KB
/
main.js
File metadata and controls
1 lines (1 loc) · 15.4 KB
1
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),React__default=_interopDefault(React);function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function ownKeys(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function _objectSpread2(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(r,!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(r).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};for(var r,n={},i=Object.keys(e),s=0;s<i.length;s++)r=i[s],0<=t.indexOf(r)||(n[r]=e[r]);return n}function _objectWithoutProperties(e,t){if(null==e)return{};var r,n=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols)for(var i=Object.getOwnPropertySymbols(e),s=0;s<i.length;s++)r=i[s],0<=t.indexOf(r)||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r]);return n}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?_assertThisInitialized(e):t}var UAParser=require("ua-parser-js/dist/ua-parser.min"),UA=new UAParser,browser=UA.getBrowser(),cpu=UA.getCPU(),device=UA.getDevice(),engine=UA.getEngine(),os=UA.getOS(),ua=UA.getUA(),setUA=function(e){return UA.setUA(e)};function serverUA(e){var t=new UAParser(e);return{UA:t,browser:t.getBrowser(),cpu:t.getCPU(),device:t.getDevice(),engine:t.getEngine(),os:t.getOS(),ua:t.getUA(),setUA:function(e){return t.setUA(e)}}}var mockUserAgent=function(e){window.navigator.__defineGetter__("userAgent",function(){return e})},setDefaults=function(e,t){return e||(1<arguments.length&&void 0!==t?t:"none")},getNavigatorInstance=function(){return!("undefined"==typeof window||!window.navigator&&!navigator)&&(window.navigator||navigator)},isIOS13Check=function(e){var t=getNavigatorInstance();return t&&t.platform&&(-1!==t.platform.indexOf(e)||"MacIntel"===t.platform&&1<t.maxTouchPoints&&!window.MSStream)},UAHelper=Object.freeze({UA:UA,browser:browser,cpu:cpu,device:device,engine:engine,os:os,ua:ua,setUA:setUA,serverUA:serverUA,mockUserAgent:mockUserAgent,setDefaults:setDefaults,getNavigatorInstance:getNavigatorInstance,isIOS13Check:isIOS13Check}),DEVICE_TYPES={MOBILE:"mobile",TABLET:"tablet",SMART_TV:"smarttv",CONSOLE:"console",WEARABLE:"wearable",BROWSER:void 0},BROWSER_TYPES={CHROME:"Chrome",FIREFOX:"Firefox",OPERA:"Opera",YANDEX:"Yandex",SAFARI:"Safari",INTERNET_EXPLORER:"Internet Explorer",EDGE:"Edge",CHROMIUM:"Chromium",IE:"IE",MOBILE_SAFARI:"Mobile Safari"},OS_TYPES={IOS:"iOS",ANDROID:"Android",WINDOWS_PHONE:"Windows Phone"},initialData={isMobile:!1,isTablet:!1,isBrowser:!1,isSmartTV:!1,isConsole:!1,isWearable:!1},checkType=function(e){switch(e){case DEVICE_TYPES.MOBILE:return{isMobile:!0};case DEVICE_TYPES.TABLET:return{isTablet:!0};case DEVICE_TYPES.SMART_TV:return{isSmartTV:!0};case DEVICE_TYPES.CONSOLE:return{isConsole:!0};case DEVICE_TYPES.WEARABLE:return{isWearable:!0};case DEVICE_TYPES.BROWSER:return{isBrowser:!0};default:return initialData}},broPayload=function(e,t,r,n,i){return{isBrowser:e,browserMajorVersion:setDefaults(t.major),browserFullVersion:setDefaults(t.version),browserName:setDefaults(t.name),engineName:setDefaults(r.name),engineVersion:setDefaults(r.version),osName:setDefaults(n.name),osVersion:setDefaults(n.version),userAgent:setDefaults(i)}},mobilePayload=function(e,t,r,n){return _objectSpread2({},e,{vendor:setDefaults(t.vendor),model:setDefaults(t.model),osName:setDefaults(r.name),osVersion:setDefaults(r.version),userAgent:setDefaults(n)})},stvPayload=function(e,t,r,n){return{isSmartTV:e,engineName:setDefaults(t.name),engineVersion:setDefaults(t.version),osName:setDefaults(r.name),osVersion:setDefaults(r.version),userAgent:setDefaults(n)}},consolePayload=function(e,t,r,n){return{isConsole:e,engineName:setDefaults(t.name),engineVersion:setDefaults(t.version),osName:setDefaults(r.name),osVersion:setDefaults(r.version),userAgent:setDefaults(n)}},wearPayload=function(e,t,r,n){return{isWearable:e,engineName:setDefaults(t.name),engineVersion:setDefaults(t.version),osName:setDefaults(r.name),osVersion:setDefaults(r.version),userAgent:setDefaults(n)}};function deviceDetect(e){var t=serverUA,r=_objectWithoutProperties(UAHelper,["serverUA"]),n=e?t(e):r,i=n.device,s=n.browser,o=n.engine,a=n.os,l=n.ua,u=checkType(i.type),c=u.isBrowser,f=u.isMobile,d=u.isTablet,p=u.isSmartTV,m=u.isConsole,E=u.isWearable;return c?broPayload(c,s,o,a,l):p?stvPayload(p,o,a,l):m?consolePayload(m,o,a,l):f||d?mobilePayload(u,i,a,l):E?wearPayload(E,o,a,l):void 0}var isMobileType=function(){return device.type===DEVICE_TYPES.MOBILE},isTabletType=function(){return device.type===DEVICE_TYPES.TABLET},isMobileAndTabletType=function(){switch(device.type){case DEVICE_TYPES.MOBILE:case DEVICE_TYPES.TABLET:return!0;default:return!1}},isSmartTVType=function(){return device.type===DEVICE_TYPES.SMART_TV},isBrowserType=function(){return device.type===DEVICE_TYPES.BROWSER},isWearableType=function(){return device.type===DEVICE_TYPES.WEARABLE},isConsoleType=function(){return device.type===DEVICE_TYPES.CONSOLE},isAndroidType=function(){return os.name===OS_TYPES.ANDROID},isWinPhoneType=function(){return os.name===OS_TYPES.WINDOWS_PHONE},isIOSType=function(){return os.name===OS_TYPES.IOS},isChromeType=function(){return browser.name===BROWSER_TYPES.CHROME},isFirefoxType=function(){return browser.name===BROWSER_TYPES.FIREFOX},isChromiumType=function(){return browser.name===BROWSER_TYPES.CHROMIUM},isEdgeType=function(){return browser.name===BROWSER_TYPES.EDGE},isYandexType=function(){return browser.name===BROWSER_TYPES.YANDEX},isSafariType=function(){return browser.name===BROWSER_TYPES.SAFARI||browser.name===BROWSER_TYPES.MOBILE_SAFARI},isMobileSafariType=function(){return browser.name===BROWSER_TYPES.MOBILE_SAFARI},isOperaType=function(){return browser.name===BROWSER_TYPES.OPERA},isIEType=function(){return browser.name===BROWSER_TYPES.INTERNET_EXPLORER||browser.name===BROWSER_TYPES.IE},isElectronType=function(){var e=getNavigatorInstance(),t=e&&e.userAgent.toLowerCase();return"string"==typeof t&&/electron/.test(t)},getIOS13=function(){var e=getNavigatorInstance();return e&&(/iPad|iPhone|iPod/.test(e.platform)||"MacIntel"===e.platform&&1<e.maxTouchPoints)&&!window.MSStream},getIPad13=function(){return isIOS13Check("iPad")},getIphone13=function(){return isIOS13Check("iPhone")},getIPod13=function(){return isIOS13Check("iPod")},getBrowserFullVersion=function(){return setDefaults(browser.version)},getBrowserVersion=function(){return setDefaults(browser.major)},getOsVersion=function(){return setDefaults(os.version)},getOsName=function(){return setDefaults(os.name)},getBrowserName=function(){return setDefaults(browser.name)},getMobileVendor=function(){return setDefaults(device.vendor)},getMobileModel=function(){return setDefaults(device.model)},getEngineName=function(){return setDefaults(engine.name)},getEngineVersion=function(){return setDefaults(engine.version)},getUseragent=function(){return setDefaults(ua)},getDeviceType=function(){return setDefaults(device.type,"browser")},isSmartTV=isSmartTVType(),isConsole=isConsoleType(),isWearable=isWearableType(),isMobileSafari=isMobileSafariType()||getIPad13(),isChromium=isChromiumType(),isMobile=isMobileAndTabletType()||getIPad13(),isMobileOnly=isMobileType(),isTablet=isTabletType()||getIPad13(),isBrowser=isBrowserType(),isAndroid=isAndroidType(),isWinPhone=isWinPhoneType(),isIOS=isIOSType()||getIPad13(),isChrome=isChromeType(),isFirefox=isFirefoxType(),isSafari=isSafariType(),isOpera=isOperaType(),isIE=isIEType(),osVersion=getOsVersion(),osName=getOsName(),fullBrowserVersion=getBrowserFullVersion(),browserVersion=getBrowserVersion(),browserName=getBrowserName(),mobileVendor=getMobileVendor(),mobileModel=getMobileModel(),engineName=getEngineName(),engineVersion=getEngineVersion(),getUA=getUseragent(),isEdge=isEdgeType(),isYandex=isYandexType(),deviceType=getDeviceType(),isIOS13=getIOS13(),isIPad13=getIPad13(),isIPhone13=getIphone13(),isIPod13=getIPod13(),isElectron=isElectronType(),AndroidView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isAndroid?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},BrowserView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isBrowser?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},IEView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isIE?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},IOSView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isIOS?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},MobileView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isMobile?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},TabletView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isTablet?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},WinPhoneView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isWinPhone?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},MobileOnlyView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isMobileOnly?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},SmartTVView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isSmartTV?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},ConsoleView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isConsole?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},WearableView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return isWearable?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null},CustomView=function(e){var t=e.renderWithFragment,r=e.children,n=e.viewClassName,i=e.style;return e.condition?t?React__default.createElement(React.Fragment,null,r):React__default.createElement("div",{className:n,style:i},r):null};function withOrientationChange(e){return function(){function r(e){var t;return _classCallCheck(this,r),(t=_possibleConstructorReturn(this,_getPrototypeOf(r).call(this,e))).isEventListenerAdded=!1,t.handleOrientationChange=t.handleOrientationChange.bind(_assertThisInitialized(t)),t.onOrientationChange=t.onOrientationChange.bind(_assertThisInitialized(t)),t.onPageLoad=t.onPageLoad.bind(_assertThisInitialized(t)),t.state={isLandscape:!1,isPortrait:!1},t}return _inherits(r,React__default.Component),_createClass(r,[{key:"handleOrientationChange",value:function(){this.isEventListenerAdded||(this.isEventListenerAdded=!0);var e=window.innerWidth>window.innerHeight?90:0;this.setState({isPortrait:0==e,isLandscape:90==e})}},{key:"onOrientationChange",value:function(){this.handleOrientationChange()}},{key:"onPageLoad",value:function(){this.handleOrientationChange()}},{key:"componentDidMount",value:function(){void 0!==("undefined"==typeof window?"undefined":_typeof(window))&&isMobile&&(this.isEventListenerAdded?window.removeEventListener("load",this.onPageLoad,!1):(this.handleOrientationChange(),window.addEventListener("load",this.onPageLoad,!1)),window.addEventListener("resize",this.onOrientationChange,!1))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.onOrientationChange,!1)}},{key:"render",value:function(){return React__default.createElement(e,_extends({},this.props,{isLandscape:this.state.isLandscape,isPortrait:this.state.isPortrait}))}}]),r}()}exports.AndroidView=AndroidView,exports.BrowserView=BrowserView,exports.ConsoleView=ConsoleView,exports.CustomView=CustomView,exports.IEView=IEView,exports.IOSView=IOSView,exports.MobileOnlyView=MobileOnlyView,exports.MobileView=MobileView,exports.SmartTVView=SmartTVView,exports.TabletView=TabletView,exports.WearableView=WearableView,exports.WinPhoneView=WinPhoneView,exports.browserName=browserName,exports.browserVersion=browserVersion,exports.deviceDetect=deviceDetect,exports.deviceType=deviceType,exports.engineName=engineName,exports.engineVersion=engineVersion,exports.fullBrowserVersion=fullBrowserVersion,exports.getUA=getUA,exports.isAndroid=isAndroid,exports.isBrowser=isBrowser,exports.isChrome=isChrome,exports.isChromium=isChromium,exports.isConsole=isConsole,exports.isEdge=isEdge,exports.isElectron=isElectron,exports.isFirefox=isFirefox,exports.isIE=isIE,exports.isIOS=isIOS,exports.isIOS13=isIOS13,exports.isIPad13=isIPad13,exports.isIPhone13=isIPhone13,exports.isIPod13=isIPod13,exports.isMobile=isMobile,exports.isMobileOnly=isMobileOnly,exports.isMobileSafari=isMobileSafari,exports.isOpera=isOpera,exports.isSafari=isSafari,exports.isSmartTV=isSmartTV,exports.isTablet=isTablet,exports.isWearable=isWearable,exports.isWinPhone=isWinPhone,exports.isYandex=isYandex,exports.mobileModel=mobileModel,exports.mobileVendor=mobileVendor,exports.osName=osName,exports.osVersion=osVersion,exports.withOrientationChange=withOrientationChange;