cakeinpanic-shared 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/_virtual/_commonjsHelpers.js +10 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/cjs/_virtual/index.js +10 -0
- package/dist/cjs/_virtual/index.js.map +1 -0
- package/dist/cjs/_virtual/index2.js +8 -0
- package/dist/cjs/_virtual/index2.js.map +1 -0
- package/dist/cjs/_virtual/ua-parser.js +10 -0
- package/dist/cjs/_virtual/ua-parser.js.map +1 -0
- package/dist/cjs/_virtual/ua-parser2.js +8 -0
- package/dist/cjs/_virtual/ua-parser2.js.map +1 -0
- package/dist/cjs/index.css +1 -0
- package/dist/cjs/index.js +39 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/node_modules/classnames/index.js +74 -0
- package/dist/cjs/node_modules/classnames/index.js.map +1 -0
- package/dist/cjs/node_modules/ua-parser-js/src/ua-parser.js +811 -0
- package/dist/cjs/node_modules/ua-parser-js/src/ua-parser.js.map +1 -0
- package/dist/cjs/theme-css/constants.js +21 -0
- package/dist/cjs/theme-css/constants.js.map +1 -0
- package/dist/cjs/theme-css/content-theme/content-theme.js +30 -0
- package/dist/cjs/theme-css/content-theme/content-theme.js.map +1 -0
- package/dist/cjs/theme-css/content-theme/content-theme.module.css.js +6 -0
- package/dist/cjs/theme-css/content-theme/content-theme.module.css.js.map +1 -0
- package/dist/cjs/theme-css/cookie-theme-provider.js +129 -0
- package/dist/cjs/theme-css/cookie-theme-provider.js.map +1 -0
- package/dist/cjs/theme-css/document-head-contents/element-theme-script.js +73 -0
- package/dist/cjs/theme-css/document-head-contents/element-theme-script.js.map +1 -0
- package/dist/cjs/theme-css/theme-provider/theme-provider.js +48 -0
- package/dist/cjs/theme-css/theme-provider/theme-provider.js.map +1 -0
- package/dist/cjs/theme-css/theme-toggler/theme-toggler.js +72 -0
- package/dist/cjs/theme-css/theme-toggler/theme-toggler.js.map +1 -0
- package/dist/cjs/theme-css/theme-toggler/theme-toggler.module.css.js +6 -0
- package/dist/cjs/theme-css/theme-toggler/theme-toggler.module.css.js.map +1 -0
- package/dist/cjs/theme-css/use-theme-toggle.js +13 -0
- package/dist/cjs/theme-css/use-theme-toggle.js.map +1 -0
- package/dist/cjs/theme-css/utils/cookies.js +21 -0
- package/dist/cjs/theme-css/utils/cookies.js.map +1 -0
- package/dist/cjs/theme-css/utils/set-theme-cookie.js +37 -0
- package/dist/cjs/theme-css/utils/set-theme-cookie.js.map +1 -0
- package/dist/cjs/utils/cookies-client-side.js +63 -0
- package/dist/cjs/utils/cookies-client-side.js.map +1 -0
- package/dist/cjs/utils/get-top-level-domain.js +18 -0
- package/dist/cjs/utils/get-top-level-domain.js.map +1 -0
- package/dist/cjs/utils/index.js +18 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/modalRoot.js +19 -0
- package/dist/cjs/utils/modalRoot.js.map +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.mjs +6 -0
- package/dist/esm/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/dist/esm/_virtual/index.mjs +8 -0
- package/dist/esm/_virtual/index.mjs.map +1 -0
- package/dist/esm/_virtual/index2.mjs +4 -0
- package/dist/esm/_virtual/index2.mjs.map +1 -0
- package/dist/esm/_virtual/ua-parser.mjs +6 -0
- package/dist/esm/_virtual/ua-parser.mjs.map +1 -0
- package/dist/esm/_virtual/ua-parser2.mjs +4 -0
- package/dist/esm/_virtual/ua-parser2.mjs.map +1 -0
- package/dist/esm/index.css +1 -0
- package/dist/esm/index.mjs +11 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/node_modules/classnames/index.mjs +70 -0
- package/dist/esm/node_modules/classnames/index.mjs.map +1 -0
- package/dist/esm/node_modules/ua-parser-js/src/ua-parser.mjs +807 -0
- package/dist/esm/node_modules/ua-parser-js/src/ua-parser.mjs.map +1 -0
- package/dist/esm/theme-css/constants.mjs +13 -0
- package/dist/esm/theme-css/constants.mjs.map +1 -0
- package/dist/esm/theme-css/content-theme/content-theme.mjs +26 -0
- package/dist/esm/theme-css/content-theme/content-theme.mjs.map +1 -0
- package/dist/esm/theme-css/content-theme/content-theme.module.css.mjs +4 -0
- package/dist/esm/theme-css/content-theme/content-theme.module.css.mjs.map +1 -0
- package/dist/esm/theme-css/cookie-theme-provider.mjs +124 -0
- package/dist/esm/theme-css/cookie-theme-provider.mjs.map +1 -0
- package/dist/esm/theme-css/document-head-contents/element-theme-script.mjs +69 -0
- package/dist/esm/theme-css/document-head-contents/element-theme-script.mjs.map +1 -0
- package/dist/esm/theme-css/theme-provider/theme-provider.mjs +42 -0
- package/dist/esm/theme-css/theme-provider/theme-provider.mjs.map +1 -0
- package/dist/esm/theme-css/theme-toggler/theme-toggler.mjs +68 -0
- package/dist/esm/theme-css/theme-toggler/theme-toggler.mjs.map +1 -0
- package/dist/esm/theme-css/theme-toggler/theme-toggler.module.css.mjs +4 -0
- package/dist/esm/theme-css/theme-toggler/theme-toggler.module.css.mjs.map +1 -0
- package/dist/esm/theme-css/use-theme-toggle.mjs +9 -0
- package/dist/esm/theme-css/use-theme-toggle.mjs.map +1 -0
- package/dist/esm/theme-css/utils/cookies.mjs +17 -0
- package/dist/esm/theme-css/utils/cookies.mjs.map +1 -0
- package/dist/esm/theme-css/utils/set-theme-cookie.mjs +33 -0
- package/dist/esm/theme-css/utils/set-theme-cookie.mjs.map +1 -0
- package/dist/esm/utils/cookies-client-side.mjs +55 -0
- package/dist/esm/utils/cookies-client-side.mjs.map +1 -0
- package/dist/esm/utils/get-top-level-domain.mjs +14 -0
- package/dist/esm/utils/get-top-level-domain.mjs.map +1 -0
- package/dist/esm/utils/index.mjs +8 -0
- package/dist/esm/utils/index.mjs.map +1 -0
- package/dist/esm/utils/modalRoot.mjs +17 -0
- package/dist/esm/utils/modalRoot.mjs.map +1 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/theme-css/block/Block.d.ts +2 -0
- package/dist/types/theme-css/block/Block.d.ts.map +1 -0
- package/dist/types/theme-css/block/index.d.ts +2 -0
- package/dist/types/theme-css/block/index.d.ts.map +1 -0
- package/dist/types/theme-css/constants.d.ts +9 -0
- package/dist/types/theme-css/constants.d.ts.map +1 -0
- package/dist/types/theme-css/content-theme/content-theme.d.ts +7 -0
- package/dist/types/theme-css/content-theme/content-theme.d.ts.map +1 -0
- package/dist/types/theme-css/content-theme/index.d.ts +2 -0
- package/dist/types/theme-css/content-theme/index.d.ts.map +1 -0
- package/dist/types/theme-css/cookie-theme-provider.d.ts +20 -0
- package/dist/types/theme-css/cookie-theme-provider.d.ts.map +1 -0
- package/dist/types/theme-css/document-head-contents/element-theme-script.d.ts +6 -0
- package/dist/types/theme-css/document-head-contents/element-theme-script.d.ts.map +1 -0
- package/dist/types/theme-css/document-head-contents/index.d.ts +2 -0
- package/dist/types/theme-css/document-head-contents/index.d.ts.map +1 -0
- package/dist/types/theme-css/index.d.ts +7 -0
- package/dist/types/theme-css/index.d.ts.map +1 -0
- package/dist/types/theme-css/theme-provider/index.d.ts +2 -0
- package/dist/types/theme-css/theme-provider/index.d.ts.map +1 -0
- package/dist/types/theme-css/theme-provider/theme-provider.d.ts +10 -0
- package/dist/types/theme-css/theme-provider/theme-provider.d.ts.map +1 -0
- package/dist/types/theme-css/theme-toggler/index.d.ts +2 -0
- package/dist/types/theme-css/theme-toggler/index.d.ts.map +1 -0
- package/dist/types/theme-css/theme-toggler/theme-toggler.d.ts +5 -0
- package/dist/types/theme-css/theme-toggler/theme-toggler.d.ts.map +1 -0
- package/dist/types/theme-css/use-theme-toggle.d.ts +3 -0
- package/dist/types/theme-css/use-theme-toggle.d.ts.map +1 -0
- package/dist/types/theme-css/utils/cookies.d.ts +3 -0
- package/dist/types/theme-css/utils/cookies.d.ts.map +1 -0
- package/dist/types/theme-css/utils/set-theme-cookie.d.ts +3 -0
- package/dist/types/theme-css/utils/set-theme-cookie.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/__tests__/get-top-level-domain.test.d.ts +2 -0
- package/dist/types/utils/__tests__/get-top-level-domain.test.d.ts.map +1 -0
- package/dist/types/utils/cookies-client-side.d.ts +6 -0
- package/dist/types/utils/cookies-client-side.d.ts.map +1 -0
- package/dist/types/utils/get-top-level-domain.d.ts +2 -0
- package/dist/types/utils/get-top-level-domain.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +6 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/modalRoot.d.ts +3 -0
- package/dist/types/utils/modalRoot.d.ts.map +1 -0
- package/dist/types/utils/types.d.ts +11 -0
- package/dist/types/utils/types.d.ts.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ua-parser.mjs","sources":["../../../../../../../node_modules/ua-parser-js/src/ua-parser.js"],"sourcesContent":["/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.41\n Copyright © 2012-2025 Faisal Salman <f@faisalman.com>\n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.41',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HONOR = 'Honor',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n NVIDIA = 'Nvidia',\n ONEPLUS = 'OnePlus',\n OPERA = 'Opera',\n OPPO = 'OPPO',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS',\n SUFFIX_BROWSER = ' Browser';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof(str) === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i, // LieBao Browser/Rekonq\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /(daum)apps[\\/ ]([\\w\\.]+)/i, // Daum App\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird\n /\\b(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /\\b((amd|x|x86[-_]?|wow|win)64)\\b/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i, // IA32 (quicktime)\n /\\b((i[346]|x)86)(pc)?\\b/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?[89]e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /( (ce|mobile); ppc;|\\/[\\w\\.]+arm\\b)/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((ppc|powerpc)(64)?)( mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n / sun4\\w[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /\\b(avr32|ia64(?=;)|68k(?=\\))|\\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr])[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /\\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\\)|;)/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [\n /honor([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\\w\\. ]*(?= bui|\\)))\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /oid[^\\)]+; (2[\\dbc]{4}(182|283|rp\\w{2})[cgl]|m2105k81a?c)(?: bui|\\))/i,\n /\\b((?:red)?mi[-_ ]?pad[\\w- ]*)(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\\))/i, // Xiaomi Mi\n / ([\\w ]+) miui\\/v?\\d/i\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [\n /\\b(opd2(\\d{3}a?))(?: bui|\\))/i\n ], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['304', '403', '203'], '*' : OPPO }], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto(?! 360)[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv|watch)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\\d{3,4}(?:f[cu]|xu|[av])|yt\\d?-[jx]?\\d+[lfmx])( bui|;|\\)|\\/)/i,\n /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\\w- ]+?)|tb[\\w-]{6,7})( bui|;|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [\n\n // Nokia\n /(nokia) (t[12][01])/i\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n /(?:maemo|nokia).*(n900|lumia \\d+|rm-\\d+)/i,\n /nokia[-_ ]?(([-\\w\\. ]*))/i\n ], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [\n\n // Google\n /(pixel (c|tablet))\\b/i // Google Pixel C/Tablet\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\\w*(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(?:015|06[35]|142p?))/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // Archos\n /; (x67 5g|tikeasy \\w+|ac[1789]\\d\\w+)( b|\\))/i,\n /archos ?(5|gamepad2?|([\\w ]*[t1789]|hello) ?\\d+[\\w ]*)( b|\\))/i\n ], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [\n /archos ([\\w ]+)( b|\\))/i,\n /; (ac[3-6]\\d\\w{2,8})( b|\\))/i \n ], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [\n\n // MIXED\n /(imo) (tab \\w+)/i, // IMO\n /(infinix) (x1101b?)/i // Infinix XPad\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan\n /; (hmd|imo) ([\\w ]+?)(?: bui|\\))/i, // HMD/IMO\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w ]+?)(?: bui|\\)|\\/)/i, // Lenovo\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /((?:tegranote|shield t(?!.+d tv))[\\w- ]*?)(?: b|\\))/i // Nvidia Tablets\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /(shield \\w+ tv)/i // Nvidia Shield TV\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mi(tv|box)-?\\w+) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n // SmartTV from Unidentified Vendors\n /droid.+; ([\\w- ]+) (?:android tv|smart[- ]?tv)/i\n ], [MODEL, [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield)( bui|\\))/i // Nvidia Portable\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [\n /(playstation \\w+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[0156][fnuw]?s?|gear live)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i, // Pebble\n /(asus|google|lg|oppo) ((pixel |zen)?watch[\\w ]*)( bui|\\))/i // Asus ZenWatch / LG Watch / Pixel Watch\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch\n ], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /(opwwe\\d{3})/i // OnePlus Watch\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [\n /(moto 360)/i // Motorola 360\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [\n /(smartwatch 3)/i // Sony SmartWatch\n ], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [\n /(g watch r)/i // LG G Watch R\n ], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /(pico) (4|neo3(?: link|pro)?)/i // Pico\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /; (quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n /(homepod).+mac os/i // Apple HomePod\n ], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [\n /windows iot/i\n ], [[TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /droid .+?; ([\\w\\. -]+)( bui|\\))/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n\n /\\b(libweb)/i // LibWeb\n ], [NAME, VERSION], [\n /ladybird\\//i\n ], [[NAME, 'LibWeb']], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile|iot))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /[adehimnop]{4,7}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ \n /(ubuntu) ([\\w\\.]+) like android/i // Ubuntu Touch\n ], [[NAME, /(.+)/, '$1 Touch'], VERSION], [\n // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen\n /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\\w*[-\\/; ]?([\\d\\.]*)/i\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux)(?: arm\\w*| x86\\w*| ?)([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n"],"names":["window","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HONOR","HUAWEI","LENOVO","LG","MICROSOFT","MOTOROLA","NVIDIA","ONEPLUS","OPERA","OPPO","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","SUFFIX_BROWSER","extend","regexes","extensions","mergedRegexes","i","length","concat","enumerize","arr","enums","toUpperCase","has","str1","str2","lowerize","indexOf","str","toLowerCase","majorize","version","replace","split","trim","len","substring","rgxMapper","ua","arrays","j","k","p","q","matches","match","regex","props","exec","call","test","strMapper","map","hasOwnProperty","oldSafariMap","windowsVersionMap","browser","cpu","device","engine","os","UAParser","getResult","_navigator","navigator","_ua","userAgent","_uach","userAgentData","_rgxmap","_isSelfNav","getBrowser","_browser","brave","isBrave","getCPU","_cpu","getDevice","_device","mobile","standalone","maxTouchPoints","getEngine","_engine","getOS","_os","platform","getUA","setUA","CPU","DEVICE","ENGINE","OS","module","exports","$","jQuery","Zepto","parser","get","set","result","prop","this"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
let ThemeName = /*#__PURE__*/function (ThemeName) {
|
|
2
|
+
ThemeName["light"] = "light";
|
|
3
|
+
ThemeName["dark"] = "dark";
|
|
4
|
+
return ThemeName;
|
|
5
|
+
}({});
|
|
6
|
+
const DEFAULT_THEME_NAME = ThemeName.light;
|
|
7
|
+
const themeCookieKey = 'lido-theme-manual1';
|
|
8
|
+
const themeCookieMaxAge = 365 * 24 * 3600; // 365 days in seconds
|
|
9
|
+
|
|
10
|
+
const prefersDarkThemeMediaQuery = typeof window !== 'undefined' ? window.matchMedia?.('(prefers-color-scheme: dark)') : undefined;
|
|
11
|
+
|
|
12
|
+
export { DEFAULT_THEME_NAME, ThemeName, prefersDarkThemeMediaQuery, themeCookieKey, themeCookieMaxAge };
|
|
13
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../src/theme-css/constants.ts"],"sourcesContent":["export enum ThemeName {\n light = 'light',\n dark = 'dark',\n}\n\nexport const DEFAULT_THEME_NAME = ThemeName.light\n\nexport const themeCookieKey = 'lido-theme-manual1'\n\nexport const themeCookieMaxAge = 365 * 24 * 3600 // 365 days in seconds\n\nexport const prefersDarkThemeMediaQuery =\n typeof window !== 'undefined'\n ? window.matchMedia?.('(prefers-color-scheme: dark)')\n : undefined\n"],"names":["ThemeName","DEFAULT_THEME_NAME","light","themeCookieKey","themeCookieMaxAge","prefersDarkThemeMediaQuery","window","matchMedia","undefined"],"mappings":"AAAYA,IAAAA,SAAS,0BAATA,SAAS,EAAA;EAATA,SAAS,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAATA,SAAS,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAATA,SAAS,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAKRC,MAAAA,kBAAkB,GAAGD,SAAS,CAACE,MAAK;AAE1C,MAAMC,cAAc,GAAG,qBAAoB;AAE3C,MAAMC,iBAAiB,GAAG,GAAG,GAAG,EAAE,GAAG,KAAK;;AAEpCC,MAAAA,0BAA0B,GACrC,OAAOC,MAAM,KAAK,WAAW,GACzBA,MAAM,CAACC,UAAU,GAAG,8BAA8B,CAAC,GACnDC;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import cn from '../../_virtual/index.mjs';
|
|
2
|
+
import styles from './content-theme.module.css.mjs';
|
|
3
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
const ContentTheme = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
darkContent,
|
|
8
|
+
lightContent,
|
|
9
|
+
className,
|
|
10
|
+
...rest
|
|
11
|
+
} = _ref;
|
|
12
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
13
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
14
|
+
className: cn(styles.dark, className),
|
|
15
|
+
...rest,
|
|
16
|
+
children: darkContent
|
|
17
|
+
}), /*#__PURE__*/jsx("div", {
|
|
18
|
+
className: cn(styles.light, className),
|
|
19
|
+
...rest,
|
|
20
|
+
children: lightContent
|
|
21
|
+
})]
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { ContentTheme };
|
|
26
|
+
//# sourceMappingURL=content-theme.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-theme.mjs","sources":["../../../../src/theme-css/content-theme/content-theme.tsx"],"sourcesContent":["import cn from 'classnames'\nimport { ComponentPropsWithoutRef, FC, ReactElement } from 'react'\nimport styles from './content-theme.module.css'\n\nexport type ContentThemeProps = ComponentPropsWithoutRef<'div'> & {\n darkContent: ReactElement\n lightContent: ReactElement\n}\n\nexport const ContentTheme: FC<ContentThemeProps> = ({\n darkContent,\n lightContent,\n className,\n ...rest\n}: ContentThemeProps) => {\n return (\n <>\n <div className={cn(styles.dark, className)} {...rest}>\n {darkContent}\n </div>\n <div className={cn(styles.light, className)} {...rest}>\n {lightContent}\n </div>\n </>\n )\n}\n"],"names":["ContentTheme","_ref","darkContent","lightContent","className","rest","_jsxs","_Fragment","children","_jsx","cn","styles","dark","light"],"mappings":";;;;AASaA,MAAAA,YAAmC,GAAGC,IAAA,IAK1B;EAAA,IAL2B;IAClDC,WAAW;IACXC,YAAY;IACZC,SAAS;IACT,GAAGC,IAAAA;AACc,GAAC,GAAAJ,IAAA,CAAA;EAClB,oBACEK,IAAA,CAAAC,QAAA,EAAA;AAAAC,IAAAA,QAAA,gBACEC,GAAA,CAAA,KAAA,EAAA;MAAKL,SAAS,EAAEM,EAAE,CAACC,MAAM,CAACC,IAAI,EAAER,SAAS,CAAE;AAAA,MAAA,GAAKC,IAAI;AAAAG,MAAAA,QAAA,EACjDN,WAAAA;KACE,CAAC,eACNO,GAAA,CAAA,KAAA,EAAA;MAAKL,SAAS,EAAEM,EAAE,CAACC,MAAM,CAACE,KAAK,EAAET,SAAS,CAAE;AAAA,MAAA,GAAKC,IAAI;AAAAG,MAAAA,QAAA,EAClDL,YAAAA;AAAY,KACV,CAAC,CAAA;AAAA,GACN,CAAC,CAAA;AAEP;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-theme.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { createContext, memo, useContext, useState, useEffect, useMemo } from 'react';
|
|
2
|
+
import { DEFAULT_THEME_NAME, prefersDarkThemeMediaQuery, ThemeName } from './constants.mjs';
|
|
3
|
+
import { getThemeNameFromCookies } from './utils/cookies.mjs';
|
|
4
|
+
import { initGlobalCookieTheme, updateGlobalTheme, getThemeNameFromUrl } from './document-head-contents/element-theme-script.mjs';
|
|
5
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
const defaultThemeContext = {};
|
|
8
|
+
const ThemeToggleContext = /*#__PURE__*/createContext(defaultThemeContext);
|
|
9
|
+
initGlobalCookieTheme();
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* This is really complicated logic here. Comments will be added on specific lines
|
|
13
|
+
*
|
|
14
|
+
* Cookie theme provider acts differently from common theme provider.
|
|
15
|
+
* 1. it can be nested, BUT it should re-use value provided by itself for optimisation purposes
|
|
16
|
+
* 2. if it is top-level, it is not altering itself, but instead altering theme behavior on HTMLElement level
|
|
17
|
+
* 3. it does not support custom themes, preferring pre-defined themes instead
|
|
18
|
+
* */
|
|
19
|
+
|
|
20
|
+
const CookieThemeProvider = /*#__PURE__*/memo(_ref => {
|
|
21
|
+
let {
|
|
22
|
+
children,
|
|
23
|
+
initialThemeName,
|
|
24
|
+
// overrideThemeName is mainly used for storybook
|
|
25
|
+
overrideThemeName
|
|
26
|
+
} = _ref;
|
|
27
|
+
const parentTheme = useContext(ThemeToggleContext);
|
|
28
|
+
// we do not want to do nested injections, and we're checking
|
|
29
|
+
// if context we inject in this component is already provided
|
|
30
|
+
const isTopLevelProvider = Object.keys(parentTheme).length === 0;
|
|
31
|
+
// we always start with default theme, or, if server wants to provide
|
|
32
|
+
// specific default theme, with server-provided theme to avoid hydration errors
|
|
33
|
+
const [internalThemeName, setThemeName] = useState(initialThemeName || DEFAULT_THEME_NAME);
|
|
34
|
+
// since we're using this component to provide cookie-theme,
|
|
35
|
+
// we eventually want to respect theme provided in cookie, not general theme,
|
|
36
|
+
// so we're picking `parentTheme.themeName` if we have one.
|
|
37
|
+
// If user needs custom theme, not "cookie theme", he should use ThemeProvider instead.
|
|
38
|
+
const themeName = parentTheme.themeName || internalThemeName;
|
|
39
|
+
|
|
40
|
+
// This logic is really hydrating everything, since we started with server-rendered default prop.
|
|
41
|
+
// It also follows cookie value change.
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
// This logic is useless if we're nested - it is already done in top-level provider
|
|
44
|
+
if (!isTopLevelProvider) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const setTheme = () => {
|
|
48
|
+
const systemThemeName = prefersDarkThemeMediaQuery?.matches ? ThemeName.dark : ThemeName.light;
|
|
49
|
+
const themeNameUrl = getThemeNameFromUrl();
|
|
50
|
+
const themeNameCookie = getThemeNameFromCookies();
|
|
51
|
+
const newThemeName =
|
|
52
|
+
// first, if we have some override (e.g. in Storybook), we respect it
|
|
53
|
+
overrideThemeName ||
|
|
54
|
+
// url query has higher priority than cookie
|
|
55
|
+
themeNameUrl ||
|
|
56
|
+
// then, if we have cookie theme, we use theme from cookie
|
|
57
|
+
themeNameCookie ||
|
|
58
|
+
// else, we follow theme we were provided in initialization from server,
|
|
59
|
+
// which means server explicitly wants specific theme by default, not "follow-system"
|
|
60
|
+
initialThemeName ||
|
|
61
|
+
// then, we use media query theme, if available (not all browsers may still support it)
|
|
62
|
+
systemThemeName ||
|
|
63
|
+
// and, finally, falling back to default
|
|
64
|
+
DEFAULT_THEME_NAME;
|
|
65
|
+
setThemeName(newThemeName);
|
|
66
|
+
// and when theme is switched, we're setting global-level CSS variable data-attribute
|
|
67
|
+
// to modify CSS vars provided on a top-level
|
|
68
|
+
document.documentElement.dataset.lidoTheme = newThemeName;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// Users may have auto-theme (switching on sunset or schedule or whatever) so we need to listen for this event
|
|
72
|
+
prefersDarkThemeMediaQuery?.addEventListener('change', setTheme);
|
|
73
|
+
setTheme();
|
|
74
|
+
|
|
75
|
+
// This code check that the theme cookie was changed on other tab or site (the same second-level domain)
|
|
76
|
+
const checkCookieThemeWasChanged = () => {
|
|
77
|
+
const themeNameCookie = getThemeNameFromCookies();
|
|
78
|
+
if (themeNameCookie && (themeNameCookie === ThemeName.dark || themeNameCookie === ThemeName.light)) {
|
|
79
|
+
setThemeName(themeNameCookie);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
window.addEventListener('focus', checkCookieThemeWasChanged);
|
|
83
|
+
return () => {
|
|
84
|
+
window.removeEventListener('focus', checkCookieThemeWasChanged);
|
|
85
|
+
};
|
|
86
|
+
}, [initialThemeName, isTopLevelProvider, overrideThemeName, parentTheme]);
|
|
87
|
+
const value = useMemo(() => ({
|
|
88
|
+
themeName,
|
|
89
|
+
toggleTheme() {
|
|
90
|
+
setThemeName(themeName => {
|
|
91
|
+
const newThemeName = themeName === ThemeName.light ? ThemeName.dark : ThemeName.light;
|
|
92
|
+
// note that we're writing cookie theme only on explicit calls,
|
|
93
|
+
// not on "internal theme state" change
|
|
94
|
+
updateGlobalTheme(newThemeName);
|
|
95
|
+
// we do not need to run setTheme here, as effect is triggered
|
|
96
|
+
return newThemeName;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}), [themeName]);
|
|
100
|
+
if (isTopLevelProvider) {
|
|
101
|
+
// if this provider is top-level we rely on element-theme-script.tsx logic
|
|
102
|
+
// which defines data-lido-theme injection
|
|
103
|
+
return /*#__PURE__*/jsx(ThemeToggleContext.Provider, {
|
|
104
|
+
value: value,
|
|
105
|
+
children: children
|
|
106
|
+
});
|
|
107
|
+
} else if (overrideThemeName) {
|
|
108
|
+
return /*#__PURE__*/jsx("div", {
|
|
109
|
+
style: {
|
|
110
|
+
display: 'contents'
|
|
111
|
+
},
|
|
112
|
+
"data-lido-theme": themeName,
|
|
113
|
+
children: children
|
|
114
|
+
});
|
|
115
|
+
} else {
|
|
116
|
+
return /*#__PURE__*/jsx(Fragment, {
|
|
117
|
+
children: children
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
CookieThemeProvider.displayName = 'CookieThemeProvider';
|
|
122
|
+
|
|
123
|
+
export { CookieThemeProvider, ThemeToggleContext };
|
|
124
|
+
//# sourceMappingURL=cookie-theme-provider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-theme-provider.mjs","sources":["../../../src/theme-css/cookie-theme-provider.tsx"],"sourcesContent":["import {\n createContext,\n FC,\n memo,\n PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {\n DEFAULT_THEME_NAME,\n prefersDarkThemeMediaQuery,\n ThemeName,\n} from './constants'\nimport { getThemeNameFromCookies } from './utils/cookies'\nimport {\n getThemeNameFromUrl,\n initGlobalCookieTheme,\n updateGlobalTheme,\n} from './document-head-contents/element-theme-script'\n\nexport type ThemeContext = {\n toggleTheme: () => void\n themeName: ThemeName\n}\n\nconst defaultThemeContext = {} as ThemeContext\nexport const ThemeToggleContext =\n createContext<ThemeContext>(defaultThemeContext)\n\ninitGlobalCookieTheme()\n\n/**\n * This is really complicated logic here. Comments will be added on specific lines\n *\n * Cookie theme provider acts differently from common theme provider.\n * 1. it can be nested, BUT it should re-use value provided by itself for optimisation purposes\n * 2. if it is top-level, it is not altering itself, but instead altering theme behavior on HTMLElement level\n * 3. it does not support custom themes, preferring pre-defined themes instead\n * */\n\nexport const CookieThemeProvider: FC<\n PropsWithChildren<{\n // Use themeNameParent if you need get cookie in SSR\n initialThemeName?: ThemeName\n overrideThemeName?: ThemeName\n }>\n> = memo(\n ({\n children,\n initialThemeName,\n // overrideThemeName is mainly used for storybook\n overrideThemeName,\n }) => {\n const parentTheme = useContext(ThemeToggleContext)\n // we do not want to do nested injections, and we're checking\n // if context we inject in this component is already provided\n const isTopLevelProvider = Object.keys(parentTheme).length === 0\n // we always start with default theme, or, if server wants to provide\n // specific default theme, with server-provided theme to avoid hydration errors\n const [internalThemeName, setThemeName] = useState<ThemeName>(\n initialThemeName || DEFAULT_THEME_NAME,\n )\n // since we're using this component to provide cookie-theme,\n // we eventually want to respect theme provided in cookie, not general theme,\n // so we're picking `parentTheme.themeName` if we have one.\n // If user needs custom theme, not \"cookie theme\", he should use ThemeProvider instead.\n const themeName = parentTheme.themeName || internalThemeName\n\n // This logic is really hydrating everything, since we started with server-rendered default prop.\n // It also follows cookie value change.\n useEffect(() => {\n // This logic is useless if we're nested - it is already done in top-level provider\n if (!isTopLevelProvider) {\n return\n }\n const setTheme = () => {\n const systemThemeName = prefersDarkThemeMediaQuery?.matches\n ? ThemeName.dark\n : ThemeName.light\n const themeNameUrl = getThemeNameFromUrl()\n const themeNameCookie = getThemeNameFromCookies()\n const newThemeName =\n // first, if we have some override (e.g. in Storybook), we respect it\n overrideThemeName ||\n // url query has higher priority than cookie\n themeNameUrl ||\n // then, if we have cookie theme, we use theme from cookie\n themeNameCookie ||\n // else, we follow theme we were provided in initialization from server,\n // which means server explicitly wants specific theme by default, not \"follow-system\"\n initialThemeName ||\n // then, we use media query theme, if available (not all browsers may still support it)\n systemThemeName ||\n // and, finally, falling back to default\n DEFAULT_THEME_NAME\n setThemeName(newThemeName)\n // and when theme is switched, we're setting global-level CSS variable data-attribute\n // to modify CSS vars provided on a top-level\n document.documentElement.dataset.lidoTheme = newThemeName\n }\n\n // Users may have auto-theme (switching on sunset or schedule or whatever) so we need to listen for this event\n prefersDarkThemeMediaQuery?.addEventListener('change', setTheme)\n setTheme()\n\n // This code check that the theme cookie was changed on other tab or site (the same second-level domain)\n const checkCookieThemeWasChanged = () => {\n const themeNameCookie = getThemeNameFromCookies()\n\n if (\n themeNameCookie &&\n (themeNameCookie === ThemeName.dark ||\n themeNameCookie === ThemeName.light)\n ) {\n setThemeName(themeNameCookie)\n }\n }\n window.addEventListener('focus', checkCookieThemeWasChanged)\n\n return () => {\n window.removeEventListener('focus', checkCookieThemeWasChanged)\n }\n }, [initialThemeName, isTopLevelProvider, overrideThemeName, parentTheme])\n\n const value = useMemo(\n () => ({\n themeName,\n toggleTheme() {\n setThemeName((themeName) => {\n const newThemeName =\n themeName === ThemeName.light ? ThemeName.dark : ThemeName.light\n // note that we're writing cookie theme only on explicit calls,\n // not on \"internal theme state\" change\n updateGlobalTheme(newThemeName)\n // we do not need to run setTheme here, as effect is triggered\n return newThemeName\n })\n },\n }),\n [themeName],\n )\n\n if (isTopLevelProvider) {\n // if this provider is top-level we rely on element-theme-script.tsx logic\n // which defines data-lido-theme injection\n return (\n <ThemeToggleContext.Provider value={value}>\n {children}\n </ThemeToggleContext.Provider>\n )\n } else if (overrideThemeName) {\n return (\n <div style={{ display: 'contents' }} data-lido-theme={themeName}>\n {children}\n </div>\n )\n } else {\n return <>{children}</>\n }\n },\n)\n\nCookieThemeProvider.displayName = 'CookieThemeProvider'\n"],"names":["defaultThemeContext","ThemeToggleContext","createContext","initGlobalCookieTheme","CookieThemeProvider","memo","_ref","children","initialThemeName","overrideThemeName","parentTheme","useContext","isTopLevelProvider","Object","keys","length","internalThemeName","setThemeName","useState","DEFAULT_THEME_NAME","themeName","useEffect","setTheme","systemThemeName","prefersDarkThemeMediaQuery","matches","ThemeName","dark","light","themeNameUrl","getThemeNameFromUrl","themeNameCookie","getThemeNameFromCookies","newThemeName","document","documentElement","dataset","lidoTheme","addEventListener","checkCookieThemeWasChanged","window","removeEventListener","value","useMemo","toggleTheme","updateGlobalTheme","_jsx","Provider","style","display","_Fragment","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { VOID_FN } from '../../utils/index.mjs';
|
|
2
|
+
import { ThemeName, themeCookieKey } from '../constants.mjs';
|
|
3
|
+
import { setThemeCookie } from '../utils/set-theme-cookie.mjs';
|
|
4
|
+
import 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
const getThemeNameFromUrl = () => {
|
|
7
|
+
if (typeof window === 'undefined') return undefined;
|
|
8
|
+
const url = new URL(window.location.href);
|
|
9
|
+
const queryTheme = url.searchParams.get('theme')?.toLowerCase();
|
|
10
|
+
if (queryTheme === 'light') return ThemeName.light;
|
|
11
|
+
if (queryTheme === 'dark') return ThemeName.dark;
|
|
12
|
+
return undefined;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* What is happening here:
|
|
17
|
+
* We want to have React dehydrated HTML to be loaded after theme is initialized.
|
|
18
|
+
* That means that we need to have some code executed BEFORE main react components code,
|
|
19
|
+
* before even injected script itself, so we need to provide some CSS and JS in document head
|
|
20
|
+
* to read the theme from cookie and make global CSS follow preferred palette.
|
|
21
|
+
* This file is providing JS code that reads/writes cookie value, including <script> element to inject
|
|
22
|
+
* */
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* this FN should be hermetic and has zero external items - it is inlined via .toString()
|
|
26
|
+
* __PURE__ annotation may throw an error on some external usage cases
|
|
27
|
+
* (with chances, but it is better than nothing)
|
|
28
|
+
* */
|
|
29
|
+
|
|
30
|
+
const themeScriptValueString = function (key) {
|
|
31
|
+
const url = new URL(window.location.href);
|
|
32
|
+
const queryTheme = url.searchParams.get('theme')?.toLowerCase();
|
|
33
|
+
if (queryTheme === 'light' || queryTheme === 'dark') {
|
|
34
|
+
document.documentElement.dataset.lidoTheme = queryTheme;
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
36
|
+
return () => {};
|
|
37
|
+
}
|
|
38
|
+
if (!window.matchMedia) {
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
40
|
+
return () => {};
|
|
41
|
+
}
|
|
42
|
+
const match = window.matchMedia('(prefers-color-scheme: dark)');
|
|
43
|
+
const setTheme = () => {
|
|
44
|
+
const cookieMatcher = new RegExp(`(^| )${key}=([^;]+)`);
|
|
45
|
+
const themeCookie = document.cookie.match(cookieMatcher)?.[2] ?? null;
|
|
46
|
+
if (themeCookie) {
|
|
47
|
+
document.documentElement.dataset.lidoTheme = themeCookie;
|
|
48
|
+
} else {
|
|
49
|
+
delete document.documentElement.dataset.lidoTheme;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
setTheme();
|
|
53
|
+
match.addEventListener('change', setTheme);
|
|
54
|
+
return setTheme;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
58
|
+
let updateGlobalTheme = VOID_FN;
|
|
59
|
+
let initGlobalCookieTheme = typeof window === 'undefined' ? VOID_FN : () => {
|
|
60
|
+
const setTheme = themeScriptValueString(themeCookieKey);
|
|
61
|
+
initGlobalCookieTheme = VOID_FN;
|
|
62
|
+
updateGlobalTheme = theme => {
|
|
63
|
+
setThemeCookie(theme);
|
|
64
|
+
setTheme();
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export { getThemeNameFromUrl, initGlobalCookieTheme, updateGlobalTheme };
|
|
69
|
+
//# sourceMappingURL=element-theme-script.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-theme-script.mjs","sources":["../../../../src/theme-css/document-head-contents/element-theme-script.tsx"],"sourcesContent":["import { VOID_FN } from '../../utils/index'\nimport { themeCookieKey, ThemeName } from '../constants'\nimport { setThemeCookie } from '../utils/set-theme-cookie'\n\nexport const getThemeNameFromUrl = (): ThemeName | undefined => {\n if (typeof window === 'undefined') return undefined\n const url = new URL(window.location.href)\n const queryTheme = url.searchParams.get('theme')?.toLowerCase()\n if (queryTheme === 'light') return ThemeName.light\n if (queryTheme === 'dark') return ThemeName.dark\n return undefined\n}\n\n/**\n * What is happening here:\n * We want to have React dehydrated HTML to be loaded after theme is initialized.\n * That means that we need to have some code executed BEFORE main react components code,\n * before even injected script itself, so we need to provide some CSS and JS in document head\n * to read the theme from cookie and make global CSS follow preferred palette.\n * This file is providing JS code that reads/writes cookie value, including <script> element to inject\n * */\n\n/**\n * this FN should be hermetic and has zero external items - it is inlined via .toString()\n * __PURE__ annotation may throw an error on some external usage cases\n * (with chances, but it is better than nothing)\n * */\n/*#__PURE__*/\nconst themeScriptValueString = function (key: string) {\n const url = new URL(window.location.href)\n const queryTheme = url.searchParams.get('theme')?.toLowerCase()\n if (queryTheme === 'light' || queryTheme === 'dark') {\n document.documentElement.dataset.lidoTheme = queryTheme\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {}\n }\n if (!window.matchMedia) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {}\n }\n const match = window.matchMedia('(prefers-color-scheme: dark)')\n const setTheme = () => {\n const cookieMatcher = new RegExp(`(^| )${key}=([^;]+)`)\n const themeCookie =\n (document.cookie.match(cookieMatcher)?.[2] as ThemeName) ?? null\n if (themeCookie) {\n document.documentElement.dataset.lidoTheme = themeCookie\n } else {\n delete document.documentElement.dataset.lidoTheme\n }\n }\n setTheme()\n match.addEventListener('change', setTheme)\n return setTheme\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport let updateGlobalTheme: (theme: string) => void = VOID_FN\n\nexport let initGlobalCookieTheme =\n typeof window === 'undefined'\n ? VOID_FN\n : () => {\n const setTheme = themeScriptValueString(themeCookieKey)\n initGlobalCookieTheme = VOID_FN\n updateGlobalTheme = (theme: ThemeName) => {\n setThemeCookie(theme)\n setTheme()\n }\n }\n\nexport const ScriptThemeValue = () => (\n <script\n dangerouslySetInnerHTML={{\n __html: `(${themeScriptValueString.toString()})(\"${themeCookieKey}\")`,\n }}\n />\n)\n"],"names":["getThemeNameFromUrl","window","undefined","url","URL","location","href","queryTheme","searchParams","get","toLowerCase","ThemeName","light","dark","themeScriptValueString","key","document","documentElement","dataset","lidoTheme","matchMedia","match","setTheme","cookieMatcher","RegExp","themeCookie","cookie","addEventListener","updateGlobalTheme","VOID_FN","initGlobalCookieTheme","themeCookieKey","theme","setThemeCookie"],"mappings":";;;;;AAIaA,MAAAA,mBAAmB,GAAGA,MAA6B;AAC9D,EAAA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE,OAAOC,SAAS,CAAA;EACnD,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACH,MAAM,CAACI,QAAQ,CAACC,IAAI,CAAC,CAAA;AACzC,EAAA,MAAMC,UAAU,GAAGJ,GAAG,CAACK,YAAY,CAACC,GAAG,CAAC,OAAO,CAAC,EAAEC,WAAW,EAAE,CAAA;AAC/D,EAAA,IAAIH,UAAU,KAAK,OAAO,EAAE,OAAOI,SAAS,CAACC,KAAK,CAAA;AAClD,EAAA,IAAIL,UAAU,KAAK,MAAM,EAAE,OAAOI,SAAS,CAACE,IAAI,CAAA;AAChD,EAAA,OAAOX,SAAS,CAAA;AAClB,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMY,sBAAsB,GAAG,UAAUC,GAAW,EAAE;EACpD,MAAMZ,GAAG,GAAG,IAAIC,GAAG,CAACH,MAAM,CAACI,QAAQ,CAACC,IAAI,CAAC,CAAA;AACzC,EAAA,MAAMC,UAAU,GAAGJ,GAAG,CAACK,YAAY,CAACC,GAAG,CAAC,OAAO,CAAC,EAAEC,WAAW,EAAE,CAAA;AAC/D,EAAA,IAAIH,UAAU,KAAK,OAAO,IAAIA,UAAU,KAAK,MAAM,EAAE;AACnDS,IAAAA,QAAQ,CAACC,eAAe,CAACC,OAAO,CAACC,SAAS,GAAGZ,UAAU,CAAA;AACvD;IACA,OAAO,MAAM,EAAE,CAAA;AACjB,GAAA;AACA,EAAA,IAAI,CAACN,MAAM,CAACmB,UAAU,EAAE;AACtB;IACA,OAAO,MAAM,EAAE,CAAA;AACjB,GAAA;AACA,EAAA,MAAMC,KAAK,GAAGpB,MAAM,CAACmB,UAAU,CAAC,8BAA8B,CAAC,CAAA;EAC/D,MAAME,QAAQ,GAAGA,MAAM;IACrB,MAAMC,aAAa,GAAG,IAAIC,MAAM,CAAC,CAAQT,KAAAA,EAAAA,GAAG,UAAU,CAAC,CAAA;AACvD,IAAA,MAAMU,WAAW,GACdT,QAAQ,CAACU,MAAM,CAACL,KAAK,CAACE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAkB,IAAI,CAAA;AAClE,IAAA,IAAIE,WAAW,EAAE;AACfT,MAAAA,QAAQ,CAACC,eAAe,CAACC,OAAO,CAACC,SAAS,GAAGM,WAAW,CAAA;AAC1D,KAAC,MAAM;AACL,MAAA,OAAOT,QAAQ,CAACC,eAAe,CAACC,OAAO,CAACC,SAAS,CAAA;AACnD,KAAA;GACD,CAAA;AACDG,EAAAA,QAAQ,EAAE,CAAA;AACVD,EAAAA,KAAK,CAACM,gBAAgB,CAAC,QAAQ,EAAEL,QAAQ,CAAC,CAAA;AAC1C,EAAA,OAAOA,QAAQ,CAAA;AACjB,CAAC,CAAA;;AAED;AACO,IAAIM,iBAA0C,GAAGC,QAAO;AAExD,IAAIC,qBAAqB,GAC9B,OAAO7B,MAAM,KAAK,WAAW,GACzB4B,OAAO,GACP,MAAM;AACJ,EAAA,MAAMP,QAAQ,GAAGR,sBAAsB,CAACiB,cAAc,CAAC,CAAA;AACvDD,EAAAA,qBAAqB,GAAGD,OAAO,CAAA;EAC/BD,iBAAiB,GAAII,KAAgB,IAAK;IACxCC,cAAc,CAACD,KAAK,CAAC,CAAA;AACrBV,IAAAA,QAAQ,EAAE,CAAA;GACX,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
const ThemeProvider = _ref => {
|
|
4
|
+
let {
|
|
5
|
+
themeName,
|
|
6
|
+
children
|
|
7
|
+
} = _ref;
|
|
8
|
+
return /*#__PURE__*/jsx("div", {
|
|
9
|
+
"data-lido-theme": themeName,
|
|
10
|
+
style: {
|
|
11
|
+
display: 'contents'
|
|
12
|
+
},
|
|
13
|
+
children: children
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
const LightThemeProvider = _ref2 => {
|
|
17
|
+
let {
|
|
18
|
+
children
|
|
19
|
+
} = _ref2;
|
|
20
|
+
return /*#__PURE__*/jsx("div", {
|
|
21
|
+
"data-lido-theme": "light",
|
|
22
|
+
style: {
|
|
23
|
+
display: 'contents'
|
|
24
|
+
},
|
|
25
|
+
children: children
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const DarkThemeProvider = _ref3 => {
|
|
29
|
+
let {
|
|
30
|
+
children
|
|
31
|
+
} = _ref3;
|
|
32
|
+
return /*#__PURE__*/jsx("div", {
|
|
33
|
+
"data-lido-theme": "dark",
|
|
34
|
+
style: {
|
|
35
|
+
display: 'contents'
|
|
36
|
+
},
|
|
37
|
+
children: children
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { DarkThemeProvider, LightThemeProvider, ThemeProvider };
|
|
42
|
+
//# sourceMappingURL=theme-provider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-provider.mjs","sources":["../../../../src/theme-css/theme-provider/theme-provider.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from 'react'\nimport { ThemeName } from '../constants'\n\ntype ThemeProviderProps = PropsWithChildren & {\n themeName: ThemeName\n}\n\nexport const ThemeProvider: FC<ThemeProviderProps> = ({\n themeName,\n children,\n}) => (\n <div data-lido-theme={themeName} style={{ display: 'contents' }}>\n {children}\n </div>\n)\n\nexport const LightThemeProvider: FC<PropsWithChildren> = ({ children }) => (\n <div data-lido-theme='light' style={{ display: 'contents' }}>\n {children}\n </div>\n)\n\nexport const DarkThemeProvider: FC<PropsWithChildren> = ({ children }) => (\n <div data-lido-theme='dark' style={{ display: 'contents' }}>\n {children}\n </div>\n)\n"],"names":["ThemeProvider","_ref","themeName","children","_jsx","style","display","LightThemeProvider","_ref2","DarkThemeProvider","_ref3"],"mappings":";;AAOO,MAAMA,aAAqC,GAAGC,IAAA,IAAA;EAAA,IAAC;IACpDC,SAAS;AACTC,IAAAA,QAAAA;AACF,GAAC,GAAAF,IAAA,CAAA;AAAA,EAAA,oBACCG,GAAA,CAAA,KAAA,EAAA;AAAK,IAAA,iBAAA,EAAiBF,SAAU;AAACG,IAAAA,KAAK,EAAE;AAAEC,MAAAA,OAAO,EAAE,UAAA;KAAa;AAAAH,IAAAA,QAAA,EAC7DA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAAA,EACP;AAEM,MAAMI,kBAAyC,GAAGC,KAAA,IAAA;EAAA,IAAC;AAAEL,IAAAA,QAAAA;AAAS,GAAC,GAAAK,KAAA,CAAA;AAAA,EAAA,oBACpEJ,GAAA,CAAA,KAAA,EAAA;AAAK,IAAA,iBAAA,EAAgB,OAAO;AAACC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,OAAO,EAAE,UAAA;KAAa;AAAAH,IAAAA,QAAA,EACzDA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAAA,EACP;AAEM,MAAMM,iBAAwC,GAAGC,KAAA,IAAA;EAAA,IAAC;AAAEP,IAAAA,QAAAA;AAAS,GAAC,GAAAO,KAAA,CAAA;AAAA,EAAA,oBACnEN,GAAA,CAAA,KAAA,EAAA;AAAK,IAAA,iBAAA,EAAgB,MAAM;AAACC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,OAAO,EAAE,UAAA;KAAa;AAAAH,IAAAA,QAAA,EACxDA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAAA;;;;"}
|