
scalacss.js.PlatformJs.scala Maven / Gradle / Ivy
The newest version!
package scalacss.js
import scalajs.js._
object PlatformJs {
/**
* Source code for Platform.js.
*
* Run `bin/generate-platformjs` to update.
*/
def sourceCode =
"""(function(){"use strict";function e(e){return e=String(e),e.charAt(0).toUpperCase()+e.slice(1)}function t(e,t,i){var r={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"7 / Server 2008 R2","6.0":"Vista / Server 2008",5.2:"XP 64-bit / Server 2003",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"};return t&&i&&/^Win/i.test(e)&&!/^Windows Phone /i.test(e)&&(r=r[/[\d.]+$/.exec(e)])&&(e="Windows "+r),e=String(e),t&&i&&(e=e.replace(RegExp(t,"i"),i)),e=n(e.replace(/ ce$/i," CE").replace(/\bhpw/i,"web").replace(/\bMacintosh\b/,"Mac OS").replace(/_PowerPC\b/i," OS").replace(/\b(OS X) [^ \d]+/i,"$1").replace(/\bMac (OS X)\b/,"$1").replace(/\/(\d)/," $1").replace(/_/g,".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i,"").replace(/\bx86\.64\b/gi,"x86_64").replace(/\b(Windows Phone) OS\b/,"$1").replace(/\b(Chrome OS \w+) [\d.]+\b/,"$1").split(" on ")[0])}function i(e,t){var i=-1,n=e?e.length:0;if("number"==typeof n&&n>-1&&h>=n)for(;++i3&&"WebKit"||/\bOpera\b/.test(U)&&(/\bOPR\b/.test(e)?"Blink":"Presto")||/\b(?:Midori|Nook|Safari)\b/i.test(e)&&!/^(?:Trident|EdgeHTML)$/.test(D)&&"WebKit"||!D&&/\bMSIE\b/i.test(e)&&("Mac OS"==Z?"Tasman":"Trident")||"WebKit"==D&&/\bPlayStation\b(?! Vita\b)/i.test(U)&&"NetFront")&&(D=[E]),"IE"==U&&(E=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(e)||0)[1])?(U+=" Mobile",Z="Windows Phone "+(/\+$/.test(E)?E:E+".x"),L.unshift("desktop mode")):/\bWPDesktop\b/i.test(e)?(U="IE Mobile",Z="Windows Phone 8.x",L.unshift("desktop mode"),H||(H=(/\brv:([\d.]+)/.exec(e)||0)[1])):"IE"!=U&&"Trident"==D&&(E=/\brv:([\d.]+)/.exec(e))&&(U&&L.push("identifying as "+U+(H?" "+H:"")),U="IE",H=E[1]),_){if(a(y,"global"))if(F&&(E=F.lang.System,z=E.getProperty("os.arch"),Z=Z||E.getProperty("os.name")+" "+E.getProperty("os.version")),W&&a(y,"system")&&(E=[y.system])[0]){Z||(Z=E[0].os||null);try{E[1]=y.require("ringo/engine").version,H=E[1].join("."),U="RingoJS"}catch(Q){E[0].global.system==y.system&&(U="Narwhal")}}else"object"==typeof y.process&&(E=y.process)?(U="Node.js",z=E.arch,Z=E.platform,H=/[\d.]+/.exec(E.version)[0]):$&&(U="Rhino");else o(E=y.runtime)==R?(U="Adobe AIR",Z=E.flash.system.Capabilities.os):o(E=y.phantom)==T?(U="PhantomJS",H=(E=E.version||null)&&E.major+"."+E.minor+"."+E.patch):"number"==typeof j.documentMode&&(E=/\bTrident\/(\d+)/i.exec(e))&&(H=[H,j.documentMode],(E=+E[1]+4)!=H[1]&&(L.push("IE "+H[1]+" mode"),D&&(D[1]=""),H[1]=E),H="IE"==U?String(H[1].toFixed(1)):H[0]);Z=Z&&n(Z)}H&&(E=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(H)||/(?:alpha|beta)(?: ?\d)?/i.exec(e+";"+(_&&v.appMinorVersion))||/\bMinefield\b/i.test(e)&&"a")&&(V=/b/i.test(E)?"beta":"alpha",H=H.replace(RegExp(E+"\\+?$"),"")+("beta"==V?X:G)+(/\d+\+?/.exec(E)||"")),"Fennec"==U||"Firefox"==U&&/\b(?:Android|Firefox OS)\b/.test(Z)?U="Firefox Mobile":"Maxthon"==U&&H?H=H.replace(/\.[\d.]+/,".x"):/\bXbox\b/i.test(q)?(Z=null,"Xbox 360"==q&&/\bIEMobile\b/.test(e)&&L.unshift("mobile mode")):!/^(?:Chrome|IE|Opera)$/.test(U)&&(!U||q||/Browser|Mobi/.test(U))||"Windows CE"!=Z&&!/Mobi/i.test(e)?"IE"==U&&_&&null===y.external?L.unshift("platform preview"):(/\bBlackBerry\b/.test(q)||/\bBB10\b/.test(e))&&(E=(RegExp(q.replace(/ +/g," *")+"/([.\\d]+)","i").exec(e)||0)[1]||H)?(E=[E,/BB10/.test(e)],Z=(E[1]?(q=null,J="BlackBerry"):"Device Software")+" "+E[0],H=null):this!=r&&"Wii"!=q&&(_&&K||/Opera/.test(U)&&/\b(?:MSIE|Firefox)\b/i.test(e)||"Firefox"==U&&/\bOS X (?:\d+\.){2,}/.test(Z)||"IE"==U&&(Z&&!/^Win/.test(Z)&&H>5.5||/\bWindows XP\b/.test(Z)&&H>8||8==H&&!/\bTrident\b/.test(e)))&&!m.test(E=c.call(r,e.replace(m,"")+";"))&&E.name&&(E="ing as "+E.name+((E=E.version)?" "+E:""),m.test(U)?(/\bIE\b/.test(E)&&"Mac OS"==Z&&(Z=null),E="identify"+E):(E="mask"+E,U=N?n(N.replace(/([a-z])([A-Z])/g,"$1 $2")):"Opera",/\bIE\b/.test(E)&&(Z=null),_||(H=null)),D=["Presto"],L.push(E)):U+=" Mobile",(E=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(e)||0)[1])&&(E=[parseFloat(E.replace(/\.(\d)$/,".0$1")),E],"Safari"==U&&"+"==E[1].slice(-1)?(U="WebKit Nightly",V="alpha",H=E[1].slice(0,-1)):(H==E[1]||H==(E[2]=(/\bSafari\/([\d.]+\+?)/i.exec(e)||0)[1]))&&(H=null),E[1]=(/\bChrome\/([\d.]+)/i.exec(e)||0)[1],537.36==E[0]&&537.36==E[2]&&parseFloat(E[1])>=28&&"WebKit"==D&&(D=["Blink"]),_&&(B||E[1])?(D&&(D[1]="like Chrome"),E=E[1]||(E=E[0],530>E?1:532>E?2:532.05>E?3:533>E?4:534.03>E?5:534.07>E?6:534.1>E?7:534.13>E?8:534.16>E?9:534.24>E?10:534.3>E?11:535.01>E?12:535.02>E?"13+":535.07>E?15:535.11>E?16:535.19>E?17:536.05>E?18:536.1>E?19:537.01>E?20:537.11>E?"21+":537.13>E?23:537.18>E?24:537.24>E?25:537.36>E?26:"Blink"!=D?"27":"28")):(D&&(D[1]="like Safari"),E=E[0],E=400>E?1:500>E?2:526>E?3:533>E?4:534>E?"4+":535>E?5:537>E?6:538>E?7:601>E?8:"8"),D&&(D[1]+=" "+(E+="number"==typeof E?".x":/[.+]/.test(E)?"":"+")),"Safari"==U&&(!H||parseInt(H)>45)&&(H=E)),"Opera"==U&&(E=/\bzbov|zvav$/.exec(Z))?(U+=" ",L.unshift("desktop mode"),"zvav"==E?(U+="Mini",H=null):U+="Mobile",Z=Z.replace(RegExp(" *"+E+"$"),"")):"Safari"==U&&/\bChrome\b/.exec(D&&D[1])&&(L.unshift("desktop mode"),U="Chrome Mobile",H=null,/\bOS X\b/.test(Z)?(J="Apple",Z="iOS 4.3+"):Z=null),H&&0==H.indexOf(E=/[\d.]+$/.exec(Z))&&e.indexOf("/"+E+"-")>-1&&(Z=s(Z.replace(E,""))),D&&!/\b(?:Avant|Nook)\b/.test(U)&&(/Browser|Lunascape|Maxthon/.test(U)||"Safari"!=U&&/^iOS/.test(Z)&&/\bSafari\b/.test(D[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Sleipnir|Web)/.test(U)&&D[1])&&(E=D[D.length-1])&&L.push(E),L.length&&(L=["("+L.join("; ")+")"]),J&&q&&q.indexOf(J)<0&&L.push("on "+J),q&&L.push((/^on /.test(L[L.length-1])?"":"on ")+q),Z&&(E=/ ([\d.+]+)$/.exec(Z)||(k=/^[a-z]+ ([\d.+]+) \//i.exec(Z)),Z={architecture:32,family:E&&!k?Z.replace(E[0],""):Z,version:E?E[1]:null,toString:function(){var e=this.version;return this.family+(e&&!k?" "+e:"")+(64==this.architecture?" 64-bit":"")}}),(E=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(z))&&!/\bi686\b/i.test(z)&&(Z&&(Z.architecture=64,Z.family=Z.family.replace(RegExp(" *"+E),"")),U&&(/\bWOW64\b/i.test(e)||_&&/\w(?:86|32)$/.test(v.cpuClass||v.platform)&&!/\bWin64; x64\b/i.test(e))&&L.unshift("32-bit")),e||(e=null);var Y={};return Y.description=e,Y.layout=D&&D[0],Y.manufacturer=J,Y.name=U,Y.prerelease=V,Y.product=q,Y.ua=e,Y.version=U&&H,Y.os=Z||{architecture:null,family:null,version:null,toString:function(){return"null"}},Y.parse=c,Y.toString=O,Y.version&&L.unshift(H),Y.name&&L.unshift(U),Z&&U&&(Z!=String(Z).split(" ")[0]||Z!=U.split(" ")[0]&&!q)&&L.push(q?"("+Z+")":"on "+Z),L.length&&(Y.description=L.join(" ")),Y}var p={"function":!0,object:!0},u=p[typeof window]&&window||this,d=u,f=p[typeof exports]&&exports,S=p[typeof module]&&module&&!module.nodeType&&module,x=f&&S&&"object"==typeof global&&global;!x||x.global!==x&&x.window!==x&&x.self!==x||(u=x);var h=Math.pow(2,53)-1,m=/\bOpera/,g=this,O=Object.prototype,y=O.hasOwnProperty,M=O.toString;"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return c()}):f&&S?r(c(),function(e,t){f[t]=e}):u.platform=c()}).call(this);"""
/**
* Returns `undefined` in NodeJS unit tests.
*/
lazy val value: UndefOr[PlatformJs] =
try {
eval(sourceCode)
Dynamic.global.platform.asInstanceOf[UndefOr[PlatformJs]]
} catch {
case e: Throwable =>
e.printStackTrace(System.err)
undefined
}
}
/**
* https://github.com/bestiejs/platform.js/blob/master/doc/README.md#readme
*/
@native
trait PlatformJs extends Object {
val description : UndefOr[String] = native
val layout : UndefOr[String] = native
val manufacturer: UndefOr[String] = native
val name : UndefOr[String] = native
val prerelease : UndefOr[String] = native
val product : UndefOr[String] = native
val ua : UndefOr[String] = native
val version : UndefOr[String] = native
val os : UndefOr[PlatformJsOS] = native
}
@native
trait PlatformJsOS extends Object {
val architecture: UndefOr[Int] = native
val family : UndefOr[String] = native
val version : UndefOr[String] = native
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy