{"version":3,"sources":["JavaScript/common/BrowserChecker.js"],"names":["$buo_fourd_notified","$buoop","required","e","f","s","c","ios","insecure","api","onshow","infos","$buo_fourd_notify","nomessage","showBanner","browserName","browser","t","fourdLogWarning","div","document","createElement","className","innerHTML","body","insertBefore","firstChild","$buo_fourd_browserChecks","$buo","op","$bu_","bb","get_browser","override_ua","is_supported","no_device_update","$buo_fourd_loadScript","src","setAttribute","appendChild","addEventListener","window","attachEvent"],"mappings":"AACA,IAAAA,oBAAA,MAGA,IAAAC,OAAA,CACAC,SAAA,CACAC,GAAA,GACAC,GAAA,GAEAC,GAAA,EACAC,GAAA,GACAC,KAAA,GAEAC,SAAA,MACAC,IAAA,QACAC,OAAA,SAAAC,GAAAC,kBAAAD,EAAA,KAAA,EAEAE,UAAA,MAGA,SAAAD,kBAAAD,EAAAG,GACA,GAAAH,EAAA,CAEAX,oBAAA,KACA,IAAAe,EAAA,GACA,GAAAJ,EAAAK,SAAAL,EAAAK,QAAAC,EAAA,CAAAF,EAAAJ,EAAAK,QAAAC,CAAA,CACA,GAAAH,EAAA,CAEAI,gBAAA,2BAAAH,EAAA,kBAAAJ,GAEA,IAAAQ,EAAAC,SAAAC,cAAA,OACAF,EAAAG,UAAA,SACAH,EAAAI,UAAA,4JACAH,SAAAI,KAAAC,aAAAN,EAAAC,SAAAI,KAAAE,WACA,KACA,CAEAR,gBAAA,2BAAAH,EAAA,sBAAAJ,EACA,CACA,CACA,CACA,SAAAgB,2BAEA,IAAA3B,oBAAA,CAEA,GAAA4B,KAAA,CAGAA,KAAA3B,OACA,CACA,CACA,IAAAD,oBAAA,CAGA,IAAA6B,EAAA5B,OACA,GAAA4B,GAAAC,KAAA,CAEA,IAAAC,EAAAF,EAAAb,QAAAc,KAAAE,YAAAH,EAAAI,aACA,IAAAF,EAAAG,aAAA,CAEA,GAAAH,EAAAI,iBAAA,CAEAvB,kBAAAiB,EAAA,MACA,KACA,CAGAjB,kBAAAiB,EAAA,MACA,CACA,CACA,CACA,CACA,CACA,SAAAO,wBAEA,IAAAjC,EAAAiB,SAAAC,cAAA,UAGAlB,EAAAkC,IAAA,gEACAlC,EAAAmC,aAAA,cAAA,aACAnC,EAAAmC,aAAA,UAAA,qCACAnC,EAAAmC,aAAA,SAAA,8BACAlB,SAAAI,KAAAe,YAAApC,EACA,CAEA,IAAAiB,SAAAoB,iBAAA,mBAAAJ,sBAAA,MAAA,CACA,MAAAjC,GAAAsC,OAAAC,YAAA,SAAAN,sBAAA","file":"JavaScript/min/BrowserChecker.min.js","sourcesContent":["// Set whether notification has been done\r\nvar $buo_fourd_notified = false;\r\n// Set options for browser-update.org script\r\n// https://browser-update.org/customize.html\r\nvar $buoop = {\r\n required: {\r\n e: -36, // Edge\r\n f: -36, // Firefox\r\n //o: -3, // Opera\r\n s: -3, // Safari\r\n c: -36, // Chrome\r\n ios: -3 // iOS\r\n },\r\n insecure: false, // Show warning if browser insecure\r\n api: 2025.02,\r\n onshow: function (infos) { $buo_fourd_notify(infos, true); },\r\n //no_permanent_hide: true,\r\n nomessage: true // Do not show a message if the browser is out of date, just call the onshow callback function\r\n //,test: true // Set to true to test\r\n};\r\nfunction $buo_fourd_notify(infos, showBanner) {\r\n if (infos) {\r\n // Set notified flag to true so that we don't try again\r\n $buo_fourd_notified = true;\r\n var browserName = '';\r\n if (infos.browser && infos.browser.t) { browserName = infos.browser.t; }\r\n if (showBanner) {\r\n // Log details so that we know which old browsers are being used\r\n fourdLogWarning('Legacy browser detected ' + browserName + ' - banner shown', infos);\r\n // Show banner to warn user that browser is outdated\r\n var div = document.createElement(\"div\");\r\n div.className = \"banner\";\r\n div.innerHTML = '
You are using an outdated browser. Please upgrade your browser to improve your experience.
';\r\n document.body.insertBefore(div, document.body.firstChild);\r\n }\r\n else {\r\n // Log details so that we know which old browsers are being used\r\n fourdLogWarning('Legacy browser detected ' + browserName + ' - banner not shown', infos);\r\n }\r\n }\r\n};\r\nfunction $buo_fourd_browserChecks() {\r\n // Custom verion of code in browser-update.org check_show function - we want to log details even if the user cannot update\r\n if (!$buo_fourd_notified) {\r\n // Notification not yet sent\r\n if ($buo) {\r\n // Call the default browser-update.org method first, this should handle most cases\r\n // NOTE: this step is required when using the npm version of the code which doesn't auto call this method\r\n $buo($buoop);\r\n }\r\n }\r\n if (!$buo_fourd_notified) {\r\n // The default check hasn't detected an issue, check for any extra scenarios we want to notify for\r\n // Get options variable\r\n var op = $buoop;\r\n if (op && $bu_) {\r\n // Do browser check\r\n var bb = op.browser = $bu_.get_browser(op.override_ua);\r\n if (!bb.is_supported) {\r\n // Browser not supported by vendor\r\n if (bb.no_device_update) {\r\n // User unable to update, log details, but do not show banner to user as they can't do anything\r\n $buo_fourd_notify(op, false);\r\n }\r\n else {\r\n // User can update, log details\r\n // Don't show banner for now, may want to show in the future\r\n $buo_fourd_notify(op, false);\r\n }\r\n }\r\n }\r\n }\r\n};\r\nfunction $buo_fourd_loadScript() {\r\n // Load latest version of browser-update.org script\r\n var e = document.createElement(\"script\");\r\n //e.src = \"//browser-update.org/update.min.js\"; // Unable to specify crossorigin, doesn't auto fire\r\n // Use CDN - can specify crossorigin\r\n e.src = \"https://cdn.jsdelivr.net/npm/browser-update/update.npm.min.js\";\r\n e.setAttribute('crossorigin', 'anonymous');\r\n e.setAttribute('onerror', 'fourdHandleScriptLoadError(event)');\r\n e.setAttribute('onload', '$buo_fourd_browserChecks()');\r\n document.body.appendChild(e);\r\n};\r\n// Add listeners to trigger browser check function\r\ntry { document.addEventListener(\"DOMContentLoaded\", $buo_fourd_loadScript, false) }\r\ncatch (e) { window.attachEvent(\"onload\", $buo_fourd_loadScript) }"]}