UNPKG

native-fn

Version:
2 lines (1 loc) 16.9 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).Appearance=n()}(this,(function(){"use strict";var e;!function(e){e.Unknown="unknown",e.Light="light",e.Dark="dark"}(e||(e={}));var n,r,o,a,i,t=void 0!==globalThis.matchMedia?globalThis.matchMedia("(prefers-color-scheme: dark)"):{matches:!1,media:"not all",onchange:null,addListener:function(){},removeListener:function(){},addEventListener:function(){},removeEventListener:function(){},dispatchEvent:function(){return!1}},s="not all"!==t.media,l="document"in globalThis?globalThis.document.createElement("canvas").getContext("2d",{willReadFrequently:!0}):null,m=[];!function(e){e.Unknown="Unknown",e.Android="Android",e.iOS="iOS",e.Windows="Windows",e.MacOS="MacOS"}(n||(n={})),function(e){e.Unknown="Unknown",e.Mobile="Mobile",e.Desktop="Desktop"}(r||(r={})),function(e){e.Unknown="Unknown",e.EdgeHTML="EdgeHTML",e.ArkWeb="ArkWeb",e.Blink="Blink",e.Presto="Presto",e.WebKit="WebKit",e.Trident="Trident",e.NetFront="NetFront",e.KHTML="KHTML",e.Tasman="Tasman",e.Gecko="Gecko"}(o||(o={})),function(e){e.Unknown="Unknown",e.Chrome="Chrome",e.Safari="Safari",e.Edge="Edge",e.Firefox="Firefox",e.Opera="Opera",e.IE="IE",e.SamsungInternet="SamsungInternet"}(a||(a={})),function(e){e.Unknown="Unknown",e.ReactNative="ReactNative",e.Electron="Electron",e.Cordova="Cordova"}(i||(i={}));var c=void 0!==globalThis.navigator&&"string"==typeof globalThis.navigator.userAgent?globalThis.navigator.userAgent:"",d={"Google Chrome":"Chrome","Microsoft Edge":"Edge","Microsoft Edge WebView2":"Edge WebView2","Android WebView":"Chrome WebView",HeadlessChrome:"Chrome Headless",OperaMobile:"Opera Mobi"},g="loading",u=[],v=0,f={os:{name:n.Unknown,version:""},engine:{name:o.Unknown,version:""},browser:{name:a.Unknown,version:""},crossPlatformFramework:i.Unknown,userAgent:c,get readyState(){return g},get locale(){return function(){var e={language:null,languages:[],timezone:null,timezoneOffset:0};function n(e){for(var n=0;n<e.length;n++)r(e[n])}function r(n){"string"==typeof(n=O(n))&&-1===e.languages.indexOf(n)&&(null===e.language&&(e.language=n),e.languages.push(n))}if(f.crossPlatformFramework===i.ReactNative)try{var o=require("react-native").NativeModules;if(void 0!==o.SettingsManager){var a=o.SettingsManager;if(void 0!==a)if(void 0!==(s="function"==typeof a.getConstants?a.getConstants():a)&&void 0!==s.settings){var t=s.settings;"string"==typeof t.AppleLocale&&r(t.AppleLocale),Array.isArray(t.AppleLanguages)&&t.AppleLanguages.length>0&&n(t.AppleLanguages)}}if(void 0!==o.I18nManager){var s,l=o.I18nManager;if(void 0!==l)void 0!==(s="function"==typeof l.getConstants?l.getConstants():l)&&void 0!==s.localeIdentifier&&r(s.localeIdentifier)}}catch(e){}if(f.crossPlatformFramework===i.Electron)try{var m=require("electron").app;void 0!==m.getLocale&&r(m.getLocale()),void 0!==m.getSystemLocale&&r(m.getSystemLocale()),void 0!==m.getPreferredSystemLanguages&&n(m.getPreferredSystemLanguages())}catch(e){}if("undefined"!=typeof Intl){try{r(Intl.DateTimeFormat().resolvedOptions().locale)}catch(e){}try{e.timezone=Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}void 0!==globalThis.navigator&&(void 0!==globalThis.navigator.languages&&n(globalThis.navigator.languages),void 0!==globalThis.navigator.language&&r(globalThis.navigator.language),void 0!==globalThis.navigator.userLanguage&&r(globalThis.navigator.userLanguage),void 0!==globalThis.navigator.browserLanguage&&r(globalThis.navigator.browserLanguage),void 0!==globalThis.navigator.systemLanguage&&r(globalThis.navigator.systemLanguage));try{e.timezoneOffset=(new Date).getTimezoneOffset()}catch(e){}return e}()},get device(){return this.os.name===n.iOS||this.os.name===n.Android?r.Mobile:this.os.name===n.Windows||this.os.name===n.MacOS?r.Desktop:r.Unknown},get renderer(){return function(){if(void 0===globalThis.document)return"";var e=globalThis.document.createElement("canvas");if("function"!=typeof e.getContext)return"";var n=e.getContext("webgl2")||e.getContext("experimental-webgl")||e.getContext("webgl");if(null===n)return"";if(n instanceof WebGLRenderingContext||"getParameter"in n&&"function"==typeof n.getParameter){var r=n.getExtension("WEBGL_debug_renderer_info");return null===r?n.getParameter(n.RENDERER):n.getParameter(r.UNMASKED_RENDERER_WEBGL)}return""}()},get isWebview(){return/; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent)},get isNode(){return void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.node},get isStandalone(){return this.os.name===n.iOS?"standalone"in globalThis.navigator&&!!globalThis.navigator.standalone:"matchMedia"in globalThis&&globalThis.matchMedia("(display-mode: standalone)").matches},onready:function(e){if("complete"===this.readyState)try{e(this)}catch(e){}else u.push(e)}};function h(e){if(void 0===e)return"";var n={"4.90":"ME","NT3.51":"NT 3.11","NT4.0":"NT 4.0","NT 5.0":"2000","NT 5.1":"XP","NT 5.2":"XP","NT 6.0":"Vista","NT 6.1":"7","NT 6.2":"8","NT 6.3":"8.1","NT 6.4":"10","NT 10.0":"10",ARM:"RT"}[e];return void 0!==n?n:e}function w(e){return void 0===e?"":e.replace(/_/g,".")}var b=[[/windows nt (6\.[23]); arm/i,n.Windows,h],[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i,n.Windows,h],[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i,n.Windows,h],[/windows nt ?([\d.)]*)(?!.+xbox)/i,n.Windows,h],[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i,n.Windows,h],[/windows ce\/?([\d.]*)/i,n.Windows,h],[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i,n.iOS,w],[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i,n.iOS,w],[/cfnetwork\/.+darwin/i,n.iOS,w],[/mac os x ?([\w. ]*)/i,n.MacOS,w],[/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i,n.MacOS,w],[/droid ([\w.]+)\b.+(android[- ]x86)/i,n.Android],[/android\w*[-\/.; ]?([\d.]*)/i,n.Android]],p=[[/windows.+ edge\/([\w.]+)/i,o.EdgeHTML],[/arkweb\/([\w.]+)/i,o.ArkWeb],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i,o.Blink],[/presto\/([\w.]+)/i,o.Presto],[/webkit\/([\w.]+)/i,o.WebKit],[/trident\/([\w.]+)/i,o.Trident],[/netfront\/([\w.]+)/i,o.NetFront],[/khtml[\/ ]\(?([\w.]+)/i,o.KHTML],[/tasman[\/ ]\(?([\w.]+)/i,o.Tasman],[/rv:([\w.]{1,9})\b.+gecko/i,o.Gecko]],T=[[/\b(?:crmo|crios)\/([\w.]+)/i,a.Chrome],[/webview.+edge\/([\w.]+)/i,a.Edge],[/edg(?:e|ios|a)?\/([\w.]+)/i,a.Edge],[/opera mini\/([-\w.]+)/i,a.Opera],[/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i,a.Opera],[/opera(?:.+version\/|[\/ ]+)([\w.]+)/i,a.Opera],[/opios[\/ ]+([\w.]+)/i,a.Opera],[/\bop(?:rg)?x\/([\w.]+)/i,a.Opera],[/\bopr\/([\w.]+)/i,a.Opera],[/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i,a.IE],[/(?:ms|\()ie ([\w.]+)/i,a.IE],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i,a.IE],[/\bfocus\/([\w.]+)/i,a.Firefox],[/\bopt\/([\w.]+)/i,a.Opera],[/coast\/([\w.]+)/i,a.Opera],[/fxios\/([\w.-]+)/i,a.Firefox],[/samsungbrowser\/([\w.]+)/i,a.SamsungInternet],[/headlesschrome(?:\/([\w.]+)| )/i,a.Chrome],[/wv\).+chrome\/([\w.]+).+edgw\//i,a.Edge],[/ wv\).+(chrome)\/([\w.]+)/i,a.Chrome],[/chrome\/([\w.]+) mobile/i,a.Chrome],[/chrome\/v?([\w.]+)/i,a.Chrome],[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i,a.Safari],[/iphone .*mobile(?:\/\w+ | ?)safari/i,a.Safari],[/version\/([\w.,]+) .*safari/i,a.Safari],[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i,a.Safari,"1"],[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i,a.Firefox],[/mobile vr; rv:([\w.]+)\).+firefox/i,a.Firefox],[/firefox\/([\w.]+)/i,a.Firefox]];function k(){v--,j()}function j(){if(0===v&&"loading"===g){g="complete";for(var e=0;e<u.length;e++)try{u[e](f)}catch(e){}u.length=0}}function E(e,n){return 10===e.major&&0===e.minor&&e.build>=22e3?"11":10===e.major&&0===e.minor&&e.build<22e3?"10":6===e.major&&3===e.minor?"8.1":6===e.major&&2===e.minor?"8":6===e.major&&1===e.minor?"7":6===e.major&&0===e.minor?"Vista":5===e.major&&1===e.minor||5===e.major&&2===e.minor?"XP":5===e.major&&0===e.minor?"2000":4===e.major&&90===e.minor?"ME":4===e.major&&0===e.minor?"NT 4.0":3===e.major&&51===e.minor?"NT 3.11":n}function L(e,n){return e.major>=24?e.major-9+"."+e.minor+"."+e.build:23===e.major?"14."+e.minor+"."+e.build:22===e.major?"13."+e.minor+"."+e.build:21===e.major?"12."+e.minor+"."+e.build:20===e.major?"11."+e.minor+"."+e.build:19===e.major?"10.15."+e.minor:18===e.major?"10.14."+e.minor:17===e.major?"10.13."+e.minor:16===e.major?"10.12."+e.minor:15===e.major?"10.11."+e.minor:14===e.major?"10.10."+e.minor:13===e.major?"10.9."+e.minor:e.major>=5&&e.major<=12?"10."+(e.major-4)+"."+e.minor:n}function y(e,n){return e.major>=36?"16":35===e.major?"15":34===e.major?"14":33===e.major?"13":32===e.major?"12.1":31===e.major?"12":30===e.major?"11":29===e.major?"10":28===e.major?"9":27===e.major?"8.1":26===e.major?"8.0":25===e.major?"7.1":24===e.major?"7.0":23===e.major?"6.0":22===e.major?"5.1":21===e.major?"5.0":20===e.major||19===e.major?"4.4":18===e.major?"4.3":17===e.major?"4.2":16===e.major?"4.1":15===e.major?"4.0.3":14===e.major?"4.0":13===e.major?"3.2":12===e.major?"3.1":11===e.major?"3.0":10===e.major?"2.3.3":9===e.major?"2.3":8===e.major?"2.2":7===e.major?"2.1":6===e.major?"2.0.1":5===e.major?"2.0":4===e.major?"1.6":3===e.major?"1.5":2===e.major?"1.1":1===e.major?"1.0":n}function S(e,n){return"function"==typeof n?n(e):"string"==typeof n?n:void 0===e?"":e}function C(e){var n=e.split(".");return{major:parseInt(n[0]||"0"),minor:parseInt(n[1]||"0"),build:parseInt(n[2]||"0")}}function A(){if(f.crossPlatformFramework=i.Cordova,void 0!==globalThis.device)switch(globalThis.device.platform){case"Android":f.os={name:n.Android,version:globalThis.device.version};break;case"iOS":f.os={name:n.iOS,version:globalThis.device.version}}k()}function O(e){if(null==e)return e;if(0===e.length)return null;if("C"===(e=e.replace(/_/g,"-"))||"posix"===e.toLowerCase())return"en-US";if(-1!==e.indexOf("."))return O(e.split(".")[0]);if(-1!==e.indexOf("@"))return O(e.split("@")[0]);var n=e.split("-");return 0===n.length?null:(n[0]=n[0].toLowerCase(),n.length>1&&2===n[1].length&&(n[1]=n[1].toUpperCase()),n.length>2&&4===n[1].length&&(n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase()),n.join("-"))}!function(){(void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.electron||/ electron\//i.test(c))&&(f.crossPlatformFramework=i.Electron),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product&&(f.crossPlatformFramework=i.ReactNative);for(var e=0;e<b.length;e++){var o=(m=b[e])[0],t=m[1],s=m[2];if(null!==(g=f.userAgent.match(o))){f.os={name:t,version:S(g[1],s)};break}}for(f.os.name===n.iOS&&0===function(e,n){for(var r=e.split("."),o=n.split("."),a=Math.max(r.length,o.length),i=0;i<a;i++){var t=void 0,s=void 0;if((t=i<r.length?parseInt(r[i],10):0)>(s=i<o.length?parseInt(o[i],10):0))return 1;if(t<s)return-1}return 0}(f.os.version,"18.6")&&null!==(h=/\) Version\/([\d.]+)/.exec(f.userAgent))&&parseInt(h[1].substring(0,2),10)>=26&&(f.os.version=h[1]),e=0;e<p.length;e++){o=(m=p[e])[0];var l=m[1];s=m[2];if(null!==(g=f.userAgent.match(o))){f.engine={name:l,version:S(g[1],s)};break}}for(e=0;e<T.length;e++){o=(m=T[e])[0];var m,g,u=m[1];s=m[2];if(null!==(g=f.userAgent.match(o))){f.browser={name:u,version:S(g[1],s)};break}}if(f.crossPlatformFramework===i.ReactNative)try{t=(O=require("react-native").Platform).OS;var h=C(w=""+O.Version);switch(t){case"android":f.os={name:n.Android,version:y(h,w)};break;case"ios":f.os={name:n.iOS,version:w};break;case"windows":f.os={name:n.Windows,version:E(h,w)};break;case"macos":f.os={name:n.MacOS,version:w}}}catch(e){}if(f.isNode)try{var w,O=(t=require("os")).platform();h=C(w=t.release());switch(O){case"win32":f.os={name:n.Windows,version:E(h,w)};break;case"darwin":f.os={name:n.MacOS,version:L(h,w)};break;case"android":f.os={name:n.Android,version:w};break;case"linux":/android/i.test(w)&&(f.os={name:n.Android,version:w})}}catch(e){}void 0!==globalThis.document&&(void 0!==globalThis.device?A():globalThis.document.addEventListener("deviceready",A,!1)),void 0!==globalThis.navigator&&void 0!==globalThis.navigator.userAgentData&&void 0!==globalThis.navigator.userAgentData.getHighEntropyValues&&(v++,globalThis.navigator.userAgentData.getHighEntropyValues(["brands","fullVersionList","mobile","model","platform","platformVersion","architecture","formFactors","bitness","uaFullVersion","wow64"]).then((function(e){try{for(var o=e.fullVersionList||e.brands||[],i=e.platformVersion,t=e.platform,s=f.browser.name,l=null,m=0;m<o.length;m++){var c=null==(v=o[m])?{brand:"",version:""}:"string"==typeof v?{brand:v,version:""}:{brand:v.brand,version:v.version},g=c.version,u=c.brand;/not.a.brand/i.test(u)||((null===l||/Chrom/.test(l)&&"Chromium"!==u||"Edge"===l&&/WebView2/.test(u))&&(u=d[u]||u,null!==(l=s)&&!/Chrom/.test(l)&&/Chrom/.test(u)||("Chrome"===(s=u)||"Chrome WebView"===s||"Chrome Headless"===s?f.browser.name=a.Chrome:"Edge"===s||"Edge WebView2"===s?f.browser.name=a.Edge:"Opera Mobi"===s&&(f.browser.name=a.Opera),f.browser.version=g),l=u),"Chromium"===u&&(f.engine.version=g))}"string"==typeof i&&(f.os.name===n.Windows?f.os.version=parseInt(i.split(".")[0],10)>=13?"11":"10":f.os.version=i),"string"==typeof t&&(/android/i.test(t)?f.os.name=n.Android:/ios|iphone|ipad/i.test(t)?f.os.name=n.iOS:/windows|win32/i.test(t)?f.os.name=n.Windows:/macos|macintel/i.test(t)&&(f.os.name=n.MacOS)),!0===e.mobile&&(f.device=r.Mobile)}catch(e){}finally{k()}var v}))),j()}();var M=null,x=null;function I(){var n=new Image;if(n.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMXYxSDB6Ii8+PC9zdmc+",null===l)return e.Light;l.drawImage(n,0,0);var r=l.getImageData(0,0,1,1).data;return(r[0]&r[1]&r[2])<255?e.Dark:e.Light}function N(){return s?t.matches?e.Dark:e.Light:e.Unknown}function W(){try{return require("electron").nativeTheme.shouldUseDarkColors?e.Dark:e.Light}catch(n){return e.Unknown}}function P(n){var r;(r=n.matches?e.Dark:e.Light)!==M&&F(M=r)}function F(e){for(var n=0;n<m.length;n++){var r=m[n];r.fn(e),r.once&&U(r)}}function U(e){var n,r=D(e);-1!==r&&m.splice(r,1),0===m.length&&(f.browser.name===a.SamsungInternet?(M=null,null!==x&&(clearInterval(x),x=null)):(n=e.capture,M=null,"function"==typeof t.removeEventListener?t.removeEventListener("change",P,n):"function"==typeof t.removeListener&&t.removeListener(P)))}function D(e){for(var n=0;n<m.length;n++)if(m[n].fn===e.fn&&m[n].capture===e.capture)return n;return-1}return{installed:!1,name:"Appearance",module:{get value(){return f.crossPlatformFramework===i.ReactNative?function(){try{return require("react-native").Appearance.getColorScheme()||e.Unknown}catch(n){return e.Unknown}}():f.crossPlatformFramework===i.Electron?W():f.browser.name===a.SamsungInternet?I():N()},set value(e){!function(e){if(f.crossPlatformFramework===i.ReactNative)try{return void require("react-native").Appearance.setColorScheme(e)}catch(e){}if(f.crossPlatformFramework===i.Electron)try{return void(require("electron").nativeTheme.themeSource=e||"system")}catch(e){}}(e)},onchange:function(n,r){void 0===r&&(r=!1);var o={fn:n,capture:!1,once:!1};"boolean"==typeof r&&(r={capture:r});void 0!==r.capture&&(o.capture=r.capture);void 0!==r.once&&(o.once=r.once);void 0!==r.signal&&(o.signal=r.signal);if(f.crossPlatformFramework===i.ReactNative)return function(n){try{var r=require("react-native"),o=!1,a=function(r){o||(n.fn(r.colorScheme||e.Unknown),n.once&&i())},i=function(){o||(void 0!==n.signal&&n.signal.removeEventListener("abort",i),o=!0,t.remove())};if(void 0!==n.signal){if(n.signal.aborted)return function(){};n.signal.addEventListener("abort",i)}var t=r.Appearance.addChangeListener(a);return function(){t.remove()}}catch(e){}return function(){}}(o);if(f.crossPlatformFramework===i.Electron)return function(e){try{var n=require("electron").nativeTheme,r=!1,o=function(){r||(e.fn(W()),e.once&&a())},a=function(){r||(void 0!==e.signal&&e.signal.removeEventListener("abort",a),r=!0,n.removeListener("updated",o))};if(void 0!==e.signal){if(e.signal.aborted)return function(){};e.signal.addEventListener("abort",a)}return n.on("updated",o),function(){n.removeListener("updated",o)}}catch(e){}return function(){}}(o);var s=D(o);-1===s?(m.push(o),1===m.length&&(f.browser.name===a.SamsungInternet?(M=I(),x=globalThis.setInterval((function(){var e=I();e!==M&&(M=e,F(e))}),2e3)):(l=o.capture,M=N(),"function"==typeof t.addEventListener?t.addEventListener("change",P,l):"function"==typeof t.addListener&&t.addListener(P)))):m[s].once&&!o.once&&(m[s].once=!1);var l;void 0!==o.signal&&(o.signal.aborted?U(o):o.signal.addEventListener("abort",(function e(){void 0!==o.signal&&o.signal.removeEventListener("abort",e),U(o)})));return function(){U(o)}}},Constants:{Appearances:e},Errors:{}}}));