(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{25:function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return o});var a=n(2),i=n(3),r=n(56),o=function(){function t(){Object(a.a)(this,t)}return Object(i.a)(t,null,[{key:"isStaging",value:function(){if("object"===typeof location&&"string"===typeof location.host){var t=location.host;return"localhost"===location.hostname&&location.port.length<=4||t.includes("192.168")||t.includes("staging")}return!("object"!==typeof e||!Object({NODE_ENV:"production",PUBLIC_URL:".",REACT_APP_LOCAL_DOCS:"true"}))&&(Object({NODE_ENV:"production",PUBLIC_URL:".",REACT_APP_LOCAL_DOCS:"true"}).STAGE||Object({NODE_ENV:"production",PUBLIC_URL:".",REACT_APP_LOCAL_DOCS:"true"}).GATSBY_STAGE)===r.a.Staging}}]),t}()}).call(this,n(35))},293:function(e,t,n){},295:function(e,t,n){},297:function(e,t,n){},299:function(e,t,n){},301:function(e,t,n){},305:function(e,t,n){},307:function(e,t,n){},309:function(e,t,n){},311:function(e,t,n){},313:function(e,t,n){},315:function(e,t,n){},318:function(e,t,n){},36:function(e,t,n){},399:function(e,t,n){},401:function(e,t,n){},403:function(e,t,n){},405:function(e,t,n){},407:function(e,t,n){},411:function(e,t,n){},413:function(e,t,n){},415:function(e,t,n){},418:function(e,t,n){},420:function(e,t,n){},424:function(e,t,n){},428:function(e,t,n){"use strict";n.r(t);var a=n(0),i=n.n(a),r=n(54),o=n(431),s=n(13),l=n(55),c=n.n(l),d=n(22),p=n.n(d),u=n(43),m=n.n(u),h=n(42),b=n.n(h),w=n(2),f=n(3),v=n(6),g=n(4),y=n(5),W=n(432),V=n(429),E=n(430),A=n(434),I=n(25),P=I.a.isStaging(),x={Contact:"https://support.vuplex.com/contact",Dashboard:P?"https://dashboard-staging.vuplex.com":"https://dashboard.vuplex.com",Developer:"https://developer.vuplex.com",Login:P?"https://login-staging.vuplex.com":"https://login.vuplex.com",Store:P?"https://store-staging.vuplex.com":"https://store.vuplex.com",Facebook:"https://www.facebook.com/vuplexbrowser/",GitHub:"https://github.com/vuplex",Twitter:"https://twitter.com/vuplex"},k=n(57),S=n.n(k),T=n(58),D=n.n(T),C=(n(293),"https://support.vuplex.com/search"),U=function(e){function t(){var e,n;Object(w.a)(this,t);for(var a=arguments.length,i=new Array(a),r=0;r0&&void 0!==arguments[0]?arguments[0]:"The user is not authenticated; navigating to login...";return Object(w.a)(this,t),Object(v.a)(this,Object(g.a)(t).call(this,e))}return Object(y.a)(t,e),t}(Object(R.a)(Error)),F=/vx-s=([a-z0-9]+)/i,z=function(){function e(){Object(w.a)(this,e)}return Object(f.a)(e,null,[{key:"clearSession",value:function(){this._setSessionCookie("")}},{key:"getSession",value:function(){try{var e=F.exec(document.cookie);if(!e)return null;var t=e[1];if(!t)return null;var n=atob(t);return JSON.parse(n)}catch(a){return console.warn("An error occurred while getting the session info: "+a),null}}},{key:"getSessionOrNavigateToLogin",value:function(){var t=e.getSession();if(!t)throw L(),new M;return t}},{key:"setSession",value:function(e){var t=JSON.stringify(e),n=btoa(t);this._setSessionCookie(n,1209600)}},{key:"_setSessionCookie",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=location.host.includes("vuplex.com")?"vuplex.com":void 0,a=["".concat("vx-s","=").concat(e),"path=/"];t&&a.push("max-age=".concat(t)),n&&a.push("domain=".concat(n)),document.cookie=a.join("; ")}}]),e}(),j=(n(297),function(e){function t(){var e,n;Object(w.a)(this,t);for(var a=arguments.length,i=new Array(a),r=0;r0&&void 0!==arguments[0]&&arguments[0],t=e?"AndroidGeckoWebView":"AndroidWebView",n=e?"androidGeckoWebView":"androidWebView";return[{name:"ScriptAlerted",returns:"EventHandler",type:"event",description:"Event raised when a script in the page calls [window.alert()](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert). If no handler is attached to this event, then `window.alert()` will return immediately and the script will continue execution. If a handler is attached to this event, then script execution will be paused until the event args' [Continue()](/webview/ScriptDialogEventArgs#Continue) callback is called.",example:"await webViewPrefab.WaitUntilInitialized();\n#if UNITY_ANDROID && !UNITY_EDITOR\n var ".concat(n," = webViewPrefab.WebView as ").concat(t,";\n ").concat(n,'.ScriptAlerted += (sender, eventArgs) => {\n Debug.Log("Script alerted: " + eventArgs.Message);\n eventArgs.Continue();\n };\n#endif')},{name:"ScriptConfirmRequested",returns:"EventHandler>",type:"event",description:"Event raised when a script in the page calls [window.confirm()](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm). If no handler is attached to this event, then `window.confirm()` will return `false` immediately and the script will continue execution. If a handler is attached to this event, then script execution will be paused until the event args' [Continue()](/webview/ScriptDialogEventArgs#Continue) callback is called, and `window.confirm()` will return the value passed to [Continue()](/webview/ScriptDialogEventArgs#Continue).",example:"await webViewPrefab.WaitUntilInitialized();\n#if UNITY_ANDROID && !UNITY_EDITOR\n var ".concat(n," = webViewPrefab.WebView as ").concat(t,";\n ").concat(n,'.ScriptConfirmRequested += (sender, eventArgs) => {\n Debug.Log("Script confirm requested: " + eventArgs.Message);\n eventArgs.Continue(true);\n };\n#endif')},{name:"Pause",returns:"void",type:"method",description:"Pauses processing, media, and rendering for this webview instance until [Resume()](#Resume) is called.",example:"#if UNITY_ANDROID && !UNITY_EDITOR\n var ".concat(n," = webViewPrefab.WebView as ").concat(t,";\n ").concat(n,".Pause();\n#endif")},{name:"Resume",returns:"void",type:"method",description:"Resumes processing and rendering for all webview instances after a previous call to [Pause()](#Pause).",example:"#if UNITY_ANDROID && !UNITY_EDITOR\n var ".concat(n," = webViewPrefab.WebView as ").concat(t,";\n ").concat(n,".Resume();\n#endif")},{name:"ResumeAll",static:!0,returns:"void",type:"method",description:"Resumes processing and rendering for all webview instances after a previous call to [PauseAll()](#PauseAll). This method is automatically called by the plugin when the application resumes after being paused.",example:"#if UNITY_ANDROID && !UNITY_EDITOR\n ".concat(t,".ResumeAll();\n#endif")},{name:"SetDrmEnabled",static:!0,returns:"void",type:"method",description:"Enables WideVine DRM. DRM is disabled by default because it could potentially be used for tracking. You can verify that DRM is enabled by using the DRM Stream Test on [this page](https://bitmovin.com/demos/drm).",example:"#if UNITY_ANDROID && !UNITY_EDITOR\n ".concat(t,".SetDrmEnabled(true);\n#endif"),arguments:[{type:"bool",name:"enabled"}]},{name:"SetGeolocationPermissionEnabled",returns:"void",type:"method",static:!0,arguments:[{type:"bool",name:"enabled"}],description:"\nBy default, web pages cannot access the device's geolocation via JavaScript, even if the user has granted the app permission to access location. Invoking `SetGeolocationPermissionEnabled(true)` allows **all web pages** to access the geolocation if the user has granted the app location permissions via the [standard Android permission dialogs](https://developer.android.com/training/permissions/requesting).\n\nThe following Android permissions must be included in the app's [AndroidManifest.xml](https://docs.unity3d.com/Manual/android-manifest.html) and also requested by the application at runtime:\n- [`android.permission.ACCESS_COARSE_LOCATION`](https://developer.android.com/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION)\n- [`android.permission.ACCESS_FINE_LOCATION`](https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION)",example:"#if UNITY_ANDROID && !UNITY_EDITOR\n ".concat(t,".SetGeolocationPermissionEnabled(true);\n#endif"),warnings:["Geolocation doesn't work on Oculus devices because they lack GPS support."]},{name:"SetSurface",returns:"void",type:"method",arguments:[{type:"IntPtr",name:"surface"}],description:"\nSets the [Surface](https://developer.android.com/reference/android/view/Surface) to which the webview renders.\nThis can be used, for example, to render to an Oculus\n[OVROverlay](https://developer.oculus.com/reference/unity/1.34/class_o_v_r_overlay).\nAfter this method is called, the webview no longer renders\nto its original texture and instead renders to the given surface.",example:"await webViewPrefab.WaitUntilInitialized();\nvar surface = ovrOverlay.externalSurfaceObject;\nwebViewPrefab.Resize(ovrOverlay.externalSurfaceWidth, ovrOverlay.externalSurfaceHeight);\n#if UNITY_ANDROID && !UNITY_EDITOR\n var ".concat(n," = webViewPrefab.WebView as ").concat(t,";\n ").concat(n,".SetSurface(surface);\n#endif")}]}var Y,J=n(19);!function(e){e.UnityWebViewStandalone="Unity.WebView.Standalone",e.UnityWebViewAndroid="Unity.WebView.Android",e.UnityWebViewAndroidGecko="Unity.WebView.AndroidGecko",e.UnityWebViewiOS="Unity.WebView.iOS",e.UnityWebViewUwp="Unity.WebView.Uwp",e.UnityWebViewWebGL="Unity.WebView.WebGL"}(Y||(Y={}));var K,q=Y;Object.values(Y);var Q=I.a.isStaging()?"https://store-staging.vuplex.com":"https://store.vuplex.com",Z="".concat(Q,"/webview/windows-mac"),X="".concat(Q,"/webview/android"),$="".concat(Q,"/webview/android-gecko"),ee="".concat(Q,"/webview/ios"),te="".concat(Q,"/webview/uwp"),ne="".concat(Q,"/webview/webgl"),ae=(K={Overview:Q,Standalone:Z,Android:X,AndroidGecko:$,iOS:ee,Uwp:te,WebGL:ne},Object(J.a)(K,q.UnityWebViewStandalone,Z),Object(J.a)(K,q.UnityWebViewAndroid,X),Object(J.a)(K,q.UnityWebViewAndroidGecko,$),Object(J.a)(K,q.UnityWebViewiOS,ee),Object(J.a)(K,q.UnityWebViewUwp,te),Object(J.a)(K,q.UnityWebViewWebGL,ne),K),ie={name:"AndroidWebView",type:"class",description:"\nThe [IWebView](/webview/IWebView) implementation used by [3D WebView for Android](".concat(ae.Android,").\nThis class also includes extra methods for Android-specific functionality, which your application\ncan call by using the approaches described in [this support article](https://support.vuplex.com/articles/how-to-call-platform-specific-apis#android).\n"),inheritsFrom:"IWebView",additionalInterfaces:["IWithFind","IWithMovablePointer","IWithNative2DMode","IWithNativeOnScreenKeyboard","IWithPointerDownAndUp","IWithPopups","IWithSettableUserAgent"],sidebarSection:"platform",members:[].concat(Object(H.a)(B()),[{name:"RenderProcessGone",returns:"EventHandler",type:"event",description:"\nIndicates that the browser's render process terminated, either because it\ncrashed or because the operating system killed it. Note that this event only works in Android API level 26 and newer.\n\n3D WebView for Android internally uses the [android.webkit.WebView](https://developer.android.com/reference/android/webkit/WebView) system\npackage as its browser engine. Android's documentation indicates that\nthe browser's render process can terminate in some rare circumstances.\nThis RenderProcessGone event indicates when that occurs so that the application\ncan recover be destroying the existing webviews and creating new webviews.",example:'await webViewPrefab.WaitUntilInitialized();\n#if UNITY_ANDROID && !UNITY_EDITOR\n var androidWebView = webViewPrefab.WebView as AndroidWebView;\n androidWebView.RenderProcessGone += (sender, eventArgs) => {\n Debug.Log("The browser process was terminated");\n };\n#endif',seeAlso:["[android.webkit.WebViewClient.onRenderProcessGone()](https://developer.android.com/reference/android/webkit/WebViewClient#onRenderProcessGone(android.webkit.WebView,%20android.webkit.RenderProcessGoneDetail))","[Termination Handling API (Android docs)](https://developer.android.com/guide/webapps/managing-webview#termination-handle)"]},{name:"ClearHistory",returns:"void",type:"method",description:"Clears the webview's back / forward navigation history.",example:"#if UNITY_ANDROID && !UNITY_EDITOR\n var androidWebView = webViewPrefab.WebView as AndroidWebView;\n androidWebView.ClearHistory();\n#endif"},{name:"IsWebViewAvailable",static:!0,returns:"bool",type:"method",description:"\nIndicates whether the Android WebView package is installed on the system and available.\n\n3D WebView internally depends on Android's WebView package, which is normally installed as part of the operating system. In rare circumstances, the Android WebView package may be unavailable. For example, this can happen if the user used developer tools to delete the WebView package or if [updates to the WebView package are currently being installed](https://bugs.chromium.org/p/chromium/issues/detail?id=506369).",example:'#if UNITY_ANDROID && !UNITY_EDITOR\n Debug.Log("WebView is available: " + AndroidWebView.IsWebViewAvailable())\n#endif'},{name:"GetNativeWebView",type:"method",returns:"AndroidJavaObject",description:"Returns the instance's native [android.webkit.WebView](https://developer.android.com/reference/android/webkit/WebView).",warnings:["Warning: Adding code that interacts with the native WebView directly may interfere with 3D WebView's functionality and vice versa. So, it's highly recommended to stick to 3D WebView's C# APIs whenever possible and only use GetNativeWebView() if truly necessary. If 3D WebView is missing an API that you need, feel free to [contact us](https://vuplex.com/contact)."],example:'#if UNITY_ANDROID && !UNITY_EDITOR\n var androidWebView = webViewPrefab.WebView as AndroidWebView;\n var nativeWebView = androidWebView.GetNativeWebView();\n /// Call the android.webkit.WebView.findAll() method to search for the letter "a".\n /// https://developer.android.com/reference/android/webkit/WebView#findAll(java.lang.String)\n /// Most native WebView methods must be called on the Android UI thread, so do\n /// that using com.unity3d.player.UnityPlayer.currentActivity.runOnUiThread().\n var UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");\n var currentActivity = UnityPlayer.GetStatic("currentActivity");\n currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() => {\n nativeWebView.Call("findAll", "a");\n }));\n#endif'},{name:"LoadHtml",returns:"void",type:"method",arguments:[{type:"string",name:"html"},{type:"string",name:"baseUrl"}],description:"Like [IWebView.LoadHtml()](/webview/IWebView#LoadHtml), but also allows a virtual base URL to be specified. Setting a base URL allows, for example, for additional resources like CSS and JavaScript files to be referenced via a relative path.",example:'// Load some HTML that references a javascript.js file\n// located in Application.persistentDataPath.\nawait webViewPrefab.WaitUntilInitialized();\n#if UNITY_ANDROID && !UNITY_EDITOR\n var androidWebView = webViewPrefab.WebView as AndroidWebView;\n var persistentDataPathFileUrl = "file://" + Application.persistentDataPath;\n androidWebView.LoadHtml(\n @"\n