native-fn
Version:
2 lines (1 loc) • 11.2 kB
JavaScript
function o(o,e){for(var r=o.split("."),i=e.split("."),n=Math.max(r.length,i.length),a=0;a<n;a++){var t=void 0,s=void 0;if((t=a<r.length?parseInt(r[a],10):0)>(s=a<i.length?parseInt(i[a],10):0))return 1;if(t<s)return-1}return 0}var e,r,i,n,a;!function(o){o.Unknown="Unknown",o.Android="Android",o.iOS="iOS",o.Windows="Windows",o.MacOS="MacOS"}(e||(e={})),function(o){o.Unknown="Unknown",o.Mobile="Mobile",o.Desktop="Desktop"}(r||(r={})),function(o){o.Unknown="Unknown",o.EdgeHTML="EdgeHTML",o.ArkWeb="ArkWeb",o.Blink="Blink",o.Presto="Presto",o.WebKit="WebKit",o.Trident="Trident",o.NetFront="NetFront",o.KHTML="KHTML",o.Tasman="Tasman",o.Gecko="Gecko"}(i||(i={})),function(o){o.Unknown="Unknown",o.Chrome="Chrome",o.Safari="Safari",o.Edge="Edge",o.Firefox="Firefox",o.Opera="Opera",o.IE="IE",o.SamsungInternet="SamsungInternet"}(n||(n={})),function(o){o.Unknown="Unknown",o.ReactNative="ReactNative",o.Electron="Electron",o.Cordova="Cordova"}(a||(a={}));var t=void 0!==globalThis.navigator&&"string"==typeof globalThis.navigator.userAgent?globalThis.navigator.userAgent:"",s={device:r.Unknown,os:e.Unknown,engine:i.Unknown,browser:n.Unknown,crossPlatformFramework:a.Unknown,osVersion:"",engineVersion:"",browserVersion:"",renderer:function(){if(void 0===globalThis.document)return"";var o=globalThis.document.createElement("canvas");if("function"!=typeof o.getContext)return"";var e=o.getContext("webgl2")||o.getContext("experimental-webgl")||o.getContext("webgl");if(null===e)return"";if(e instanceof WebGLRenderingContext||"getParameter"in e&&"function"==typeof e.getParameter){var r=e.getExtension("WEBGL_debug_renderer_info");return null===r?e.getParameter(e.RENDERER):e.getParameter(r.UNMASKED_RENDERER_WEBGL)}return""}(),userAgent:t,isNode:void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.node,isMobile:!1,isDesktop:!1,isStandalone:!1,isWebview:/; ?wv|applewebkit(?!.*safari)/i.test(t)},l=[[/windows nt (6\.[23]); arm/i,e.Windows,c],[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i,e.Windows,c],[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i,e.Windows,c],[/windows nt ?([\d.)]*)(?!.+xbox)/i,e.Windows,c],[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i,e.Windows,c],[/windows ce\/?([\d.]*)/i,e.Windows,c],[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i,e.iOS,w],[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i,e.iOS,w],[/cfnetwork\/.+darwin/i,e.iOS,w],[/mac os x ?([\w. ]*)/i,e.MacOS,w],[/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i,e.MacOS,w],[/droid ([\w.]+)\b.+(android[- ]x86)/i,e.Android],[/android\w*[-\/.; ]?([\d.]*)/i,e.Android]],d=[[/windows.+ edge\/([\w.]+)/i,i.EdgeHTML],[/arkweb\/([\w.]+)/i,i.ArkWeb],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i,i.Blink],[/presto\/([\w.]+)/i,i.Presto],[/webkit\/([\w.]+)/i,i.WebKit],[/trident\/([\w.]+)/i,i.Trident],[/netfront\/([\w.]+)/i,i.NetFront],[/khtml[\/ ]\(?([\w.]+)/i,i.KHTML],[/tasman[\/ ]\(?([\w.]+)/i,i.Tasman],[/rv:([\w.]{1,9})\b.+gecko/i,i.Gecko]],m=[[/\b(?:crmo|crios)\/([\w.]+)/i,n.Chrome],[/webview.+edge\/([\w.]+)/i,n.Edge],[/edg(?:e|ios|a)?\/([\w.]+)/i,n.Edge],[/opera mini\/([-\w.]+)/i,n.Opera],[/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i,n.Opera],[/opera(?:.+version\/|[\/ ]+)([\w.]+)/i,n.Opera],[/opios[\/ ]+([\w.]+)/i,n.Opera],[/\bop(?:rg)?x\/([\w.]+)/i,n.Opera],[/\bopr\/([\w.]+)/i,n.Opera],[/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i,n.IE],[/(?:ms|\()ie ([\w.]+)/i,n.IE],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i,n.IE],[/\bfocus\/([\w.]+)/i,n.Firefox],[/\bopt\/([\w.]+)/i,n.Opera],[/coast\/([\w.]+)/i,n.Opera],[/fxios\/([\w.-]+)/i,n.Firefox],[/samsungbrowser\/([\w.]+)/i,n.SamsungInternet],[/headlesschrome(?:\/([\w.]+)| )/i,n.Chrome],[/wv\).+chrome\/([\w.]+).+edgw\//i,n.Edge],[/ wv\).+(chrome)\/([\w.]+)/i,n.Chrome],[/chrome\/([\w.]+) mobile/i,n.Chrome],[/chrome\/v?([\w.]+)/i,n.Chrome],[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i,n.Safari],[/iphone .*mobile(?:\/\w+ | ?)safari/i,n.Safari],[/version\/([\w.,]+) .*safari/i,n.Safari],[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i,n.Safari,"1"],[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i,n.Firefox],[/mobile vr; rv:([\w.]+)\).+firefox/i,n.Firefox],[/firefox\/([\w.]+)/i,n.Firefox]];function c(o){if(void 0===o)return"";var e={"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"}[o];return void 0!==e?e:o}function w(o){return void 0===o?"":o.replace(/_/g,".")}function b(o,e){return 10===o.major&&0===o.minor&&o.build>=22e3?"11":10===o.major&&0===o.minor&&o.build<22e3?"10":6===o.major&&3===o.minor?"8.1":6===o.major&&2===o.minor?"8":6===o.major&&1===o.minor?"7":6===o.major&&0===o.minor?"Vista":5===o.major&&1===o.minor||5===o.major&&2===o.minor?"XP":5===o.major&&0===o.minor?"2000":4===o.major&&90===o.minor?"ME":4===o.major&&0===o.minor?"NT 4.0":3===o.major&&51===o.minor?"NT 3.11":e}function u(o,e){return"function"==typeof e?e(o):"string"==typeof e?e:void 0===o?"":o}function g(o){var e=o.split(".");return{major:parseInt(e[0]||"0"),minor:parseInt(e[1]||"0"),build:parseInt(e[2]||"0")}}(void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.electron||/ electron\//i.test(t))&&(s.crossPlatformFramework=a.Electron),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product&&(s.crossPlatformFramework=a.ReactNative);for(var v=0;v<l.length;v++){var p=(k=l[v])[0],f=k[1],h=k[2];if(null!==(T=s.userAgent.match(p))){s.os=f,s.osVersion=u(T[1],h);break}}s.os===e.iOS&&0===o(s.osVersion,"18.6")&&(null!==(E=/\) Version\/([\d.]+)/.exec(s.userAgent))&&parseInt(E[1].substring(0,2),10)>=26&&(s.osVersion=E[1]));for(v=0;v<d.length;v++){p=(k=d[v])[0];var j=k[1];h=k[2];if(null!==(T=s.userAgent.match(p))){s.engine=j,s.engineVersion=u(T[1],h);break}}for(v=0;v<m.length;v++){p=(k=m[v])[0];var k,T,y=k[1];h=k[2];if(null!==(T=s.userAgent.match(p))){s.browser=y,s.browserVersion=u(T[1],h);break}}if(s.crossPlatformFramework===a.ReactNative)try{f=(S=require("react-native").Platform).OS;var E=g(x=""+S.Version);switch(f){case"android":s.os=e.Android,s.osVersion=function(o,e){return o.major>=36?"16":35===o.major?"15":34===o.major?"14":33===o.major?"13":32===o.major?"12.1":31===o.major?"12":30===o.major?"11":29===o.major?"10":28===o.major?"9":27===o.major?"8.1":26===o.major?"8.0":25===o.major?"7.1":24===o.major?"7.0":23===o.major?"6.0":22===o.major?"5.1":21===o.major?"5.0":20===o.major||19===o.major?"4.4":18===o.major?"4.3":17===o.major?"4.2":16===o.major?"4.1":15===o.major?"4.0.3":14===o.major?"4.0":13===o.major?"3.2":12===o.major?"3.1":11===o.major?"3.0":10===o.major?"2.3.3":9===o.major?"2.3":8===o.major?"2.2":7===o.major?"2.1":6===o.major?"2.0.1":5===o.major?"2.0":4===o.major?"1.6":3===o.major?"1.5":2===o.major?"1.1":1===o.major?"1.0":e}(E,x);break;case"ios":s.os=e.iOS,s.osVersion=x;break;case"windows":s.os=e.Windows,s.osVersion=b(E,x);break;case"macos":s.os=e.MacOS,s.osVersion=x}}catch(o){}if(s.isNode)try{var x,S=(f=require("os")).platform();E=g(x=f.release());switch(S){case"win32":s.os=e.Windows,s.osVersion=b(E,x);break;case"darwin":s.os=e.MacOS,s.osVersion=function(o,e){return o.major>=24?o.major-9+"."+o.minor+"."+o.build:23===o.major?"14."+o.minor+"."+o.build:22===o.major?"13."+o.minor+"."+o.build:21===o.major?"12."+o.minor+"."+o.build:20===o.major?"11."+o.minor+"."+o.build:19===o.major?"10.15."+o.minor:18===o.major?"10.14."+o.minor:17===o.major?"10.13."+o.minor:16===o.major?"10.12."+o.minor:15===o.major?"10.11."+o.minor:14===o.major?"10.10."+o.minor:13===o.major?"10.9."+o.minor:o.major>=5&&o.major<=12?"10."+(o.major-4)+"."+o.minor:e}(E,x);break;case"android":s.os=e.Android,s.osVersion=x;break;case"linux":/android/i.test(x)&&(s.os=e.Android,s.osVersion=x)}}catch(o){}function V(o){var r,i=function(){try{if(globalThis.top&&globalThis.top!==window)return globalThis.top.location.href,globalThis.top}catch(o){}return window}(),n=i.document;try{if(void 0===(r=function(o,e){if(void 0===e&&(e=!0),void 0!==globalThis.document){var r=globalThis.document.createElement(o);return"width"in r&&(r.width="0"),"height"in r&&(r.height="0"),"border"in r&&(r.border="0"),"frameBorder"in r&&(r.frameBorder="0"),"scrolling"in r&&(r.scrolling="no"),"cellPadding"in r&&(r.cellPadding="0"),"cellSpacing"in r&&(r.cellSpacing="0"),"frame"in r&&(r.frame="void"),"rules"in r&&(r.rules="none"),"noWrap"in r&&(r.noWrap=!0),r.tabIndex=-1,r.setAttribute("role","presentation"),e?(r.style.width="1px",r.style.height="1px"):(r.setAttribute("aria-hidden","true"),r.style.width="0",r.style.height="0",r.style.zIndex="-9999",r.style.display="none",r.style.visibility="hidden",r.style.pointerEvents="none"),r.style.position="absolute",r.style.top="0",r.style.left="0",r.style.padding="0",r.style.margin="0",r.style.border="none",r.style.outline="none",r.style.clip="rect(1px, 1px, 1px, 1px)",r.style.clipPath="inset(50%)",r.style.overflow="hidden",r.style.whiteSpace="nowrap",r}}("input")))return;if(r.type="file",r.accept=o+"/*","capture"in HTMLInputElement.prototype)r.capture="user";else if(s.os===e.Android){var a="";"image"===o?a="camera":"video"===o&&(a="camcorder"),r.accept=o+"/*;capture="+a}n.body.appendChild(r),function(o,e){var r;void 0===e&&(e=window);try{r=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:e})}catch(o){(r=globalThis.document.createEvent("MouseEvents")).initMouseEvent("click",!0,!0,e,0,0,0,0,0,!1,!1,!1,!1,0,null)}o.dispatchEvent(r)}(r,i)}catch(o){}}void 0!==globalThis.document&&globalThis.document.addEventListener("deviceready",(function(){if(s.crossPlatformFramework=a.Cordova,s.os===e.Unknown&&void 0!==globalThis.device){switch(globalThis.device.platform){case"Android":s.os=e.Android;break;case"iOS":s.os=e.iOS}s.osVersion=globalThis.device.version}}),!1),void 0!==navigator.userAgentData&&void 0!==navigator.userAgentData.getHighEntropyValues&&navigator.userAgentData.getHighEntropyValues(["brands","fullVersionList","mobile","model","platform","platformVersion","architecture","formFactors","bitness","uaFullVersion","wow64"]).then((function(o){for(var r,i=o.fullVersionList||o.brands||[],n=o.platformVersion,a=0;a<i.length;a++){var t=null==(r=i[a])?{brand:"",version:""}:"string"==typeof r?{brand:r,version:""}:{brand:r.brand,version:r.version},l=t.brand,d=t.version;/not.a.brand/i.test(l)||"Chromium"===l&&(s.engineVersion=d)}"string"==typeof n&&(s.os===e.Windows&&parseInt(n.replace(/[^\d.]/g,"").split(".")[0],10)>=13?s.osVersion="11":s.osVersion=n)})),s.device=s.os===e.iOS||s.os===e.Android?r.Mobile:s.os===e.Windows||s.os===e.MacOS?r.Desktop:r.Unknown,s.isMobile=s.device===r.Mobile,s.isDesktop=s.device===r.Desktop,s.isStandalone=function(o){return"matchMedia"in globalThis&&(o===e.iOS?"standalone"in navigator&&!!navigator.standalone:globalThis.matchMedia("(display-mode: standalone)").matches)}(s.os);var M,O={open:function(r){s.os===e.Android?V(r):s.os===e.iOS&&(o(s.osVersion,"10.3")>=0?V(r):alert(s.osVersion))}};!function(o){o.Image="image",o.Video="video"}(M||(M={}));var A={installed:!1,name:"Camera",module:O,Constants:{CameraType:M},Errors:{}};export{A as default};