hocmai-feedback-widget 0.2.1 → 0.2.3

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.
Files changed (59) hide show
  1. package/README.md +78 -113
  2. package/dist/capture/device-detection.d.ts +13 -0
  3. package/dist/capture/fonts.d.ts +4 -0
  4. package/dist/capture/index.d.ts +14 -0
  5. package/dist/capture/mathjax-fonts.d.ts +5 -0
  6. package/dist/capture/types.d.ts +25 -0
  7. package/dist/ckeditor.mjs +113 -0
  8. package/dist/ckeditor.mjs.map +1 -0
  9. package/dist/components/CkEditor.d.ts +14 -0
  10. package/dist/components/FeedbackWidget.d.ts +13 -1
  11. package/dist/context/FeedbackContext.d.ts +14 -2
  12. package/dist/hocmai-feedback-widget.mjs +7550 -0
  13. package/dist/hocmai-feedback-widget.mjs.map +1 -0
  14. package/dist/index.d.ts +4 -2
  15. package/package.json +39 -29
  16. package/src/App.tsx +147 -58
  17. package/src/capture/device-detection.ts +52 -0
  18. package/src/capture/fonts.ts +34 -0
  19. package/src/capture/index.ts +361 -0
  20. package/src/capture/mathjax-fonts.ts +143 -0
  21. package/src/capture/types.ts +34 -0
  22. package/src/ckeditor.d.ts +14 -0
  23. package/src/components/CkEditor.tsx +130 -0
  24. package/src/components/CropOverlay.tsx +29 -47
  25. package/src/components/FeedbackWidget.tsx +105 -93
  26. package/src/context/FeedbackContext.tsx +49 -9
  27. package/src/index.ts +9 -3
  28. package/src/main.tsx +7 -9
  29. package/src/utils/device.ts +14 -14
  30. package/dist/support-feedback-lib.es.js +0 -3946
  31. package/dist/support-feedback-lib.umd.js +0 -84
  32. package/dist/test-mobile-screenshot.html +0 -211
  33. package/dist/test-simple-capture.html +0 -107
  34. package/dist/utils/screenshot/background-renderer.d.ts +0 -3
  35. package/dist/utils/screenshot/canvas-renderer.d.ts +0 -9
  36. package/dist/utils/screenshot/cleanup.d.ts +0 -3
  37. package/dist/utils/screenshot/device-detection.d.ts +0 -16
  38. package/dist/utils/screenshot/element-collector.d.ts +0 -10
  39. package/dist/utils/screenshot/image-renderer.d.ts +0 -21
  40. package/dist/utils/screenshot/performance.d.ts +0 -3
  41. package/dist/utils/screenshot/svg-renderer.d.ts +0 -24
  42. package/dist/utils/screenshot/text-renderer.d.ts +0 -23
  43. package/dist/utils/screenshot/types.d.ts +0 -35
  44. package/dist/utils/screenshot.d.ts +0 -9
  45. package/dist/vite.svg +0 -1
  46. package/src/App.css +0 -42
  47. package/src/assets/react.svg +0 -1
  48. package/src/index.css +0 -68
  49. package/src/utils/screenshot/background-renderer.ts +0 -54
  50. package/src/utils/screenshot/canvas-renderer.ts +0 -343
  51. package/src/utils/screenshot/cleanup.ts +0 -32
  52. package/src/utils/screenshot/device-detection.ts +0 -90
  53. package/src/utils/screenshot/element-collector.ts +0 -134
  54. package/src/utils/screenshot/image-renderer.ts +0 -148
  55. package/src/utils/screenshot/performance.ts +0 -57
  56. package/src/utils/screenshot/svg-renderer.ts +0 -149
  57. package/src/utils/screenshot/text-renderer.ts +0 -212
  58. package/src/utils/screenshot/types.ts +0 -40
  59. package/src/utils/screenshot.ts +0 -83
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hocmai-feedback-widget.mjs","sources":["../node_modules/ua-parser-js/src/main/ua-parser.mjs","../src/utils/device.ts","../node_modules/@zumer/snapdom/dist/snapdom.mjs","../node_modules/modern-screenshot/dist/index.mjs","../src/capture/types.ts","../src/capture/device-detection.ts","../src/capture/fonts.ts","../src/capture/mathjax-fonts.ts","../src/capture/index.ts","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/crop.js","../node_modules/lucide-react/dist/esm/icons/hash.js","../node_modules/lucide-react/dist/esm/icons/image.js","../node_modules/lucide-react/dist/esm/icons/loader-circle.js","../node_modules/lucide-react/dist/esm/icons/message-square-plus.js","../node_modules/lucide-react/dist/esm/icons/monitor.js","../node_modules/lucide-react/dist/esm/icons/text-align-start.js","../node_modules/lucide-react/dist/esm/icons/x.js","../src/components/CropOverlay.tsx","../src/components/FeedbackWidget.tsx","../src/context/FeedbackContext.tsx"],"sourcesContent":["// Generated ESM version of ua-parser-js\n// DO NOT EDIT THIS FILE!\n// Source: /src/main/ua-parser.js\n\n/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v2.0.10\n Copyright © 2012-2026 Faisal Salman <f@faisalman.com>\n AGPLv3 License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://uaparser.dev\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n/* jshint esversion: 6 */ \n/* globals window */\n\n\n \n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '2.0.10',\n UA_MAX_LENGTH = 500,\n USER_AGENT = 'user-agent',\n EMPTY = '',\n UNKNOWN = '?',\n TYPEOF = {\n FUNCTION : 'function',\n OBJECT : 'object',\n STRING : 'string',\n UNDEFINED : 'undefined'\n },\n\n // properties\n BROWSER = 'browser',\n CPU = 'cpu',\n DEVICE = 'device',\n ENGINE = 'engine',\n OS = 'os',\n RESULT = 'result',\n\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n MAJOR = 'major',\n MODEL = 'model',\n\n // device types\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n XR = 'xr',\n EMBEDDED = 'embedded',\n\n // browser types\n FETCHER = 'fetcher',\n INAPP = 'inapp',\n\n // client hints\n BRANDS = 'brands',\n FORMFACTORS = 'formFactors',\n FULLVERLIST = 'fullVersionList',\n PLATFORM = 'platform',\n PLATFORMVER = 'platformVersion',\n BITNESS = 'bitness',\n CH = 'sec-ch-ua',\n CH_FULL_VER_LIST= CH + '-full-version-list',\n CH_ARCH = CH + '-arch',\n CH_BITNESS = CH + '-' + BITNESS,\n CH_FORM_FACTORS = CH + '-form-factors',\n CH_MOBILE = CH + '-' + MOBILE,\n CH_MODEL = CH + '-' + MODEL,\n CH_PLATFORM = CH + '-' + PLATFORM,\n CH_PLATFORM_VER = CH_PLATFORM + '-version',\n CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS],\n\n // device vendors\n AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n HONOR = 'Honor',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n NVIDIA = 'Nvidia',\n ONEPLUS = 'OnePlus',\n OPPO = 'OPPO',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n\n // browsers\n CHROME = 'Chrome',\n CHROMIUM = 'Chromium',\n CHROMECAST = 'Chromecast',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n OPERA = 'Opera',\n FACEBOOK = 'Facebook',\n SOGOU = 'Sogou',\n\n PREFIX_MOBILE = 'Mobile ',\n SUFFIX_BROWSER = ' Browser',\n\n // os\n WINDOWS = 'Windows';\n \n var isWindow = typeof window !== TYPEOF.UNDEFINED,\n NAVIGATOR = (isWindow && window.navigator) ? \n window.navigator : \n undefined,\n NAVIGATOR_UADATA = (NAVIGATOR && NAVIGATOR.userAgentData) ? \n NAVIGATOR.userAgentData : \n undefined;\n\n ///////////\n // Helper\n //////////\n\n var extend = function (defaultRgx, extensions) {\n var mergedRgx = {};\n var extraRgx = extensions;\n if (!isExtensions(extensions)) {\n extraRgx = {};\n for (var i in extensions) {\n for (var j in extensions[i]) {\n extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);\n }\n }\n }\n for (var k in defaultRgx) {\n mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];\n }\n return mergedRgx;\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 if (typeof str1 === TYPEOF.OBJECT && str1.length > 0) {\n for (var i in str1) {\n if (lowerize(str2) == lowerize(str1[i])) return true;\n }\n return false;\n }\n return isString(str1) ? lowerize(str2) == lowerize(str1) : false;\n },\n isExtensions = function (obj, deep) {\n for (var prop in obj) {\n return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);\n }\n },\n isString = function (val) {\n return typeof val === TYPEOF.STRING;\n },\n itemListToArray = function (header) {\n if (!header) return undefined;\n var arr = [];\n var tokens = normalizeHeaderValue(header).split(',');\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(';') > -1) {\n var token = trim(tokens[i]).split(';v=');\n arr[i] = { brand : token[0], version : token[1] };\n } else {\n arr[i] = trim(tokens[i]);\n }\n }\n return arr;\n },\n lowerize = function (str) {\n return isString(str) ? str.toLowerCase() : str;\n },\n majorize = function (version) {\n return isString(version) ? strip(/[^\\d\\.]/g, version).split('.')[0] : undefined;\n },\n normalizeHeaderValue = function (str) {\n return isString(str) ? trim(strip(/\\\\?\\\"/g, str), UA_MAX_LENGTH) : undefined;\n },\n setProps = function (arr) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n var propName = arr[i];\n if (typeof propName == TYPEOF.OBJECT && propName.length == 2) {\n this[propName[0]] = propName[1];\n } else {\n this[propName] = undefined;\n }\n }\n return this;\n },\n strip = function (pattern, str) {\n return isString(str) ? str.replace(pattern, EMPTY) : str;\n },\n trim = function (str, len) {\n str = strip(/^\\s\\s*/, String(str));\n return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n if(!ua || !arrays) return;\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 === TYPEOF.OBJECT && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == TYPEOF.FUNCTION) {\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 q[1] FUNCTION or REGEX\n if (typeof q[1] === TYPEOF.FUNCTION && !(q[1].exec && q[1].test)) {\n if (q.length > 3) {\n this[q[0]] = match ? q[1].apply(this, q.slice(2)) : undefined;\n } else {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n }\n } else {\n if (q.length == 3) {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n } else if (q.length > 4) {\n this[q[0]] = match ? q[3].apply(this, [match.replace(q[1], q[2])].concat(q.slice(4))) : undefined;\n }\n }\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strTest = function (str, map) {\n return map.test.test(str) ? map.ifTrue : map.ifFalse;\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] === TYPEOF.OBJECT && 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 var windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.51': '3.51',\n 'NT 4.0': '4.0',\n '2000' : ['5.0', '5.01'],\n 'XP' : ['5.1', '5.2'],\n 'Vista' : '6.0',\n '7' : '6.1',\n '8' : '6.2',\n '8.1' : '6.3',\n '10' : ['6.4', '10.0'],\n 'NT' : ''\n },\n \n formFactorsMap = {\n 'embedded' : 'Automotive',\n 'mobile' : 'Mobile',\n 'tablet' : ['Tablet', 'EInk'],\n 'smarttv' : 'TV',\n 'wearable' : 'Watch',\n 'xr' : ['VR', 'XR'],\n '?' : ['Desktop', 'Unknown'],\n '*' : undefined\n },\n\n browserHintsMap = {\n 'Chrome' : 'Google Chrome',\n 'Edge' : 'Microsoft Edge',\n 'Edge WebView2' : 'Microsoft Edge WebView2',\n 'Chrome WebView': 'Android WebView',\n 'Chrome Headless':'HeadlessChrome',\n 'Huawei Browser': 'HuaweiBrowser',\n 'MIUI Browser' : 'Miui Browser',\n 'Opera Mobi' : 'OperaMobile',\n 'Yandex' : 'YaBrowser'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var defaultRegexes = {\n\n browser : [[\n\n // Most common regardless engine\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n /webview.+edge\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, EDGE+' WebView'], [TYPE, INAPP]], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i \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/LG Browser/Otter/qutebrowser/Dooble/Palemoon/HiBrowser\n /(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:hi|lg |ovi|qute)browser|palemoon)\\/v?([-\\w\\.]+)/i,\n // Atlas/Rekonq/Puffin/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(brave)(?: chrome)?\\/([\\d\\.]+)/i, // Brave\n /(aloha|heytap|ovi|115|surf|qwant)browser\\/([\\d\\.]+)/i, // Aloha/HeyTap/Ovi/115/Surf\n /(qwant)(?:ios|mobile)\\/([\\d\\.]+)/i, // Qwant\n /(ecosia|weibo)(?:__| \\w+@)([\\d\\.]+)/i // Ecosia/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| ucpc)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UCBrowser']], [\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 + SUFFIX_BROWSER]], [\n /(av(?:ast|g|ira))\\/([\\w\\.]+)/i // Avast/AVG/Avira Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [\n /norton\\/([\\w\\.]+)/i // Norton Private Browser\n ], [VERSION, [NAME, 'Norton Private' + SUFFIX_BROWSER]], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n / mms\\/([\\w\\.]+)$/i // Opera Neon\n ], [VERSION, [NAME, OPERA+' Neon']], [\n / opt\\/([\\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, PREFIX_MOBILE + 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/VivoBrowser/PicoBrowser\n / HBPC\\/([\\w\\.]+)/ // Huawei Browser\n ], [VERSION, [NAME, HUAWEI + SUFFIX_BROWSER]], [\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|luakit|rekonq|steam(?= (clie|tenf|gameo)))/i // LieBao Browser/Luakit/Rekonq/Steam\n ], [NAME], [\n /ome\\/([\\w\\.]+).+(iron(?= saf)|360(?=[es]e$))/i // Iron / 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, [TYPE, INAPP]], [\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 /(bing)(?:web|sapphire)\\/([\\w\\.]+)/i, // Bing\n /(instagram|snapchat|klarna)[\\/ ]([-\\w\\.]+)/i // Instagram/Snapchat/Klarna\n ], [NAME, VERSION, [TYPE, INAPP]], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [\n /(?:musical_ly|trill)(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME, [TYPE, INAPP]], [\n /(zalo(?:app)?)[\\/\\sa-z]*([\\w\\.-]+)/i // Zalo \n ], [[NAME, /(.+)/, 'Zalo'], VERSION, [TYPE, INAPP]], [\n\n /(chromium)[\\/ ]([-\\w\\.]+)/i // Chromium\n ], [NAME, VERSION], [\n\n /ome-(lighthouse)$/i // Chrome Lighthouse\n ], [NAME, [TYPE, FETCHER]], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n /wv\\).+chrome\\/([\\w\\.]+).+edgw\\//i // Edge WebView2\n ], [VERSION, [NAME, EDGE+' WebView2'], [TYPE, INAPP]], [\n\n /; wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION, [TYPE, INAPP]], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [\n\n /chrome\\/([\\w\\.]+) mobile/i // Chrome Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\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 // Safari Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [\n /iphone .*mobile(?:\\/\\w+ | ?)safari/i\n ], [[NAME, PREFIX_MOBILE + 'Safari']], [\n /version\\/([\\w\\.\\,]+) .*(safari)/i // Safari\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, '1']], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i // Firefox Mobile\n ], [[NAME, PREFIX_MOBILE + FIREFOX], VERSION], [\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|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+)|[0-4][\\w\\.]+(?!.+compatible))/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, /[^\\d\\.]+./, EMPTY]]\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 / sun4\\w[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n /\\b(avr32|ia64(?=;)|68k(?=\\))|\\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\\b|pa-risc)/i,\n /((ppc|powerpc)(64)?)( mac|;|\\))/i, // PowerPC\n /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i // Alpha\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n /mc680.0/i\n ], [[ARCHITECTURE, '68k']], [\n /winnt.+\\[axp/i\n ], [[ARCHITECTURE, 'alpha']]\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]|browser)[-\\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 /\\b(?:ios|apple\\w+)\\/.+[\\(\\/](ipad)/i, // iPad\n /\\b(ipad)[\\d,]*[;\\] ].+(mac |i(pad)?)os/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][\\dc][adnt]?)\\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(?:xiao)?((?:red)?mi[-_ ]?pad[\\w- ]*)(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n // Xiaomi Redmi / POCO / Black Shark / Qin\n /oid[^\\)]+; (redmi[\\-_ ]?(?:note|k)?[\\w_ ]+|m?[12]\\d[01]\\d\\w{3,6}|poco[\\w ]+|(shark )?\\w{3}-[ah]0|qin ?[1-3](s\\+|ultra| pro)?)( bui|; wv|\\))/i,\n // Xiaomi Mi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\\d{0,2}\\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\\))/i,\n /; ([\\w ]+) miui\\/v?\\d/i\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\n // OnePlus\n /droid.+; (cph2[3-6]\\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\\d|p[g-l]\\w[1m]10)\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, ONEPLUS], [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' : ['203', '304', '403', '404', '413', '415'], '*' : OPPO }], [TYPE, TABLET]], [\n\n // BLU\n /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\\w\\+ ]*)(?: bui|\\))/i // Vivo series\n ], [MODEL, [VENDOR, 'BLU'], [TYPE, MOBILE]], [ \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 // 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 /lenovo[-_ ]?([-\\w ]+?)(?: bui|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ]([\\w\\s]+)(\\)| bui)/i,\n /((?:moto(?! 360)[-\\w\\(\\) ]+|xt\\d{3,4}[cgkosw\\+]?[-\\d]*|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 /\\b(?: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|webos))(\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\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\\. ]*?))( bui|\\)|;|\\/)/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 // Google Pixel\n /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\\d ]*a?( pro)?( xl)?( fold)?( \\(5g\\))?)( bui|\\))/i\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n /(google) (pixelbook( go)?)/i\n ], [VENDOR, MODEL], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-\\w\\w\\d\\d)(?= 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 // 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 /(?:blackberry|\\(bb10;) (\\w+)/i\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 /tcl (xess p17aa)/i,\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(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n /droid [\\w\\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, MOBILE]], [\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(in)?(0(15|59|6[35])|142)p?)/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 // Blackview\n /blackview ([-\\w ]+)( b|\\))/i,\n /; (bv\\d{4}[-\\w ]*)( b|\\))/i\n ], [MODEL, [VENDOR, 'Blackview'], [TYPE, MOBILE]], [\n\n // HMD\n /; (n159v)/i\n ], [MODEL, [VENDOR, 'HMD'], [TYPE, MOBILE]], [\n\n // T-Mobile\n /((revvl[ \\w\\+]+|tm(?:rv|af)\\w*[45]g(?:tb)?))( b|\\))/i\n ], [MODEL, [TYPE, strTest, { 'test': /ta?b/i, 'ifTrue': TABLET, 'ifFalse': MOBILE }], [VENDOR, 'T-Mobile']], [\n\n // MIXED\n /(imo) (tab \\w+)/i, // IMO\n /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i // Infinix XPad / Tecno\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan\n // BLU/Coolpad/CUBOT/HMD/IMO/Infinix/Lava/OnePlus/TCL/Wiko\n /; (blu|coolpad|cubot|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([-\\w\\+ ]+?)(?: bui|\\)|; r)/i,\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(oppo) ?([\\w ]+) bui/i, // OPPO\n /(hisense) ([ehv][\\w ]+)\\)/i, // Hisense\n /droid[^;]+; (philips)[_ ]([sv-x][\\d]{3,4}[xz]?)/i // Philips\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 ], [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 /((?: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.+; ([c6]+|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 /(philips)[\\w ]+tv/i, // Philips\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(vizio)(?: |.+model\\/)(\\w+-\\w+)/i, // Vizio\n /tcast.+(lg)e?. ([-\\w]+)/i // LG SmartTV\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/chromecast/i // Google Chromecast Third Generation\n ], [[MODEL, CHROMECAST+' Third Generation'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/([^/]*)/i // Google Chromecast with specific device type\n ], [[MODEL, /^/, 'Chromecast '], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /fuchsia.*crkey/i // Google Chromecast Nest Hub\n ], [[MODEL, CHROMECAST+' Nest Hub'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast, Linux-based or unknown\n ], [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /(portaltv)/i // Facebook Portal TV\n ], [MODEL, [VENDOR, FACEBOOK], [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, /.+\\/(\\w+)/, '$1', strMapper, {'LG':'lge'}], [MODEL, trim], [TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\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 /(ouya)/i, // Ouya\n /(nintendo) (\\w+)/i, // Nintendo\n /(retroid) (pocket ([^\\)]+))/i, // Retroid Pocket\n /(valve).+(steam deck)/i,\n /droid.+; ((shield|rgcube|gr0006))( bui|\\))/i // Nvidia Portable/Anbernic/Logitech\n ], [[VENDOR, strMapper, { 'Nvidia': 'Shield', 'Anbernic': 'RGCUBE', 'Logitech': 'GR0006' }], MODEL, [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|xiaomi) ((pixel |zen)?watch[\\w ]*)( bui|\\))/i // Asus ZenWatch / LG Watch / Pixel Watch / Xiaomi 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, XR]], [\n /(pico) ([\\w ]+) os\\d/i // Pico\n ], [VENDOR, MODEL, [TYPE, XR]], [\n /(quest( \\d| pro)?s?).+vr/i // Meta Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]], [\n /mobile vr; rv.+firefox/i // Unidentifiable VR device using Firefox Reality / Wolvic\n ], [[TYPE, XR]], [\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 // Unidentifiable embedded device using Windows IoT\n ], [[TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid.+; ([\\w- ]+) (4k|android|smart|google)[- ]?tv/i // Unidentifiable SmartTV\n ], [MODEL, [TYPE, SMARTTV]], [\n /\\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\\w ]+safari)\\b/i\n ], [[TYPE, SMARTTV]], [\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew|; hmsc).+?(mobile|vr|\\d) safari/i\n ], [MODEL, [TYPE, strMapper, { 'mobile' : 'Mobile', 'xr' : 'VR', '*' : 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|dillo)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links/Dillo\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 /(windows nt) (6\\.[23]); arm/i // Windows RT\n ], [[NAME, /N/, 'R'], [VERSION, strMapper, windowsVersionMap]], [\n /(windows (?:phone|mobile|iot))(?: os)?[\\/ ]?([\\d\\.]*( se)?)/i, // Windows IoT/Mobile/Phone\n // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11\n /(windows)[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i\n ], [NAME, VERSION], [\n /windows nt ?([\\d\\.\\)]*)(?!.+xbox)/i,\n /\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d\\.;]*)/i\n ], [[VERSION, /(;|\\))/g, '', strMapper, windowsVersionMap], [NAME, WINDOWS]], [\n /(windows ce)\\/?([\\d\\.]*)/i // Windows CE\n ], [NAME, VERSION], [\n\n // iOS/macOS\n /[adehimnop]{4,7}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv|ios(?=.+ip(?:ad|hone)|.+apple ?tv)|ip(?:ad|hone)(?: |.+i(?:pad)?)os|apple ?tv.+ios)[\\/ ]([\\w\\.]+)/i,\n /\\btvos ?([\\w\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i // Mac OS\n ], [[NAME, 'macOS'], [VERSION, /_/g, '.']], [\n\n // Google Chromecast\n /android ([\\d\\.]+).*crkey/i // Google Chromecast, Android-based\n ], [VERSION, [NAME, CHROMECAST + ' Android']], [\n /fuchsia.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Fuchsia-based\n ], [VERSION, [NAME, CHROMECAST + ' Fuchsia']], [\n /crkey\\/([\\d\\.]+).*devicetype\\/smartspeaker/i // Google Chromecast, Linux-based Smart Speaker\n ], [VERSION, [NAME, CHROMECAST + ' SmartSpeaker']], [\n /linux.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Legacy Linux-based\n ], [VERSION, [NAME, CHROMECAST + ' Linux']], [\n /crkey\\/([\\d\\.]+)/i // Google Chromecast, unknown\n ], [VERSION, [NAME, CHROMECAST]], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86)/i // Android-x86\n ], [VERSION, NAME], [ \n /(ubuntu) ([\\w\\.]+) like android/i // Ubuntu Touch\n ], [[NAME, /(.+)/, '$1 Touch'], VERSION], [\n /(harmonyos)[\\/ ]?([\\d\\.]*)/i, // HarmonyOS\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)\\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[;\\w ]*|tablet|tv|[^\\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\\w\\.]+)\\).+gecko\\//i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i, // WebOS\n /webos(?:[ \\/]?|\\.tv-20(?=2[2-9]))(\\d[\\d\\.]*)/i\n ], [VERSION, [NAME, 'webOS']], [\n /web0s;.+?(?:chr[o0]me|safari)\\/(\\d+)/i\n // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine\n ], [[VERSION, strMapper, {'25':'120','24':'108','23':'94','22':'87','6':'79','5':'68','4':'53','3':'38','2':'538','1':'537','*':'TV'}], [NAME, 'webOS']], [ \n /watch(?: ?os[,\\/ ]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google ChromeOS\n /cros [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [VERSION, [NAME, 'Chrome OS']],[\n\n // Smart TVs\n /kepler ([\\w\\.]+); (aft|aeo)/i // Vega OS\n ], [VERSION, [NAME, 'Vega OS']],[\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) (\\w+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n /(pico) .+os([\\w\\.]+)/i, // Pico\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /linux.+(mint)[\\/\\(\\) ]?([\\w\\.]*)/i, // Mint\n /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\\d\\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /\\b(aix)[; ]([1-9\\.]{0,4})/i, // AIX\n /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\\w*| ?)([\\w\\.]*)/i, // Hurd/Linux/MorphOS\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) ?(r\\d)?/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\d\\.]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /\\b(beos|os\\/2|amigaos|openvms|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Factories\n ////////////////\n\n var defaultProps = (function () {\n var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};\n setProps.call(props.init, [\n [BROWSER, [NAME, VERSION, MAJOR, TYPE]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [TYPE, MODEL, VENDOR]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n setProps.call(props.isIgnore, [\n [BROWSER, [VERSION, MAJOR]],\n [ENGINE, [VERSION]],\n [OS, [VERSION]]\n ]);\n setProps.call(props.isIgnoreRgx, [\n [BROWSER, / ?browser$/i],\n [OS, / ?os$/i]\n ]);\n setProps.call(props.toString, [\n [BROWSER, [NAME, VERSION]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [VENDOR, MODEL]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n return props;\n })();\n\n var createIData = function (item, itemType) {\n\n var init_props = defaultProps.init[itemType],\n is_ignoreProps = defaultProps.isIgnore[itemType] || 0,\n is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0,\n toString_props = defaultProps.toString[itemType] || 0;\n\n function IData () {\n setProps.call(this, init_props);\n }\n\n IData.prototype.getItem = function () {\n return item;\n };\n\n IData.prototype.withClientHints = function () {\n\n // nodejs / non-client-hints browsers\n if (!NAVIGATOR_UADATA) {\n return item\n .parseCH()\n .get();\n }\n\n // browsers based on chromium 85+\n return NAVIGATOR_UADATA\n .getHighEntropyValues(CH_ALL_VALUES)\n .then(function (res) {\n return item\n .setCH(new UACHData(res, false))\n .parseCH()\n .get();\n });\n };\n\n IData.prototype.withFeatureCheck = function () {\n return item.detectFeature().get();\n };\n\n if (itemType != RESULT) {\n IData.prototype.is = function (strToCheck) {\n var is = false;\n for (var i in this) {\n if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {\n is = true;\n if (strToCheck != TYPEOF.UNDEFINED) break;\n } else if (strToCheck == TYPEOF.UNDEFINED && is) {\n is = !is;\n break;\n }\n }\n return is;\n };\n IData.prototype.toString = function () {\n var str = EMPTY;\n for (var i in toString_props) {\n if (typeof(this[toString_props[i]]) !== TYPEOF.UNDEFINED) {\n str += (str ? ' ' : EMPTY) + this[toString_props[i]];\n }\n }\n return str || TYPEOF.UNDEFINED;\n };\n }\n\n IData.prototype.then = function (cb) { \n var that = this;\n var IDataResolve = function () {\n for (var prop in that) {\n if (that.hasOwnProperty(prop)) {\n this[prop] = that[prop];\n }\n }\n };\n IDataResolve.prototype = {\n is : IData.prototype.is,\n toString : IData.prototype.toString,\n withClientHints : IData.prototype.withClientHints,\n withFeatureCheck : IData.prototype.withFeatureCheck\n };\n var resolveData = new IDataResolve();\n cb(resolveData);\n return resolveData;\n };\n\n return new IData();\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n function UACHData (uach, isHttpUACH) {\n uach = uach || {};\n setProps.call(this, CH_ALL_VALUES);\n if (isHttpUACH) {\n setProps.call(this, [\n [BRANDS, itemListToArray(uach[CH])],\n [FULLVERLIST, itemListToArray(uach[CH_FULL_VER_LIST])],\n [MOBILE, /\\?1/.test(uach[CH_MOBILE])],\n [MODEL, normalizeHeaderValue(uach[CH_MODEL])],\n [PLATFORM, normalizeHeaderValue(uach[CH_PLATFORM])],\n [PLATFORMVER, normalizeHeaderValue(uach[CH_PLATFORM_VER])],\n [ARCHITECTURE, normalizeHeaderValue(uach[CH_ARCH])],\n [FORMFACTORS, itemListToArray(uach[CH_FORM_FACTORS])],\n [BITNESS, normalizeHeaderValue(uach[CH_BITNESS])]\n ]);\n } else {\n for (var prop in uach) {\n if(this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];\n }\n }\n }\n\n function UAItem (itemType, ua, rgxMap, uaCH) {\n setProps.call(this, [\n ['itemType', itemType],\n ['ua', ua],\n ['uaCH', uaCH],\n ['rgxMap', rgxMap],\n ['data', createIData(this, itemType)]\n ]);\n return this;\n }\n\n UAItem.prototype.get = function (prop) {\n if (!prop) return this.data;\n return this.data.hasOwnProperty(prop) ? this.data[prop] : undefined;\n };\n\n UAItem.prototype.set = function (prop, val) {\n this.data[prop] = val;\n return this;\n };\n\n UAItem.prototype.setCH = function (ch) {\n this.uaCH = ch;\n return this;\n };\n\n UAItem.prototype.detectFeature = function () {\n if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {\n switch (this.itemType) {\n case BROWSER:\n // Brave-specific detection\n if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) {\n this.set(NAME, 'Brave');\n }\n break;\n case DEVICE:\n // Chrome-specific detection: check for 'mobile' value of navigator.userAgentData\n if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (this.get(MODEL) == 'Macintosh' && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {\n this.set(MODEL, 'iPad')\n .set(TYPE, TABLET);\n }\n break;\n case OS:\n // Chrome-specific detection: check for 'platform' value of navigator.userAgentData\n if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {\n this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);\n }\n break;\n case RESULT:\n var data = this.data;\n var detect = function (itemType) {\n return data[itemType]\n .getItem()\n .detectFeature()\n .get();\n };\n this.set(BROWSER, detect(BROWSER))\n .set(CPU, detect(CPU))\n .set(DEVICE, detect(DEVICE))\n .set(ENGINE, detect(ENGINE))\n .set(OS, detect(OS));\n }\n }\n return this;\n };\n\n UAItem.prototype.parseUA = function () {\n if (this.itemType != RESULT) {\n rgxMapper.call(this.data, this.ua, this.rgxMap);\n }\n switch (this.itemType) {\n case BROWSER:\n this.set(MAJOR, majorize(this.get(VERSION)));\n break;\n case OS:\n // Since iOS 26, Safari's UA reports the OS version as frozen at 18:\n // https://webkit.org/blog/17333/webkit-features-in-safari-26-0/#update-to-ua-string\n if (this.get(NAME) == 'iOS' && this.get(VERSION)) {\n // Only perform this if iOS version is 18/19\n if (/^1[89][^\\d]/.exec(this.get(VERSION))) {\n // Based on the assumption that \"iOS\" version is tightly coupled with \"Safari\" version\n var realVersion = /\\) Version\\/((\\d+)[\\d\\.]*)/.exec(this.ua);\n if (realVersion && parseInt(realVersion[2], 10) >= 26) {\n // iOS version = Safari version\n this.set(VERSION, realVersion[1]);\n }\n }\n }\n break;\n }\n return this;\n };\n\n UAItem.prototype.parseCH = function () {\n var uaCH = this.uaCH,\n rgxMap = this.rgxMap;\n\n switch (this.itemType) {\n case BROWSER:\n case ENGINE:\n var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;\n if (brands) {\n for (var i=0; i<brands.length; i++) {\n var brandName = brands[i].brand || brands[i],\n brandVersion = brands[i].version;\n if (this.itemType == BROWSER && \n !/not.a.brand/i.test(brandName) && \n (!prevName || \n (/Chrom/.test(prevName) && brandName != CHROMIUM) || \n (prevName == EDGE && /WebView2/.test(brandName))\n )) {\n brandName = strMapper(brandName, browserHintsMap);\n prevName = this.get(NAME);\n if (!(prevName && !/Chrom/.test(prevName) && /Chrom/.test(brandName))) {\n this.set(NAME, brandName)\n .set(VERSION, brandVersion)\n .set(MAJOR, majorize(brandVersion));\n }\n prevName = brandName;\n }\n if (this.itemType == ENGINE && brandName == CHROMIUM) {\n this.set(VERSION, brandVersion);\n }\n }\n }\n break;\n case CPU:\n var archName = uaCH[ARCHITECTURE];\n if (archName) {\n if (archName && uaCH[BITNESS] == '64') archName += '64';\n rgxMapper.call(this.data, archName + ';', rgxMap);\n }\n break;\n case DEVICE:\n if (uaCH[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n if (uaCH[MODEL]) {\n this.set(MODEL, uaCH[MODEL]);\n if (!this.get(TYPE) || !this.get(VENDOR)) {\n var reParse = {};\n rgxMapper.call(reParse, 'droid 9; ' + uaCH[MODEL] + ')', rgxMap);\n if (!this.get(TYPE) && !!reParse.type) {\n this.set(TYPE, reParse.type);\n }\n if (!this.get(VENDOR) && !!reParse.vendor) {\n this.set(VENDOR, reParse.vendor);\n }\n }\n }\n if (uaCH[FORMFACTORS]) {\n var ff;\n if (typeof uaCH[FORMFACTORS] !== 'string') {\n var idx = 0;\n while (!ff && idx < uaCH[FORMFACTORS].length) {\n ff = strMapper(uaCH[FORMFACTORS][idx++], formFactorsMap);\n }\n } else {\n ff = strMapper(uaCH[FORMFACTORS], formFactorsMap);\n }\n this.set(TYPE, ff);\n }\n break;\n case OS:\n var osName = uaCH[PLATFORM];\n if(osName) {\n var osVersion = uaCH[PLATFORMVER];\n if (osName == WINDOWS) osVersion = (parseInt(majorize(osVersion), 10) >= 13 ? '11' : '10');\n this.set(NAME, osName)\n .set(VERSION, osVersion);\n }\n // Xbox-Specific Detection\n if (this.get(NAME) == WINDOWS && uaCH[MODEL] == 'Xbox') {\n this.set(NAME, 'Xbox')\n .set(VERSION, undefined);\n } \n break;\n case RESULT:\n var data = this.data;\n var parse = function (itemType) {\n return data[itemType]\n .getItem()\n .setCH(uaCH)\n .parseCH()\n .get();\n };\n this.set(BROWSER, parse(BROWSER))\n .set(CPU, parse(CPU))\n .set(DEVICE, parse(DEVICE))\n .set(ENGINE, parse(ENGINE))\n .set(OS, parse(OS));\n }\n return this;\n };\n\n function UAParser (ua, extensions, headers) {\n\n if (typeof ua === TYPEOF.OBJECT) {\n if (isExtensions(ua, true)) {\n if (typeof extensions === TYPEOF.OBJECT) {\n headers = extensions; // case UAParser(extensions, headers) \n }\n extensions = ua; // case UAParser(extensions)\n } else {\n headers = ua; // case UAParser(headers)\n extensions = undefined;\n }\n ua = undefined;\n } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {\n headers = extensions; // case UAParser(ua, headers)\n extensions = undefined;\n }\n\n if (headers) {\n if (typeof headers.append === TYPEOF.FUNCTION) {\n // Convert Headers object into a plain object\n var kv = {};\n headers.forEach(function (v, k) { kv[String(k).toLowerCase()] = v; });\n headers = kv;\n } else {\n // Normalize headers field name into lowercase\n var normalized = {};\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n normalized[String(header).toLowerCase()] = headers[header];\n }\n }\n headers = normalized;\n }\n }\n \n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions, headers).getResult();\n }\n\n var userAgent = typeof ua === TYPEOF.STRING ? ua : // Passed user-agent string\n (headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers\n ((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent\n EMPTY)), // empty string\n\n httpUACH = new UACHData(headers, true),\n regexMap = defaultRegexes,\n\n createItemFunc = function (itemType) {\n if (itemType == RESULT) {\n return function () {\n return new UAItem(itemType, userAgent, regexMap, httpUACH)\n .set('ua', userAgent)\n .set(BROWSER, this.getBrowser())\n .set(CPU, this.getCPU())\n .set(DEVICE, this.getDevice())\n .set(ENGINE, this.getEngine())\n .set(OS, this.getOS())\n .get();\n };\n } else {\n return function () {\n return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)\n .parseUA()\n .get();\n };\n }\n };\n \n // public methods\n setProps.call(this, [\n ['getBrowser', createItemFunc(BROWSER)],\n ['getCPU', createItemFunc(CPU)],\n ['getDevice', createItemFunc(DEVICE)],\n ['getEngine', createItemFunc(ENGINE)],\n ['getOS', createItemFunc(OS)],\n ['getResult', createItemFunc(RESULT)],\n ['getUA', function () { return userAgent; }],\n ['setUA', function (ua) {\n if (isString(ua)) userAgent = trim(ua, UA_MAX_LENGTH);\n return this;\n }],\n ['useExtension', function (exts) {\n if (exts) regexMap = extend(regexMap, exts);\n return this;\n }]\n ])\n .setUA(userAgent)\n .useExtension(extensions);\n\n return this;\n }\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);\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 export {UAParser};","import { UAParser } from 'ua-parser-js';\n\nexport interface DeviceInfo {\n os: string;\n osVersion: string;\n browser: string;\n browserVersion: string;\n deviceType: string;\n}\n\nexport const getDeviceInfo = (): DeviceInfo => {\n const parser = new UAParser();\n const result = parser.getResult();\n\n return {\n os: result.os.name || 'unknown',\n osVersion: result.os.version || 'unknown',\n browser: result.browser.name || 'unknown',\n browserVersion: result.browser.version || 'unknown',\n deviceType: result.device.type || 'desktop',\n };\n};\n","/*\n* SnapDOM\n* v2.12.9\n* Author: Juan Martin Muda\n* License: MIT\n*/\nvar Ho=Object.defineProperty;var q=(t,e)=>()=>(t&&(e=t(t=0)),e);var Rt=(t,e)=>{for(var n in e)Ho(t,n,{get:e[n],enumerable:!0})};function Xe(t){if(t===!0)return\"soft\";if(t===!1)return\"disabled\";if(typeof t==\"string\"){let e=t.toLowerCase().trim();if(e===\"auto\")return\"auto\";if(e===\"full\")return\"full\";if(e===\"soft\"||e===\"disabled\")return e}return\"soft\"}function Xt(t=\"soft\"){switch(A.session.__counterEpoch=(A.session.__counterEpoch||0)+1,t){case\"auto\":{A.session.styleMap=new Map,A.session.nodeMap=new Map;return}case\"soft\":{A.session.styleMap=new Map,A.session.nodeMap=new Map,A.session.styleCache=new WeakMap;return}case\"full\":return;case\"disabled\":{A.session.styleMap=new Map,A.session.nodeMap=new Map,A.session.styleCache=new WeakMap,A.computedStyle=new WeakMap,A.measureHints=new WeakMap,A.baseStyle=new D(50),A.defaultStyle=new D(30),A.image=new D(100),A.background=new D(100),A.resource=new D(150),A.font=new Set;return}default:{A.session.styleMap=new Map,A.session.nodeMap=new Map,A.session.styleCache=new WeakMap;return}}}var D,A,j=q(()=>{D=class extends Map{constructor(e=100,...n){super(...n),this._maxSize=e}set(e,n){if(this.size>=this._maxSize&&!this.has(e)){let o=this.keys().next().value;o!==void 0&&this.delete(o)}return super.set(e,n)}},A={image:new D(100),background:new D(100),resource:new D(150),defaultStyle:new D(30),baseStyle:new D(50),computedStyle:new WeakMap,measureHints:new WeakMap,font:new Set,session:{styleMap:new Map,styleCache:new WeakMap,nodeMap:new Map}}});function pt(t){let e=t.match(/url\\((['\"]?)(.*?)(\\1)\\)/);if(!e)return null;let n=e[2].trim();return n.startsWith(\"#\")?null:n}function he(t){if(!t||t===\"none\")return\"\";let e=t.replace(/translate[XY]?\\([^)]*\\)/g,\"\");return e=e.replace(/matrix\\(([^)]+)\\)/g,(n,o)=>{let i=o.split(\",\").map(r=>r.trim());return i.length!==6?`matrix(${o})`:(i[4]=\"0\",i[5]=\"0\",`matrix(${i.join(\", \")})`)}),e=e.replace(/matrix3d\\(([^)]+)\\)/g,(n,o)=>{let i=o.split(\",\").map(r=>r.trim());return i.length!==16?`matrix3d(${o})`:(i[12]=\"0\",i[13]=\"0\",`matrix3d(${i.join(\", \")})`)}),e.trim().replace(/\\s{2,}/g,\" \")}function ft(t){if(/%[0-9A-Fa-f]{2}/.test(t))return t;try{return encodeURI(t)}catch{return t}}function ge(t,e){if(!t||/^(data|blob|about|#)/i.test(t.trim()))return t;try{let n=e||typeof document<\"u\"&&(document.baseURI||document.location?.href)||\"http://localhost/\";return new URL(t,n).href}catch{return t}}var Lt=q(()=>{});function zo(t=\"[snapDOM]\",{ttlMs:e=5*6e4,maxEntries:n=12}={}){let o=new Map,i=0;function r(s,a,l){if(i>=n)return;let u=Date.now();(o.get(a)||0)>u||(o.set(a,u+e),i++,s===\"warn\"&&console&&console.warn?console.warn(`${t} ${l}`):console&&console.error&&console.error(`${t} ${l}`))}return{warnOnce(s,a){r(\"warn\",s,a)},errorOnce(s,a){r(\"error\",s,a)},reset(){o.clear(),i=0}}}function Vo(t){return/^data:|^blob:|^about:blank$/i.test(t)}function qo(t,e){try{let n=typeof location<\"u\"&&location.href?location.href:\"http://localhost/\",o=e.includes(\"{url}\")?e.split(\"{url}\")[0]:e,i=new URL(o||\".\",n),r=new URL(t,n);if(r.origin===i.origin)return!0;let s=r.searchParams;if(s&&(s.has(\"url\")||s.has(\"target\")))return!0}catch{}return!1}function jo(t,e){if(!e||Vo(t)||qo(t,e))return!1;try{let n=typeof location<\"u\"&&location.href?location.href:\"http://localhost/\",o=new URL(t,n);return typeof location<\"u\"?o.origin!==location.origin:!0}catch{return!!e}}function Xo(t,e){if(!e)return t;if(e.includes(\"{url}\"))return e.replace(\"{urlRaw}\",ft(t)).replace(\"{url}\",encodeURIComponent(t));if(/[?&]url=?$/.test(e))return`${e}${encodeURIComponent(t)}`;if(e.endsWith(\"?\"))return`${e}url=${encodeURIComponent(t)}`;if(e.endsWith(\"/\"))return`${e}${ft(t)}`;let n=e.includes(\"?\")?\"&\":\"?\";return`${e}${n}url=${encodeURIComponent(t)}`}function Ye(t){return new Promise((e,n)=>{let o=new FileReader;o.onload=()=>e(String(o.result||\"\")),o.onerror=()=>n(new Error(\"read_failed\")),o.readAsDataURL(t)})}function Go(t,e){return[e.as||\"blob\",e.timeout??3e3,e.useProxy||\"\",e.errorTTL??8e3,t].join(\"|\")}async function B(t,e={}){let n=e.as??\"blob\",o=e.timeout??3e3,i=e.useProxy||\"\",r=e.errorTTL??8e3,s=e.headers||{},a=!!e.silent;if(/^data:/i.test(t))try{if(n===\"text\")return{ok:!0,data:String(t),status:200,url:t,fromCache:!1};if(n===\"dataURL\")return{ok:!0,data:String(t),status:200,url:t,fromCache:!1,mime:String(t).slice(5).split(\";\")[0]||\"\"};let[,y=\"\",h=\"\"]=String(t).match(/^data:([^,]*),(.*)$/)||[],S=/;base64/i.test(y)?atob(h):decodeURIComponent(h),w=new Uint8Array([...S].map(v=>v.charCodeAt(0))),x=new Blob([w],{type:(y||\"\").split(\";\")[0]||\"\"});return{ok:!0,data:x,status:200,url:t,fromCache:!1,mime:x.type||\"\"}}catch{return{ok:!1,data:null,status:0,url:t,fromCache:!1,reason:\"special_url_error\"}}if(/^blob:/i.test(t))try{let y=await fetch(t);if(!y.ok)return{ok:!1,data:null,status:y.status,url:t,fromCache:!1,reason:\"http_error\"};let h=await y.blob(),b=h.type||y.headers.get(\"content-type\")||\"\";return n===\"dataURL\"?{ok:!0,data:await Ye(h),status:y.status,url:t,fromCache:!1,mime:b}:n===\"text\"?{ok:!0,data:await h.text(),status:y.status,url:t,fromCache:!1,mime:b}:{ok:!0,data:h,status:y.status,url:t,fromCache:!1,mime:b}}catch{return{ok:!1,data:null,status:0,url:t,fromCache:!1,reason:\"network\"}}if(/^about:blank$/i.test(t))return n===\"dataURL\"?{ok:!0,data:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==\",status:200,url:t,fromCache:!1,mime:\"image/png\"}:{ok:!0,data:n===\"text\"?\"\":new Blob([]),status:200,url:t,fromCache:!1};let l=Go(t,{as:n,timeout:o,useProxy:i,errorTTL:r}),u=Gt.get(l);if(u&&u.until>Date.now())return{...u.result,fromCache:!0};u&&Gt.delete(l);let c=ye.get(l);if(c)return c;let f=jo(t,i)?Xo(t,i):t,d=e.credentials;if(!d)try{let y=typeof location<\"u\"&&location.href?location.href:\"http://localhost/\",h=new URL(t,y);d=typeof location<\"u\"&&h.origin===location.origin?\"include\":\"omit\"}catch{d=\"omit\"}let m=new AbortController,g=setTimeout(()=>m.abort(\"timeout\"),o),p=(async()=>{try{let y=await fetch(f,{signal:m.signal,credentials:d,headers:s});if(!y.ok){let S={ok:!1,data:null,status:y.status,url:f,fromCache:!1,reason:\"http_error\"};if(r>0&&Gt.set(l,{until:Date.now()+r,result:S}),!a){let w=`${y.status} ${y.statusText||\"\"}`.trim();Ge.warnOnce(`http:${y.status}:${n}:${new URL(t,location?.href??\"http://localhost/\").origin}`,`HTTP error ${w} while fetching ${n} ${t}`)}return e.onError&&e.onError(S),S}if(n===\"text\")return{ok:!0,data:await y.text(),status:y.status,url:f,fromCache:!1};let h=await y.blob(),b=h.type||y.headers.get(\"content-type\")||\"\";return n===\"dataURL\"?{ok:!0,data:await Ye(h),status:y.status,url:f,fromCache:!1,mime:b}:{ok:!0,data:h,status:y.status,url:f,fromCache:!1,mime:b}}catch(y){let h=y&&typeof y==\"object\"&&\"name\"in y&&y.name===\"AbortError\"?String(y.message||\"\").includes(\"timeout\")?\"timeout\":\"abort\":\"network\",b={ok:!1,data:null,status:0,url:f,fromCache:!1,reason:h};if(!/^blob:/i.test(t)&&r>0&&Gt.set(l,{until:Date.now()+r,result:b}),!a){let S=`${h}:${n}:${new URL(t,location?.href??\"http://localhost/\").origin}`,w=h===\"timeout\"?`Timeout after ${o}ms. Consider increasing timeout or using a proxy for ${t}`:h===\"abort\"?`Request aborted while fetching ${n} ${t}`:`Network/CORS issue while fetching ${n} ${t}. A proxy may be required`;Ge.errorOnce(S,w)}return e.onError&&e.onError(b),b}finally{clearTimeout(g),ye.delete(l)}})();return ye.set(l,p),p}var Ge,ye,Gt,ht=q(()=>{Lt();Ge=zo(\"[snapDOM]\",{ttlMs:3*6e4,maxEntries:10}),ye=new Map,Gt=new Map});async function gt(t,e={}){if(/^((repeating-)?(linear|radial|conic)-gradient)\\(/i.test(t)||t.trim()===\"none\")return t;let o=pt(t);if(!o)return t;let i=ge(o),r=ft(i),s=(e.useProxy||\"\")+\"|\"+r;if(A.background.has(s)){let a=A.background.get(s);return a?`url(\"${a}\")`:\"none\"}try{let a=await B(r,{as:\"dataURL\",useProxy:e.useProxy});return a.ok?(A.background.set(s,a.data),`url(\"${a.data}\")`):(A.background.set(s,null),\"none\")}catch{return A.background.set(s,null),\"none\"}}var Ke=q(()=>{j();Lt();ht()});function be(){for(let t of Yo){let e=String(t).toLowerCase();Yt.has(e)||Kt.has(e)||we(e)}}function we(t){if(t=String(t).toLowerCase(),Kt.has(t)){let r={};return A.defaultStyle.set(t,r),r}if(A.defaultStyle.has(t))return A.defaultStyle.get(t);let e=document.getElementById(\"snapdom-sandbox\");e||(e=document.createElement(\"div\"),e.id=\"snapdom-sandbox\",e.setAttribute(\"data-snapdom-sandbox\",\"true\"),e.setAttribute(\"aria-hidden\",\"true\"),e.style.position=\"absolute\",e.style.left=\"-9999px\",e.style.top=\"-9999px\",e.style.width=\"0px\",e.style.height=\"0px\",e.style.overflow=\"hidden\",document.body.appendChild(e));let n=document.createElement(t);n.style.all=\"initial\",e.appendChild(n);let o=getComputedStyle(n),i={};for(let r of o){if(Tt(r))continue;let s=o.getPropertyValue(r);i[r]=s}return e.removeChild(n),A.defaultStyle.set(t,i),i}function Tt(t){let e=String(t).toLowerCase();return!!(Jo.has(e)||Qo.test(e)||Ko.test(e))}function wt(t,e){if(e=String(e||\"\").toLowerCase(),Kt.has(e))return\"\";let n=[],o=we(e),r=(t.display||\"\").toLowerCase()===\"inline\",s=new Set([\"span\",\"small\",\"em\",\"strong\",\"b\",\"i\",\"u\",\"s\",\"code\",\"cite\",\"mark\",\"sub\",\"sup\"]),a=new Set([\"table\",\"thead\",\"tbody\",\"tfoot\",\"tr\",\"td\",\"th\"]),c=!new Set([\"img\",\"video\",\"canvas\",\"svg\",\"iframe\",\"embed\",\"object\",\"input\",\"textarea\",\"select\"]).has(e)&&(r||s.has(e)||a.has(e)),f=d=>d===\"width\"||d===\"min-width\"||d===\"max-width\"||d===\"inline-size\"||d===\"min-inline-size\"||d===\"max-inline-size\";for(let[d,m]of Object.entries(t)){if(Tt(d)||c&&f(d))continue;let g=o[d];m&&m!==g&&n.push(`${d}:${m}`)}if(c&&!r){let d=t.width;d&&d!==\"auto\"&&d!==o.width&&n.push(`min-width:${d}`)}return n.sort(),n.join(\";\")}function Se(t){let e=new Set;return t.nodeType!==Node.ELEMENT_NODE&&t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?[]:(t.tagName&&e.add(t.tagName.toLowerCase()),typeof t.querySelectorAll==\"function\"&&t.querySelectorAll(\"*\").forEach(n=>e.add(n.tagName.toLowerCase())),Array.from(e))}function xe(t){let e=new Map;for(let o of t){let i=A.defaultStyle.get(o);if(!i)continue;let r=Object.entries(i).map(([s,a])=>`${s}:${a};`).sort().join(\"\");r&&(e.has(r)||e.set(r,[]),e.get(r).push(o))}let n=\"\";for(let[o,i]of e.entries())n+=`${i.join(\",\")} { ${o} }\n`;return n}function Ce(t){let e=Array.from(new Set(t.values())).filter(Boolean).sort(),n=new Map,o=1;for(let i of e)n.set(i,`c${o++}`);return n}function Zo(t){try{let e=t?.ownerDocument;if(!e)return typeof window<\"u\"?window:null;let n=e.defaultView;if(n&&typeof n.getComputedStyle==\"function\")return n;if(typeof window<\"u\"&&window.frames)for(let o=0;o<window.frames.length;o++)try{if(window.frames[o]?.document===e)return window.frames[o]}catch{}}catch{}return typeof window<\"u\"?window:null}function _(t,e=null){let n=()=>{let r={length:0,getPropertyValue:()=>\"\",item:()=>\"\"};return r[Symbol.iterator]=function*(){},r};if(!(t instanceof Element)){let r=typeof window<\"u\"?window:null;if(r&&typeof r.getComputedStyle==\"function\")try{return r.getComputedStyle(t,e)||n()}catch{return n()}return n()}let o=A.computedStyle.get(t);o||(o=new Map,A.computedStyle.set(t,o));let i=o.get(e);if(!i){let r=Zo(t),s=null;try{s=r&&typeof r.getComputedStyle==\"function\"?r.getComputedStyle(t,e):null}catch{}if(!s&&typeof window<\"u\"&&typeof window.getComputedStyle==\"function\")try{t.ownerDocument===document&&(s=window.getComputedStyle(t,e))}catch{}i=s||n(),o.set(e,i)}return i}function Qt(t){let e={};for(let n of t)e[n]=t.getPropertyValue(n);for(let n of tr){let o=e[`border-${n}-style`],i=e[`border-${n}-width`];(o===\"none\"||o===\"hidden\"||i===\"0px\")&&(delete e[`border-${n}-style`],delete e[`border-${n}-width`],delete e[`border-${n}-color`])}return e}function St(t){let e=[],n=0,o=0;for(let i=0;i<t.length;i++){let r=t[i];r===\"(\"&&n++,r===\")\"&&n--,r===\",\"&&n===0&&(e.push(t.slice(o,i).trim()),o=i+1)}return e.push(t.slice(o).trim()),e}var Yt,Kt,Yo,Ko,Qo,Jo,tr,Jt=q(()=>{j();Yt=new Set([\"meta\",\"script\",\"noscript\",\"title\",\"link\",\"template\"]),Kt=new Set([\"meta\",\"link\",\"style\",\"title\",\"noscript\",\"script\",\"template\",\"g\",\"defs\",\"use\",\"marker\",\"mask\",\"clipPath\",\"pattern\",\"path\",\"polygon\",\"polyline\",\"line\",\"circle\",\"ellipse\",\"rect\",\"filter\",\"lineargradient\",\"radialgradient\",\"stop\"]),Yo=[\"div\",\"span\",\"p\",\"a\",\"img\",\"ul\",\"li\",\"button\",\"input\",\"select\",\"textarea\",\"label\",\"section\",\"article\",\"header\",\"footer\",\"nav\",\"main\",\"aside\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"table\",\"thead\",\"tbody\",\"tr\",\"td\",\"th\"];Ko=/(?:^|-)(animation|transition)(?:-|$)/i,Qo=/^(--.+|view-timeline|scroll-timeline|animation-trigger|offset-|position-try|app-region|interactivity|overlay|view-transition|-webkit-locale|-webkit-user-(?:drag|modify)|-webkit-tap-highlight-color|-webkit-text-security)$/i,Jo=new Set([\"cursor\",\"pointer-events\",\"touch-action\",\"user-select\",\"print-color-adjust\",\"speak\",\"reading-flow\",\"reading-order\",\"anchor-name\",\"anchor-scope\",\"container-name\",\"container-type\",\"timeline-scope\",\"zoom\"]);tr=[\"top\",\"right\",\"bottom\",\"left\"]});function rt(t,{fast:e=!1}={}){if(e)return t();\"requestIdleCallback\"in window?requestIdleCallback(t,{timeout:50}):setTimeout(t,1)}function Ae(){if(typeof navigator>\"u\")return!1;if(navigator.userAgentData)return navigator.userAgentData.platform===\"iOS\";let t=navigator.userAgent||\"\",e=/iPhone|iPad|iPod/.test(t),n=navigator.maxTouchPoints>2&&/Macintosh/.test(t);return e||n}function H(){if(typeof navigator>\"u\")return!1;let t=navigator.userAgent||\"\",e=t.toLowerCase(),n=e.includes(\"safari\")&&!e.includes(\"chrome\")&&!e.includes(\"crios\")&&!e.includes(\"fxios\")&&!e.includes(\"android\"),o=/applewebkit/i.test(t),i=/mobile/i.test(t),r=!/safari/i.test(t),s=o&&i&&r,a=/(micromessenger|wxwork|wecom|windowswechat|macwechat)/i.test(t),l=/(baiduboxapp|baidubrowser|baidusearch|baiduboxlite)/i.test(e),u=/ipad|iphone|ipod/.test(e)&&o;return n||s||a||l||u}function Qe(){if(typeof navigator>\"u\")return!1;let t=(navigator.userAgent||\"\").toLowerCase();return t.includes(\"firefox\")||t.includes(\"fxios\")}var xt=q(()=>{});function R(t,e,n){let o=t&&typeof t==\"object\"&&(t.options||t);o&&o.debug&&(n!==void 0?console.warn(\"[snapdom]\",e,n):console.warn(\"[snapdom]\",e))}var ve=q(()=>{});var J=q(()=>{Ke();Jt();xt();Lt();ve()});var Mo={};Rt(Mo,{toCanvas:()=>bt});function Ai(t){if(!Ao(t))return t;try{let e=vo(t),n=e.match(/<svg\\b[^>]*>/i);if(!n)return t;let o=n[0],i=parseFloat((o.match(/\\bwidth=\"([\\d.]+)/i)||[])[1]),r=parseFloat((o.match(/\\bheight=\"([\\d.]+)/i)||[])[1]);if(!Number.isFinite(i)||!Number.isFinite(r)||i<=0||r<=0)return t;let s=Math.min(1,Mt/i,Mt/r,Math.sqrt(Co/(i*r)));if(s>=1)return t;let a=Math.max(1,Math.floor(i*s)),l=Math.max(1,Math.floor(r*s));console.warn(`[snapDOM] Capture ${Math.round(i)}\\xD7${Math.round(r)}px exceeds the browser image-decode limit (${Mt}px/side); downscaling to ${a}\\xD7${l}px. Lower \\`scale\\` or set \\`width\\`/\\`height\\` to control output size.`);let u=e.replace(o,o.replace(/(\\bwidth=\")[\\d.]+/i,`$1${a}`).replace(/(\\bheight=\")[\\d.]+/i,`$1${l}`));return ko(u)}catch{return t}}function Ao(t){return typeof t==\"string\"&&/^data:image\\/svg\\+xml/i.test(t)}function vo(t){let e=t.indexOf(\",\");return e>=0?decodeURIComponent(t.slice(e+1)):\"\"}function ko(t){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function vi(t){let e=[],n=\"\",o=0;for(let i=0;i<t.length;i++){let r=t[i];r===\"(\"&&o++,r===\")\"&&(o=Math.max(0,o-1)),r===\";\"&&o===0?(e.push(n),n=\"\"):n+=r}return n.trim()&&e.push(n),e.map(i=>i.trim()).filter(Boolean)}function ki(t){let e=[],n=\"\",o=0;for(let r=0;r<t.length;r++){let s=t[r];s===\"(\"&&o++,s===\")\"&&(o=Math.max(0,o-1)),s===\",\"&&o===0?(e.push(n.trim()),n=\"\"):n+=s}n.trim()&&e.push(n.trim());let i=[];for(let r of e){if(/\\binset\\b/i.test(r))continue;let s=r.match(/-?\\d+(?:\\.\\d+)?px/gi)||[],[a=\"0px\",l=\"0px\",u=\"0px\"]=s,c=r.replace(/-?\\d+(?:\\.\\d+)?px/gi,\"\").replace(/\\binset\\b/ig,\"\").trim().replace(/\\s{2,}/g,\" \"),f=!!c&&c!==\",\";i.push(`drop-shadow(${a} ${l} ${u}${f?` ${c}`:\"\"})`)}return i.join(\" \")}function Eo(t){let e=vi(t),n=null,o=null,i=null,r=[];for(let a of e){let l=a.indexOf(\":\");if(l<0)continue;let u=a.slice(0,l).trim().toLowerCase(),c=a.slice(l+1).trim();u===\"box-shadow\"?i=c:u===\"filter\"?n=c:u===\"-webkit-filter\"?o=c:r.push([u,c])}if(i){let a=ki(i);a&&(n=n?`${n} ${a}`:a,o=o?`${o} ${a}`:a)}let s=[...r];return n&&s.push([\"filter\",n]),o&&s.push([\"-webkit-filter\",o]),s.map(([a,l])=>`${a}:${l}`).join(\";\")}function Ei(t){return t.replace(/([^{}]+)\\{([^}]*)\\}/g,(e,n,o)=>`${n}{${Eo(o)}}`)}function Mi(t){return t=t.replace(/<style[^>]*>([\\s\\S]*?)<\\/style>/gi,(e,n)=>e.replace(n,Ei(n))),t=t.replace(/style=(['\"])([\\s\\S]*?)\\1/gi,(e,n,o)=>`style=${n}${Eo(o)}${n}`),t}function Fi(t){if(!H()||!Ao(t))return t;try{let e=vo(t),n=Mi(e);return ko(n)}catch{return t}}async function bt(t,e){let{width:n,height:o,scale:i=1,dpr:r=1,meta:s={},backgroundColor:a}=e;t=Fi(t),t=Ai(t);let l=new Image;if(l.loading=\"eager\",l.decoding=\"sync\",l.crossOrigin=\"anonymous\",l.src=t,await l.decode(),H()){l.style.cssText=\"position:fixed;left:-99999px;top:-99999px;pointer-events:none\",document.body.appendChild(l);try{await new Promise(v=>requestAnimationFrame(()=>requestAnimationFrame(v)))}finally{try{l.remove()}catch{}}}let u=l.naturalWidth,c=l.naturalHeight,f=Number.isFinite(s.w0)?s.w0:u,d=Number.isFinite(s.h0)?s.h0:c,m,g,p=Number.isFinite(n),y=Number.isFinite(o);if(p&&y)m=Math.max(1,n),g=Math.max(1,o);else if(p){let v=n/Math.max(1,f);m=n,g=d*v}else if(y){let v=o/Math.max(1,d);g=o,m=f*v}else m=u,g=c;m=m*i,g=g*i;let h=m*r,b=g*r,S=Math.max(h/Mt,b/Mt,Math.sqrt(h*b/Co));S>1&&(console.warn(`[snapDOM] Output ${Math.round(h)}\\xD7${Math.round(b)}px exceeds the browser canvas limit (${Mt}px/side); downscaling. Lower \\`scale\\`/\\`dpr\\` or set \\`width\\`/\\`height\\`.`),m/=S,g/=S);let w=document.createElement(\"canvas\");w.width=m*r,w.height=g*r,w.style.width=`${m}px`,w.style.height=`${g}px`;let x=w.getContext(\"2d\");return r!==1&&x.scale(r,r),a&&(x.save(),x.fillStyle=a,x.fillRect(0,0,m,g),x.restore()),x.drawImage(l,0,0,m,g),w}var Mt,Co,Ut=q(()=>{xt();Mt=16384,Co=16384*16384});var ue={};Rt(ue,{rasterize:()=>Ue});async function Ue(t,e){let n=await bt(t,e),o=new Image;return o.src=n.toDataURL(`image/${e.format}`,e.quality),await o.decode(),o.style.width=`${n.width/e.dpr}px`,o.style.height=`${n.height/e.dpr}px`,o}var Bt=q(()=>{Ut()});var Be={};Rt(Be,{toImg:()=>$i,toSvg:()=>$i});async function $i(t,e){let{scale:n=1,width:o,height:i,meta:r={}}=e,s=Number.isFinite(o),a=Number.isFinite(i),l=Number.isFinite(n)&&n!==1||s||a;if(H()&&l)return await Ue(t,{...e,format:\"png\",quality:1,meta:r});let u=new Image;if(u.decoding=\"sync\",u.loading=\"eager\",u.src=t,await u.decode(),s&&a)u.style.width=`${o}px`,u.style.height=`${i}px`;else if(s){let c=Number.isFinite(r.w0)?r.w0:u.naturalWidth,f=Number.isFinite(r.h0)?r.h0:u.naturalHeight,d=o/Math.max(1,c);u.style.width=`${o}px`,u.style.height=`${Math.round(f*d)}px`}else if(a){let c=Number.isFinite(r.w0)?r.w0:u.naturalWidth,f=Number.isFinite(r.h0)?r.h0:u.naturalHeight,d=i/Math.max(1,f);u.style.height=`${i}px`,u.style.width=`${Math.round(c*d)}px`}else{let c=Math.round(u.naturalWidth*n),f=Math.round(u.naturalHeight*n);if(u.style.width=`${c}px`,u.style.height=`${f}px`,typeof t==\"string\"&&t.startsWith(\"data:image/svg+xml\"))try{let m=decodeURIComponent(t.split(\",\")[1]).replace(/width=\"[^\"]*\"/,`width=\"${c}\"`).replace(/height=\"[^\"]*\"/,`height=\"${f}\"`);t=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(m)}`,u.src=t}catch(d){R(e,\"SVG width/height patch in toImg failed\",d)}}return u}var De=q(()=>{J();Bt()});var Fo={};Rt(Fo,{toBlob:()=>He});async function He(t,e){let n=e.type;if(n===\"svg\"){let i=decodeURIComponent(t.split(\",\")[1]);return new Blob([i],{type:\"image/svg+xml\"})}let o=await bt(t,e);return new Promise(i=>o.toBlob(r=>i(r),`image/${n}`,e.quality))}var ze=q(()=>{Ut()});var Ro={};Rt(Ro,{download:()=>Ri});async function $o(t,e){let n=new File([t],e,{type:t.type});if(!navigator.canShare?.({files:[n]}))return!1;try{await navigator.share({files:[n],title:e})}catch(o){if(o.name!==\"AbortError\")return!1}return!0}async function Ri(t,e){let n=new Set([\"png\",\"jpeg\",\"jpg\",\"webp\",\"svg\"]),o=(e?.type||\"\").toLowerCase(),i=n.has(o)?o:\"\",r=(e?.format||i||\"\").toLowerCase(),s=r===\"jpg\"?\"jpeg\":r||\"png\",a=e?.filename||`snapdom.${s}`,l={...e||{},format:s,type:s};l.dpr=1;let u=Ae();if(s===\"svg\"){let d=await He(t,{...l,type:\"svg\"});if(u&&await $o(d,a))return;let m=URL.createObjectURL(d),g=document.createElement(\"a\");g.href=m,g.download=a,document.body.appendChild(g),g.click(),URL.revokeObjectURL(m),g.remove();return}let c=await bt(t,l);if(u){let d=`image/${s}`,m=await new Promise(g=>c.toBlob(g,d,e?.quality));if(m&&await $o(m,a))return}let f=document.createElement(\"a\");f.href=c.toDataURL(`image/${s}`,e?.quality),f.download=a,document.body.appendChild(f),f.click(),f.remove()}var Lo=q(()=>{ze();Ut();xt()});J();J();j();var Je=new WeakMap,Nt=new Map,er=2e3,ke=0;function Pt(){ke++,Nt.size>er&&Nt.clear()}var Ze=!1;function nr(t=document.documentElement){if(!Ze){Ze=!0;try{new MutationObserver(()=>Pt()).observe(t,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{new MutationObserver(()=>Pt()).observe(document.head,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{let e=document.fonts;e&&(e.addEventListener?.(\"loadingdone\",Pt),e.ready?.then(()=>Pt()).catch(()=>{}))}catch{}}}function or(t,e={}){let n={},o=t.getPropertyValue(\"visibility\"),i=e.excludeStyleProps;for(let f=0;f<t.length;f++){let d=t[f];if(Tt(d)||i&&(i instanceof RegExp&&i.test(d)||typeof i==\"function\"&&i(d)))continue;let m=t.getPropertyValue(d);(d===\"background-image\"||d===\"content\")&&m.includes(\"url(\")&&!m.includes(\"data:\")&&(m=\"none\"),n[d]=m}let r=[\"text-decoration-line\",\"text-decoration-color\",\"text-decoration-style\",\"text-decoration-thickness\",\"text-underline-offset\",\"text-decoration-skip-ink\"];for(let f of r)if(!n[f])try{let d=t.getPropertyValue(f);d&&(n[f]=d)}catch{}let s=[\"-webkit-text-stroke\",\"-webkit-text-stroke-width\",\"-webkit-text-stroke-color\",\"paint-order\"];for(let f of s)if(!n[f])try{let d=t.getPropertyValue(f);d&&(n[f]=d)}catch{}if(e.embedFonts){let f=[\"font-feature-settings\",\"font-variation-settings\",\"font-kerning\",\"font-variant\",\"font-variant-ligatures\",\"font-optical-sizing\"];for(let d of f)if(!n[d])try{let m=t.getPropertyValue(d);m&&(n[d]=m)}catch{}}o===\"hidden\"&&(n.opacity=\"0\");try{(n[\"content-visibility\"]||t.getPropertyValue(\"content-visibility\"))===\"hidden\"&&(n.visibility=\"hidden\")}catch{}let a=parseFloat(t.getPropertyValue(\"border-top-width\")||0)||0,l=parseFloat(t.getPropertyValue(\"border-right-width\")||0)||0,u=parseFloat(t.getPropertyValue(\"border-bottom-width\")||0)||0,c=parseFloat(t.getPropertyValue(\"border-left-width\")||0)||0;if(a===0&&l===0&&u===0&&c===0){let f=(t.getPropertyValue(\"border-image-source\")||\"\").trim(),d=f&&f!==\"none\",m=[\"border\",\"border-top\",\"border-right\",\"border-bottom\",\"border-left\",\"border-width\",\"border-style\",\"border-color\",\"border-top-width\",\"border-top-style\",\"border-top-color\",\"border-right-width\",\"border-right-style\",\"border-right-color\",\"border-bottom-width\",\"border-bottom-style\",\"border-bottom-color\",\"border-left-width\",\"border-left-style\",\"border-left-color\",\"border-block\",\"border-block-width\",\"border-block-style\",\"border-block-color\",\"border-inline\",\"border-inline-width\",\"border-inline-style\",\"border-inline-color\"];for(let g of m)delete n[g];d||(n.border=\"none\")}return n}var tn=new WeakMap;function rr(t){let e=tn.get(t);return e||(e=Object.entries(t).sort((o,i)=>o[0]<i[0]?-1:o[0]>i[0]?1:0).map(([o,i])=>`${o}:${i}`).join(\";\"),tn.set(t,e),e)}function ir(t,e=null,n={}){let o=Je.get(t),i=!!(n&&n.embedFonts),r=n&&n.excludeStyleProps||null;if(o&&o.epoch===ke&&o.embedFonts===i&&o.excludeStyleProps===r)return o.snapshot;let s=e||getComputedStyle(t),a=or(s,n);return fr(t,s,a),Je.set(t,{epoch:ke,snapshot:a,embedFonts:i,excludeStyleProps:r}),a}function sr(t,e){return t&&t.session&&t.persist?t:t&&(t.styleMap||t.styleCache||t.nodeMap)?{session:t,persist:{snapshotKeyCache:Nt,defaultStyle:A.defaultStyle,baseStyle:A.baseStyle,image:A.image,resource:A.resource,background:A.background,font:A.font},options:e||{}}:{session:A.session,persist:{snapshotKeyCache:Nt,defaultStyle:A.defaultStyle,baseStyle:A.baseStyle,image:A.image,resource:A.resource,background:A.background,font:A.font},options:t||e||{}}}function ar(t,e,n){if(!(!t.style||t.style.length===0))for(let o=0;o<t.style.length;o++){let i=t.style[o],r=n.getPropertyValue(i);r&&e.style.setProperty(i,r)}}async function it(t,e,n,o){if(t.tagName===\"STYLE\")return;let i=sr(n,o),r=i.options&&i.options.cache||\"auto\";r!==\"disabled\"&&nr(document.documentElement),r===\"disabled\"&&!i.session.__bumpedForDisabled&&(Pt(),Nt.clear(),i.session.__bumpedForDisabled=!0);let{session:s,persist:a}=i;if(!s.styleCache.has(t)){let d=null;try{d=getComputedStyle(t)}catch{}s.styleCache.set(t,d||getComputedStyle(document.documentElement))}let l=s.styleCache.get(t);t.getAttribute?.(\"style\")&&ar(t,e,l);let u=ir(t,l,i.options);if(en(t)){let d=l.getPropertyValue(\"min-width\");(!d||d===\"auto\"||d===\"0px\")&&(u[\"min-width\"]=\"0px\")}let c=rr(u),f=a.snapshotKeyCache.get(c);if(!f){let d=t.tagName?.toLowerCase()||\"div\";f=wt(u,d),a.snapshotKeyCache.set(c,f)}s.styleMap.set(e,f)}function cr(t){return t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof HTMLIFrameElement||t instanceof SVGElement||t instanceof HTMLObjectElement||t instanceof HTMLEmbedElement}function lr(t){return t.backgroundImage&&t.backgroundImage!==\"none\"||t.backgroundColor&&t.backgroundColor!==\"rgba(0, 0, 0, 0)\"&&t.backgroundColor!==\"transparent\"||(parseFloat(t.borderTopWidth)||0)>0||(parseFloat(t.borderBottomWidth)||0)>0||(parseFloat(t.paddingTop)||0)>0||(parseFloat(t.paddingBottom)||0)>0?!0:(t.overflowBlock||t.overflowY||\"visible\")!==\"visible\"}function en(t){let e=t.parentElement;if(!e)return!1;let n=_(e).display||\"\";return n.includes(\"flex\")||n.includes(\"grid\")}function ur(t,e){if(t.textContent&&/\\S/.test(t.textContent))return!0;let n=t.firstElementChild,o=t.lastElementChild;if(n&&n.tagName===\"BR\"||o&&o.tagName===\"BR\")return!0;let i=t.scrollHeight;if(i===0)return!1;let r=parseFloat(e.paddingTop)||0,s=parseFloat(e.paddingBottom)||0;return i>r+s}function fr(t,e,n){if(t instanceof HTMLElement&&t.style&&t.style.height)return;let o=t.tagName&&t.tagName.toLowerCase();if(!o||![\"div\",\"section\",\"article\",\"main\",\"aside\",\"header\",\"footer\",\"nav\"].includes(o))return;let r=parseFloat(e.height);if(Number.isFinite(r)&&t.scrollHeight>0&&Math.abs(r-t.scrollHeight)>2||e.aspectRatio&&e.aspectRatio!==\"none\"&&e.aspectRatio!==\"auto\")return;let a=e.display||\"\";if(a.includes(\"flex\")||a.includes(\"grid\")||cr(t))return;let l=e.position;if(l===\"absolute\"||l===\"fixed\"||l===\"sticky\"||e.transform!==\"none\"||lr(e)||en(t))return;let u=e.overflowX||e.overflow||\"visible\",c=e.overflowY||e.overflow||\"visible\";if(u!==\"visible\"||c!==\"visible\")return;let f=e.clip;f&&f!==\"auto\"&&f!==\"rect(auto, auto, auto, auto)\"||e.visibility===\"hidden\"||e.opacity===\"0\"||ur(t,e)&&(delete n.height,delete n[\"block-size\"])}Jt();var on=[\"fill\",\"stroke\",\"color\",\"background-color\",\"stop-color\"],dr=new Set([\"symbol\",\"defs\",\"pattern\",\"mask\",\"clipPath\",\"marker\",\"linearGradient\",\"radialGradient\",\"filter\"]);function Zt(t){let e=t;for(;e&&e.nodeType===1;){if(e.namespaceURI===\"http://www.w3.org/2000/svg\"&&dr.has(e.localName))return!0;e=e.parentNode}return!1}var nn=new Map;function mr(t,e){let n=e+\"::\"+t.toLowerCase(),o=nn.get(n);if(o)return o;let i=document,r=e===\"http://www.w3.org/2000/svg\"?i.createElementNS(e,t):i.createElement(t),s=i.createElement(\"div\");s.style.cssText=\"position:absolute;left:-99999px;top:-99999px;contain:strict;display:block;\",s.appendChild(r),i.documentElement.appendChild(s);let a=getComputedStyle(r),l={};for(let u of on)l[u]=a.getPropertyValue(u)||\"\";return s.remove(),nn.set(n,l),l}function rn(t,e){if(!(t instanceof Element)||!(e instanceof Element)||Zt(t))return;let n=t.getAttribute?.(\"style\"),o=!!(n&&n.includes(\"var(\"));if(!o&&t.attributes?.length){let r=t.attributes;for(let s=0;s<r.length;s++){let a=r[s];if(a&&typeof a.value==\"string\"&&a.value.includes(\"var(\")){o=!0;break}}}let i=null;if(o)try{i=getComputedStyle(t)}catch{}if(o){let r=t.style;if(r&&r.length){let s=new Set;for(let a=0;a<r.length;a++){let l=r[a];if(s.has(l))continue;s.add(l);let u=r.getPropertyValue(l);if(!u||!u.includes(\"var(\"))continue;let c=i&&i.getPropertyValue(l);if(c)try{e.style.setProperty(l,c.trim(),r.getPropertyPriority(l))}catch{}}}}if(o&&t.attributes?.length){let r=t.attributes;for(let s=0;s<r.length;s++){let a=r[s];if(!a||typeof a.value!=\"string\"||!a.value.includes(\"var(\"))continue;let l=a.name,u=i&&i.getPropertyValue(l);if(u)try{e.style.setProperty(l,u.trim())}catch{}}}if(!o){if(!i)try{i=getComputedStyle(t)}catch{i=null}if(!i)return;let r=t.namespaceURI||\"html\",s=mr(t.tagName,r);for(let a of on){let l=i.getPropertyValue(a)||\"\",u=s[a]||\"\";if(l&&l!==u)try{e.style.setProperty(a,l.trim())}catch{}}}}J();J();j();ht();function ee(t,e,n){return Promise.all(t.map(o=>new Promise(i=>{function r(){rt(s=>{(s&&typeof s.timeRemaining==\"function\"?s.timeRemaining()>0:!0)?e(o,i):r()},{fast:n})}r()})))}function pr(t){return t=t.trim(),!t||/:not\\(\\s*\\[data-sd-slotted\\]\\s*\\)\\s*$/.test(t)?t:`${t}:not([data-sd-slotted])`}function hr(t,e,n=!0){return t.split(\",\").map(o=>o.trim()).filter(Boolean).map(o=>{if(o.startsWith(\":where(\")||o.startsWith(\"@\"))return o;let i=n?pr(o):o;return`:where(${e} ${i})`}).join(\", \")}function an(t,e){return t?(t=t.replace(/:host\\(([^)]+)\\)/g,(n,o)=>`:where(${e}:is(${o.trim()}))`),t=t.replace(/:host\\b/g,`:where(${e})`),t=t.replace(/:host-context\\(([^)]+)\\)/g,(n,o)=>`:where(:where(${o.trim()}) ${e})`),t=t.replace(/::slotted\\(([^)]+)\\)/g,(n,o)=>`:where(${e} ${o.trim()})`),t=t.replace(/(^|})(\\s*)([^@}{]+){/g,(n,o,i,r)=>{let s=hr(r,e,!0);return`${o}${i}${s}{`}),t):\"\"}function cn(t){return t.shadowScopeSeq=(t.shadowScopeSeq||0)+1,`s${t.shadowScopeSeq}`}function ln(t){let e=\"\";try{t.querySelectorAll(\"style\").forEach(o=>{e+=(o.textContent||\"\")+`\n`});let n=t.adoptedStyleSheets||[];for(let o of n)try{if(o&&o.cssRules)for(let i of o.cssRules)e+=i.cssText+`\n`}catch{}}catch{}return e}function un(t,e,n){if(!e)return;let o=document.createElement(\"style\");o.setAttribute(\"data-sd\",n),o.textContent=e,t.insertBefore(o,t.firstChild||null)}function fn(t,e){try{let n=t.currentSrc||t.src||\"\";if(!n)return;e.setAttribute(\"src\",n),e.removeAttribute(\"srcset\"),e.removeAttribute(\"sizes\"),e.loading=\"eager\",e.decoding=\"sync\"}catch{}}function dn(t){let e=new Set;if(!t)return e;let n=/var\\(\\s*(--[A-Za-z0-9_-]+)\\b/g,o;for(;o=n.exec(t);)e.add(o[1]);return e}function gr(t,e){try{let o=getComputedStyle(t).getPropertyValue(e).trim();if(o)return o}catch{}try{let o=getComputedStyle(document.documentElement).getPropertyValue(e).trim();if(o)return o}catch{}return\"\"}function mn(t,e,n){let o=[];for(let i of e){let r=gr(t,i);r&&o.push(`${i}: ${r};`)}return o.length?`${n}{${o.join(\"\")}}\n`:\"\"}function pn(t){t&&(t.nodeType===Node.ELEMENT_NODE&&t.setAttribute(\"data-sd-slotted\",\"\"),t.querySelectorAll&&t.querySelectorAll(\"*\").forEach(e=>e.setAttribute(\"data-sd-slotted\",\"\")))}async function yr(t,e=3){let n=()=>{try{return t.contentDocument||t.contentWindow?.document||null}catch{return null}},o=n(),i=0;for(;i<e&&(!o||!o.body&&!o.documentElement);)await new Promise(r=>setTimeout(r,0)),o=n(),i++;return o&&(o.body||o.documentElement)?o:null}function br(t){let e=t.getBoundingClientRect(),n=0,o=0,i=0,r=0;try{let l=getComputedStyle(t);n=parseFloat(l.borderLeftWidth)||0,o=parseFloat(l.borderRightWidth)||0,i=parseFloat(l.borderTopWidth)||0,r=parseFloat(l.borderBottomWidth)||0}catch{}let s=Math.max(0,Math.round(e.width-(n+o))),a=Math.max(0,Math.round(e.height-(i+r)));return{contentWidth:s,contentHeight:a,rect:e}}function st(t){let e=0,n=0;if(t.offsetWidth>0&&(e=t.offsetWidth),t.offsetHeight>0&&(n=t.offsetHeight),e===0||n===0)try{let o=getComputedStyle(t);if(e===0){let i=parseFloat(o.width);!isNaN(i)&&i>0&&(e=i)}if(n===0){let i=parseFloat(o.height);!isNaN(i)&&i>0&&(n=i)}}catch{}if(e===0||n===0)try{if(e===0){let o=parseFloat(t.getAttribute(\"width\"));!isNaN(o)&&o>0&&(e=o)}if(n===0){let o=parseFloat(t.getAttribute(\"height\"));!isNaN(o)&&o>0&&(n=o)}}catch{}if((e===0||n===0)&&(t.naturalWidth||t.naturalHeight))try{e===0&&t.naturalWidth>0&&(e=t.naturalWidth),n===0&&t.naturalHeight>0&&(n=t.naturalHeight)}catch{}return{width:e,height:n}}function wr(t,e,n){let o=t.defaultView,i=o?o.scrollX:0,r=o?o.scrollY:0,s=t.body?t.body.scrollLeft:0,a=t.body?t.body.scrollTop:0,l=t.documentElement?t.documentElement.scrollLeft:0,u=t.documentElement?t.documentElement.scrollTop:0,c=t.createElement(\"style\");return c.setAttribute(\"data-sd-iframe-pin\",\"\"),c.textContent=`html, body {margin: 0 !important;padding: 0 !important;width: ${e}px !important;height: ${n}px !important;min-width: ${e}px !important;min-height: ${n}px !important;box-sizing: border-box !important;overflow: hidden !important;background-clip: border-box !important;}`,(t.head||t.documentElement).appendChild(c),()=>{try{c.remove()}catch{}try{o&&typeof o.scrollTo==\"function\"&&o.scrollTo(i,r),t.body&&(t.body.scrollLeft=s,t.body.scrollTop=a),t.documentElement&&(t.documentElement.scrollLeft=l,t.documentElement.scrollTop=u)}catch{}}}async function hn(t,e,n){let o=await yr(t,3);if(!o)throw new Error(\"iframe document not accessible/ready\");let{contentWidth:i,contentHeight:r,rect:s}=br(t),a=n?.snap;if(!a&&typeof window<\"u\"&&window.snapdom&&(a=window.snapdom),!a||typeof a.toPng!=\"function\")throw new Error(\"[snapdom] iframe capture requires snapdom.toPng. Use snapdom(el) or pass options.snap. With ESM, assign window.snapdom = snapdom after import if using iframes.\");let l={...n,scale:1},u=wr(o,i,r),c;try{c=await a.toPng(o.documentElement,l)}finally{u()}c.style.display=\"block\",c.style.width=`${i}px`,c.style.height=`${r}px`;let f=document.createElement(\"div\");return e.nodeMap.set(f,t),it(t,f,e,n),f.style.overflow=\"hidden\",f.style.display=\"block\",f.style.width||(f.style.width=`${Math.round(s.width)}px`),f.style.height||(f.style.height=`${Math.round(s.height)}px`),f.appendChild(c),f}function gn(t){let{width:e,height:n}=st(t),o=t.getBoundingClientRect(),i;try{i=window.getComputedStyle(t)}catch{}let r=i?parseFloat(i.width):NaN,s=i?parseFloat(i.height):NaN,a=Math.round(e||o.width||0),l=Math.round(n||o.height||0),u=Number.isFinite(r)&&r>0?Math.round(r):Math.max(12,a||16),c=Number.isFinite(s)&&s>0?Math.round(s):Math.max(12,l||16),f=(t.type||\"text\").toLowerCase()===\"checkbox\",d=!!t.checked,m=!!t.indeterminate,p=Math.max(Math.min(u,c),12),y=\"middle\";try{i&&i.verticalAlign&&(y=i.verticalAlign)}catch{}let h=document.createElement(\"div\");h.setAttribute(\"data-snapdom-input-replacement\",t.type||\"checkbox\"),h.style.cssText=`display:inline-block;width:${p}px;height:${p}px;vertical-align:${y};flex-shrink:0;line-height:0;`;let b=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");b.setAttribute(\"width\",String(p)),b.setAttribute(\"height\",String(p)),b.setAttribute(\"viewBox\",`0 0 ${p} ${p}`),h.appendChild(b);function S(){let w=\"#0a6ed1\";try{i&&(w=i.accentColor||i.color||w)}catch{}let x=2,v=x/2,C=p-x;if(b.innerHTML=\"\",f){let k=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");if(k.setAttribute(\"x\",String(v)),k.setAttribute(\"y\",String(v)),k.setAttribute(\"width\",String(C)),k.setAttribute(\"height\",String(C)),k.setAttribute(\"rx\",\"2\"),k.setAttribute(\"ry\",\"2\"),k.setAttribute(\"fill\",d?w:\"none\"),k.setAttribute(\"stroke\",w),k.setAttribute(\"stroke-width\",String(x)),b.appendChild(k),d){let E=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");E.setAttribute(\"d\",`M ${v+2} ${p/2} L ${p/2-1} ${p-v-2} L ${p-v-2} ${v+2}`),E.setAttribute(\"stroke\",\"white\"),E.setAttribute(\"stroke-width\",String(Math.max(1.5,x))),E.setAttribute(\"fill\",\"none\"),E.setAttribute(\"stroke-linecap\",\"round\"),E.setAttribute(\"stroke-linejoin\",\"round\"),b.appendChild(E)}else if(m){let E=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\"),P=Math.max(6,C-4);E.setAttribute(\"x\",String((p-P)/2)),E.setAttribute(\"y\",String((p-x)/2)),E.setAttribute(\"width\",String(P)),E.setAttribute(\"height\",String(x)),E.setAttribute(\"fill\",w),E.setAttribute(\"rx\",\"1\"),b.appendChild(E)}}else{let k=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\");if(k.setAttribute(\"cx\",String(p/2)),k.setAttribute(\"cy\",String(p/2)),k.setAttribute(\"r\",String((p-x)/2)),k.setAttribute(\"fill\",d?w:\"none\"),k.setAttribute(\"stroke\",w),k.setAttribute(\"stroke-width\",String(x)),b.appendChild(k),d){let E=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\"),P=Math.max(2,(p-x*2)*.35);E.setAttribute(\"cx\",String(p/2)),E.setAttribute(\"cy\",String(p/2)),E.setAttribute(\"r\",String(P)),E.setAttribute(\"fill\",\"white\"),b.appendChild(E)}}h.style.setProperty(\"width\",`${p}px`,\"important\"),h.style.setProperty(\"height\",`${p}px`,\"important\"),h.style.setProperty(\"min-width\",`${p}px`,\"important\"),h.style.setProperty(\"min-height\",`${p}px`,\"important\")}return S(),{el:h,applyVisual:S}}var It=new D(80);async function _t(t){if(A.resource?.has(t))return A.resource.get(t);if(It.has(t))return It.get(t);let e=(async()=>{let n=await B(t,{as:\"dataURL\",silent:!0});if(!n.ok||typeof n.data!=\"string\")throw new Error(`[snapDOM] Failed to read blob URL: ${t}`);return A.resource?.set(t,n.data),n.data})();It.set(t,e);try{let n=await e;return It.set(t,n),n}catch(n){throw It.delete(t),n}}var Sr=/\\bblob:[^)\"'\\s]+/g;async function sn(t){if(!t||t.indexOf(\"blob:\")===-1)return t;let e=Array.from(new Set(t.match(Sr)||[]));if(e.length===0)return t;let n=t;for(let o of e)try{let i=await _t(o);n=n.split(o).join(i)}catch{}return n}function te(t){return typeof t==\"string\"&&t.startsWith(\"blob:\")}function xr(t){return(t||\"\").split(\",\").map(e=>e.trim()).filter(Boolean).map(e=>{let n=e.match(/^(\\S+)(\\s+.+)?$/);return n?{url:n[1],desc:n[2]||\"\"}:null}).filter(Boolean)}function Cr(t){return t.map(e=>e.desc?`${e.url} ${e.desc.trim()}`:e.url).join(\", \")}async function yn(t,e=null){if(!t)return;let n=e,o=t.querySelectorAll?t.querySelectorAll(\"img\"):[];for(let l of o)try{let c=l.getAttribute(\"src\")||l.currentSrc||\"\";if(te(c)){let d=await _t(c);l.setAttribute(\"src\",d)}let f=l.getAttribute(\"srcset\");if(f&&f.includes(\"blob:\")){let d=xr(f),m=!1;for(let g of d)if(te(g.url))try{g.url=await _t(g.url),m=!0}catch(p){R(n,\"blobUrlToDataUrl for srcset item failed\",p)}m&&l.setAttribute(\"srcset\",Cr(d))}}catch(u){R(n,\"resolveBlobUrls for img failed\",u)}let i=t.querySelectorAll?t.querySelectorAll(\"image\"):[];for(let l of i)try{let u=\"http://www.w3.org/1999/xlink\",c=l.getAttribute(\"href\")||l.getAttributeNS?.(u,\"href\");if(te(c)){let f=await _t(c);l.setAttribute(\"href\",f),l.removeAttributeNS?.(u,\"href\")}}catch(u){R(n,\"resolveBlobUrls for SVG image href failed\",u)}let r=t.querySelectorAll?t.querySelectorAll(\"[style*='blob:']\"):[];for(let l of r)try{let u=l.getAttribute(\"style\");if(u&&u.includes(\"blob:\")){let c=await sn(u);l.setAttribute(\"style\",c)}}catch(u){R(n,\"replaceBlobUrls in inline style failed\",u)}let s=t.querySelectorAll?t.querySelectorAll(\"style\"):[];for(let l of s)try{let u=l.textContent||\"\";u.includes(\"blob:\")&&(l.textContent=await sn(u))}catch(u){R(n,\"replaceBlobUrls in style tag failed\",u)}let a=[\"poster\"];for(let l of a){let u=t.querySelectorAll?t.querySelectorAll(`[${l}^='blob:']`):[];for(let c of u)try{let f=c.getAttribute(l);te(f)&&c.setAttribute(l,await _t(f))}catch(f){R(n,`resolveBlobUrls for ${l} failed`,f)}}}xt();function Ee(t){let{width:e,height:n}=st(t),o=e,i=n;if(!o||!i){let s=t.getBoundingClientRect();o=o||s.width||0,i=i||s.height||0}let r=document.createElement(\"div\");return r.style.cssText=`display:inline-block;width:${o}px;height:${i}px;visibility:hidden;`,r}async function Wt(t,e,n){if(!t)throw new Error(\"Invalid node\");let o=new Set,i=null,r=null;if(t.nodeType===Node.ELEMENT_NODE){let c=(t.localName||t.tagName||\"\").toLowerCase();if(t.id===\"snapdom-sandbox\"||t.hasAttribute(\"data-snapdom-sandbox\")||Yt.has(c))return null;if(c===\"foreignobject\"&&t.parentElement?.closest?.(\"foreignObject\"))return R(e,\"Nested <foreignObject> skipped (SVG spec limitation \\u2014 not rendered by browsers)\"),null}if(t.nodeType===Node.TEXT_NODE||t.nodeType!==Node.ELEMENT_NODE)return t.cloneNode(!0);if(t.getAttribute(\"data-capture\")===\"exclude\"){if(n.excludeMode===\"hide\")return Ee(t);if(n.excludeMode===\"remove\")return null}if(n.exclude&&Array.isArray(n.exclude))for(let c of n.exclude)try{if(t.matches?.(c)){if(n.excludeMode===\"hide\")return Ee(t);if(n.excludeMode===\"remove\")return null}}catch(f){console.warn(`Invalid selector in exclude option: ${c}`,f)}if(typeof n.filter==\"function\")try{if(!n.filter(t)){if(n.filterMode===\"hide\")return Ee(t);if(n.filterMode===\"remove\")return null}}catch(c){console.warn(\"Error in filter function:\",c)}if(t.tagName===\"IFRAME\"){let c=!1;try{c=!!(t.contentDocument||t.contentWindow?.document)}catch(f){R(e,\"iframe same-origin probe failed\",f)}if(c)try{return await hn(t,e,n)}catch(f){console.warn(\"[SnapDOM] iframe rasterization failed, fallback:\",f)}if(c||console.warn(\"[snapdom] cross-origin <iframe> skipped (cannot access content). Use options.placeholders to show a placeholder instead.\",t),n.placeholders){let{width:f,height:d}=st(t),m=document.createElement(\"div\");return m.style.cssText=`width:${f}px;height:${d}px;background-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px);display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;border:1px solid #aaa;`,it(t,m,e,n),m}else{let{width:f,height:d}=st(t),m=document.createElement(\"div\");return m.style.cssText=`display:inline-block;width:${f}px;height:${d}px;visibility:hidden;`,it(t,m,e,n),m}}if(t.getAttribute(\"data-capture\")===\"placeholder\"){let c=t.cloneNode(!1);e.nodeMap.set(c,t),it(t,c,e,n);let f=document.createElement(\"div\");return f.textContent=t.getAttribute(\"data-placeholder-text\")||\"\",f.style.cssText=\"color:#666;font-size:12px;text-align:center;line-height:1.4;padding:0.5em;box-sizing:border-box;\",c.appendChild(f),c}if(t.tagName===\"CANVAS\"){let c=\"\";try{let g=t.getContext(\"2d\",{willReadFrequently:!0});try{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(p=>requestAnimationFrame(p)),c=t.toDataURL(\"image/png\"),!c||c===\"data:,\"){try{g&&g.getImageData(0,0,1,1)}catch{}if(await new Promise(p=>requestAnimationFrame(p)),c=t.toDataURL(\"image/png\"),!c||c===\"data:,\"){let p=document.createElement(\"canvas\");p.width=t.width,p.height=t.height;let y=p.getContext(\"2d\");y&&(y.drawImage(t,0,0),c=p.toDataURL(\"image/png\"))}}}catch(g){R(e,\"Canvas toDataURL failed, using empty/fallback\",g)}let f=document.createElement(\"img\");try{f.decoding=\"sync\",f.loading=\"eager\"}catch(g){R(e,\"img decoding/loading hints failed\",g)}c&&(f.src=c),f.width=t.width,f.height=t.height;let{width:d,height:m}=st(t);return d>0&&(f.style.width=`${d}px`),m>0&&(f.style.height=`${m}px`),e.nodeMap.set(f,t),it(t,f,e,n),f}if(t.tagName===\"VIDEO\"){let c=\"\";try{let g=document.createElement(\"canvas\");g.width=t.videoWidth||t.offsetWidth||320,g.height=t.videoHeight||t.offsetHeight||240;let p=g.getContext(\"2d\");p&&(p.drawImage(t,0,0,g.width,g.height),c=g.toDataURL(\"image/png\"),(!c||c===\"data:,\")&&(c=\"\"))}catch(g){R(e,\"Video frame capture failed, using poster fallback\",g)}let f=document.createElement(\"img\");try{f.decoding=\"sync\",f.loading=\"eager\"}catch{}c?f.src=c:t.poster&&(f.src=t.poster),f.width=t.videoWidth||t.offsetWidth||0,f.height=t.videoHeight||t.offsetHeight||0;let{width:d,height:m}=st(t);return d>0&&(f.style.width=`${d}px`),m>0&&(f.style.height=`${m}px`),f.style.objectFit=\"contain\",e.nodeMap.set(f,t),it(t,f,e,n),f}let s;try{if(s=t.cloneNode(!1),s.attributes?.length)try{for(let c of s.attributes)/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\uFFFE\\uFFFF]/.test(c.value)&&s.setAttribute(c.name,c.value.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\uFFFE\\uFFFF]/g,\"\"))}catch{}if(rn(t,s),e.nodeMap.set(s,t),t.tagName===\"IMG\"){fn(t,s);try{let{width:c,height:f}=st(t),d=Math.round(c||0),m=Math.round(f||0);d&&(s.dataset.snapdomWidth=String(d)),m&&(s.dataset.snapdomHeight=String(m))}catch(c){R(e,\"getUnscaledDimensions for IMG failed\",c)}try{let c=t.getAttribute(\"style\")||\"\",f=window.getComputedStyle(t),d=S=>{let w=c.match(new RegExp(`${S}\\\\s*:\\\\s*([^;]+)`,\"i\")),x=w?w[1].trim():f.getPropertyValue(S);return/%|auto/i.test(String(x||\"\"))},m=parseInt(s.dataset.snapdomWidth||\"0\",10),g=parseInt(s.dataset.snapdomHeight||\"0\",10),p=d(\"width\")||!m,y=d(\"height\")||!g;p&&m&&(s.style.width=`${m}px`),y&&g&&(s.style.height=`${g}px`);let h=f.getPropertyValue(\"object-fit\"),b=f.getPropertyValue(\"object-position\");h&&h!==\"fill\"?(s.style.objectFit=h,b&&(s.style.objectPosition=b)):(m&&(s.style.minWidth=`${m}px`),g&&(s.style.minHeight=`${g}px`))}catch(c){R(e,\"IMG dimension freeze failed\",c)}}}catch(c){throw console.error(\"[Snapdom] Failed to clone node:\",t,c),c}let a=null;if(t instanceof HTMLTextAreaElement){let{width:c,height:f}=st(t),d=c||t.getBoundingClientRect().width||0,m=f||t.getBoundingClientRect().height||0;d&&(s.style.width=`${d}px`),m&&(s.style.height=`${m}px`)}if(t instanceof HTMLInputElement){let c=(t.type||\"text\").toLowerCase();if((c===\"checkbox\"||c===\"radio\")&&Qe()){let{el:d,applyVisual:m}=gn(t);e.nodeMap.set(d,t),a=m,s=d}else s.value=t.value,s.setAttribute(\"value\",t.value),t.checked!==void 0&&(s.checked=t.checked,t.checked&&s.setAttribute(\"checked\",\"\"),t.indeterminate&&(s.indeterminate=t.indeterminate))}if((t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&!t.value&&t.placeholder)try{let c=window.getComputedStyle(t,\"::placeholder\"),f=c&&c.color;if(f&&f!==\"rgba(0, 0, 0, 0)\"){let d=\"snapdom-ph-\"+(Math.random()*1e6|0);s.classList.add(d);let m=document.createElement(\"style\");m.textContent=`.${d}::placeholder{color:${f}!important;opacity:${c.opacity||\"1\"}!important;-webkit-text-fill-color:${f}!important;}`,s.prepend(m)}}catch{}if(t instanceof HTMLSelectElement&&(i=t.value),t instanceof HTMLTextAreaElement&&(r=t.value),t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement){t.disabled&&s.setAttribute(\"disabled\",\"\"),t.required&&s.setAttribute(\"required\",\"\"),t.readOnly&&s.setAttribute(\"readonly\",\"\");let c=t;c.min!==void 0&&c.min!==\"\"&&s.setAttribute(\"min\",c.min),c.max!==void 0&&c.max!==\"\"&&s.setAttribute(\"max\",c.max),c.pattern!==void 0&&c.pattern!==\"\"&&s.setAttribute(\"pattern\",c.pattern);let f=t.getAttribute(\"aria-invalid\");f!==null&&s.setAttribute(\"aria-invalid\",f)}if(Zt(t)||it(t,s,e,n),a&&a(),t instanceof SVGElement&&!Zt(t)){let c=[\"fill\",\"stroke\",\"stroke-width\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"opacity\",\"fill-opacity\",\"stroke-opacity\",\"fill-rule\",\"clip-rule\",\"marker\",\"marker-start\",\"marker-mid\",\"marker-end\",\"visibility\",\"display\"];try{let f=window.getComputedStyle(t);for(let d of c){let m=f.getPropertyValue(d);m&&s.style.setProperty(d,m)}}catch{}}if(t.shadowRoot){let h=function(S,w){if(S.nodeType===Node.ELEMENT_NODE&&S.tagName===\"STYLE\")return w(null);Wt(S,e,n).then(x=>{w(x||null)}).catch(()=>{w(null)})};try{let S=t.shadowRoot.querySelectorAll(\"slot\");for(let w of S){let x=[];try{x=w.assignedNodes?.({flatten:!0})||w.assignedNodes?.()||[]}catch{x=w.assignedNodes?.()||[]}for(let v of x)o.add(v)}}catch{}let c=cn(e),f=`[data-sd=\"${c}\"]`;try{s.setAttribute(\"data-sd\",c)}catch{}let d=ln(t.shadowRoot),m=an(d,f),g=dn(d),p=mn(t,g,f);un(s,p+m,c);let y=document.createDocumentFragment(),b=await ee(Array.from(t.shadowRoot.childNodes),h,n.fast);y.append(...b.filter(S=>!!S)),s.appendChild(y)}if(t.tagName===\"SLOT\"){let m=function(p,y){Wt(p,e,n).then(h=>{h&&pn(h),y(h||null)}).catch(()=>{y(null)})},c=t.assignedNodes?.({flatten:!0})||[],f=c.length>0?c:Array.from(t.childNodes),d=document.createDocumentFragment(),g=await ee(Array.from(f),m,n.fast);return d.append(...g.filter(p=>!!p)),d}function l(c,f){if(o.has(c))return f(null);Wt(c,e,n).then(d=>{f(d||null)}).catch(()=>{f(null)})}let u=await ee(Array.from(t.childNodes),l,n.fast);if(s.append(...u.filter(c=>!!c)),i!==null&&s instanceof HTMLSelectElement){s.value=i;for(let c of s.options)c.value===i?c.setAttribute(\"selected\",\"\"):c.removeAttribute(\"selected\")}return r!==null&&s instanceof HTMLTextAreaElement&&(s.textContent=r),s}J();Lt();j();j();var Ar=[/font\\s*awesome/i,/material\\s*icons/i,/ionicons/i,/glyphicons/i,/feather/i,/bootstrap\\s*icons/i,/remix\\s*icons/i,/heroicons/i,/layui/i,/lucide/i],Ct=Object.assign({materialIconsFilled:\"https://fonts.gstatic.com/s/materialicons/v48/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2\",materialIconsOutlined:\"https://fonts.gstatic.com/s/materialiconsoutlined/v110/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUcel5euIg.woff2\",materialIconsRound:\"https://fonts.gstatic.com/s/materialiconsround/v109/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmPq_HTTw.woff2\",materialIconsSharp:\"https://fonts.gstatic.com/s/materialiconssharp/v110/oPWQ_lt5nv4pWNJpghLP75WiFR4kLh3kvmvRImcycg.woff2\"},typeof window<\"u\"&&window.__SNAPDOM_ICON_FONTS__||{}),Me=[];function vr(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function wn(t){let e=Array.isArray(t)?t:[t];for(let n of e)n instanceof RegExp?Me.push(n):typeof n==\"string\"?Me.push(new RegExp(vr(n),\"i\")):console.warn(\"[snapdom] Ignored invalid iconFont value:\",n)}function Z(t){let e=typeof t==\"string\"?t:\"\",n=[...Ar,...Me];for(let o of n)if(o instanceof RegExp&&o.test(e))return!0;return!!(/icon/i.test(e)||/glyph/i.test(e)||/symbols/i.test(e)||/feather/i.test(e)||/fontawesome/i.test(e))}function kr(t=\"\"){let e=String(t).toLowerCase();return/\\bmaterial\\s*icons\\b/.test(e)||/\\bmaterial\\s*symbols\\b/.test(e)}var bn=new Map;function Er(t=\"\"){let e=Object.create(null),n=String(t||\"\"),o=/['\"]?\\s*([A-Za-z]{3,4})\\s*['\"]?\\s*([+-]?\\d+(?:\\.\\d+)?)\\s*/g,i;for(;i=o.exec(n);)e[i[1].toUpperCase()]=Number(i[2]);return e}async function Mr(t,e,n){let o=String(t||\"\"),i=o.toLowerCase(),r=String(e||\"\").toLowerCase();if(/\\bmaterial\\s*icons\\b/.test(i)&&!/\\bsymbols\\b/.test(i))return{familyForMeasure:o,familyForCanvas:o};if(!/\\bmaterial\\s*symbols\\b/.test(i))return{familyForMeasure:o,familyForCanvas:o};let a=n&&(n.FILL??n.fill),l=\"outlined\";/\\brounded\\b/.test(r)||/\\bround\\b/.test(r)?l=\"rounded\":/\\bsharp\\b/.test(r)?l=\"sharp\":/\\boutlined\\b/.test(r)&&(l=\"outlined\");let u=a===1,c=null;if(u&&(l===\"outlined\"&&Ct.materialIconsFilled?c={url:Ct.materialIconsFilled,alias:\"snapdom-mi-filled\"}:l===\"rounded\"&&Ct.materialIconsRound?c={url:Ct.materialIconsRound,alias:\"snapdom-mi-round\"}:l===\"sharp\"&&Ct.materialIconsSharp&&(c={url:Ct.materialIconsSharp,alias:\"snapdom-mi-sharp\"})),!c)return{familyForMeasure:o,familyForCanvas:o};if(!bn.has(c.alias))try{let d=new FontFace(c.alias,`url(${c.url})`,{style:\"normal\",weight:\"400\"});document.fonts.add(d),await d.load(),bn.set(c.alias,!0)}catch{return{familyForMeasure:o,familyForCanvas:o}}let f=`\"${c.alias}\"`;return{familyForMeasure:f,familyForCanvas:f}}async function Fr(t=\"Material Icons\",e=24){try{await Promise.all([document.fonts.load(`400 ${e}px \"${String(t).replace(/[\"']/g,\"\")}\"`),document.fonts.ready])}catch{}}function $r(t){let e=t.getPropertyValue(\"-webkit-text-fill-color\")?.trim()||\"\",n=/^transparent$/i.test(e)||/rgba?\\(\\s*0\\s*,\\s*0\\s*,\\s*0\\s*,\\s*0\\s*\\)/i.test(e);if(e&&!n&&e.toLowerCase()!==\"currentcolor\")return e;let o=t.color?.trim();return o&&o!==\"inherit\"?o:\"#000\"}async function Rr(t,{family:e=\"Material Icons\",weight:n=\"normal\",fontSize:o=32,color:i=\"#000\",variation:r=\"\",className:s=\"\"}={}){let a=String(e||\"\").replace(/^['\"]+|['\"]+$/g,\"\"),l=window.devicePixelRatio||1,u=Er(r),{familyForMeasure:c,familyForCanvas:f}=await Mr(a,s,u);await Fr(f.replace(/^[\"']+|[\"']+$/g,\"\"),o);let d=document.createElement(\"span\");d.textContent=t,d.style.position=\"absolute\",d.style.visibility=\"hidden\",d.style.left=\"-99999px\",d.style.whiteSpace=\"nowrap\",d.style.fontFamily=c,d.style.fontWeight=String(n||\"normal\"),d.style.fontSize=`${o}px`,d.style.lineHeight=\"1\",d.style.margin=\"0\",d.style.padding=\"0\",d.style.fontFeatureSettings=\"'liga' 1\",d.style.fontVariantLigatures=\"normal\",d.style.color=i,document.body.appendChild(d);let m=d.getBoundingClientRect(),g=Math.max(1,Math.ceil(m.width)),p=Math.max(1,Math.ceil(m.height));document.body.removeChild(d);let y=document.createElement(\"canvas\");y.width=g*l,y.height=p*l;let h=y.getContext(\"2d\");h.scale(l,l),h.font=`${n?`${n} `:\"\"}${o}px ${f}`,h.textAlign=\"left\",h.textBaseline=\"top\",h.fillStyle=i;try{h.fontKerning=\"normal\"}catch{}return h.fillText(t,0,0),{dataUrl:y.toDataURL(),width:g,height:p}}async function Sn(t,e){if(!(t instanceof Element))return 0;let n='.material-icons, [class*=\"material-symbols\"]',o=Array.from(t.querySelectorAll(n)).filter(a=>a&&a.textContent&&a.textContent.trim());if(o.length===0)return 0;let i=A.session.nodeMap,r=e instanceof Element?Array.from(e.querySelectorAll(n)).filter(a=>a&&a.textContent&&a.textContent.trim()):[],s=0;for(let a=0;a<o.length;a++){let l=o[a],u=i&&i.get(l)||r[a]||null;try{let c=getComputedStyle(u||l),f=c.fontFamily||\"Material Icons\";if(!kr(f))continue;let d=(u||l).textContent.trim();if(!d)continue;let m=parseInt(c.fontSize,10)||24,g=c.fontWeight&&c.fontWeight!==\"normal\"?c.fontWeight:\"normal\",p=$r(c),y=c.fontVariationSettings&&c.fontVariationSettings!==\"normal\"?c.fontVariationSettings:\"\",h=(u||l).className||\"\",{dataUrl:b,width:S,height:w}=await Rr(d,{family:f,weight:g,fontSize:m,color:p,variation:y,className:h});l.textContent=\"\";let x=l.ownerDocument.createElement(\"img\");x.src=b,x.alt=d,x.style.height=`${m}px`,x.style.width=`${Math.max(1,Math.round(S/w*m))}px`,x.style.objectFit=\"contain\",x.style.verticalAlign=getComputedStyle(l).verticalAlign||\"baseline\",l.appendChild(x),s++}catch{}}return s}ht();async function An(t,e,n,o=32,i=\"#000\"){e=e.replace(/^['\"]+|['\"]+$/g,\"\");let r=window.devicePixelRatio||1;try{await document.fonts.ready}catch{}let s=document.createElement(\"span\");s.textContent=t,s.style.position=\"absolute\",s.style.visibility=\"hidden\",s.style.fontFamily=`\"${e}\"`,s.style.fontWeight=n||\"normal\",s.style.fontSize=`${o}px`,s.style.lineHeight=\"1\",s.style.whiteSpace=\"nowrap\",s.style.padding=\"0\",s.style.margin=\"0\",document.body.appendChild(s);let a=s.getBoundingClientRect(),l=Math.ceil(a.width),u=Math.ceil(a.height);document.body.removeChild(s);let c=document.createElement(\"canvas\");c.width=Math.max(1,l*r),c.height=Math.max(1,u*r);let f=c.getContext(\"2d\");return f.scale(r,r),f.font=n?`${n} ${o}px \"${e}\"`:`${o}px \"${e}\"`,f.textAlign=\"left\",f.textBaseline=\"top\",f.fillStyle=i,f.fillText(t,0,0),{dataUrl:c.toDataURL(),width:l,height:u}}var vn=new Set([\"serif\",\"sans-serif\",\"monospace\",\"cursive\",\"fantasy\",\"system-ui\",\"emoji\",\"math\",\"fangsong\",\"ui-serif\",\"ui-sans-serif\",\"ui-monospace\",\"ui-rounded\"]),Lr=[\"katex\",\"mathjax\",\"mathml\"];function $e(t){if(!t)return\"\";for(let e of t.split(\",\")){let n=e.trim().replace(/^['\"]+|['\"]+$/g,\"\");if(n&&!vn.has(n.toLowerCase()))return n}return\"\"}function Tr(t){if(!t)return[];let e=[];for(let n of t.split(\",\")){let o=n.trim().replace(/^['\"]+|['\"]+$/g,\"\");o&&(vn.has(o.toLowerCase())||e.push(o))}return e}function ne(t){let e=String(t??\"400\").trim().toLowerCase();if(e===\"normal\")return 400;if(e===\"bold\")return 700;let n=parseInt(e,10);return Number.isFinite(n)?Math.min(900,Math.max(100,n)):400}function oe(t){let e=String(t??\"normal\").trim().toLowerCase();return e.startsWith(\"italic\")?\"italic\":e.startsWith(\"oblique\")?\"oblique\":\"normal\"}function Pr(t){let e=String(t??\"100%\").match(/(\\d+(?:\\.\\d+)?)\\s*%/);return e?Math.max(50,Math.min(200,parseFloat(e[1]))):100}function Nr(t){let e=String(t||\"400\").trim(),n=e.match(/^(\\d{2,3})\\s+(\\d{2,3})$/);if(n){let i=ne(n[1]),r=ne(n[2]);return{min:Math.min(i,r),max:Math.max(i,r)}}let o=ne(e);return{min:o,max:o}}function Ir(t){let e=String(t||\"normal\").trim().toLowerCase();return e===\"italic\"?{kind:\"italic\"}:e.startsWith(\"oblique\")?{kind:\"oblique\"}:{kind:\"normal\"}}function _r(t){let e=String(t||\"100%\").trim(),n=e.match(/(\\d+(?:\\.\\d+)?)\\s*%\\s+(\\d+(?:\\.\\d+)?)\\s*%/);if(n){let r=parseFloat(n[1]),s=parseFloat(n[2]);return{min:Math.min(r,s),max:Math.max(r,s)}}let o=e.match(/(\\d+(?:\\.\\d+)?)\\s*%/),i=o?parseFloat(o[1]):100;return{min:i,max:i}}function Wr(t){return!t||typeof t!=\"string\"?\"\":t.replace(/\\s+(variable|vf|v[0-9]+)$/i,\"\").trim().toLowerCase().replace(/\\s+/g,\"-\")}function Or(t,e,n=[]){if(!t)return!1;try{let o=new URL(t,location.href);if(o.origin===location.origin)return!0;let r=o.host.toLowerCase();if([\"fonts.googleapis.com\",\"fonts.gstatic.com\",\"use.typekit.net\",\"p.typekit.net\",\"kit.fontawesome.com\",\"use.fontawesome.com\",\"cdn.jsdelivr.net\",\"unpkg.com\",\"cdnjs.cloudflare.com\",\"esm.sh\"].some(l=>r.endsWith(l))||n.some(l=>r===l.toLowerCase()||r.endsWith(\".\"+l.toLowerCase())))return!0;let a=(o.pathname+o.search).toLowerCase();if(/\\bfont(s)?\\b/.test(a)||/\\.woff2?(\\b|$)/.test(a)||Lr.some(l=>a.includes(l)))return!0;for(let l of e){let u=l.toLowerCase().replace(/\\s+/g,\"+\"),c=l.toLowerCase().replace(/\\s+/g,\"-\"),f=Wr(l);if(a.includes(u)||a.includes(c)||f&&a.includes(f))return!0}return!1}catch{return!1}}function Ur(t){let e=new Set;for(let n of t||[]){let o=String(n).split(\"__\")[0]?.trim();o&&e.add(o)}return e}function xn(t,e){return t&&t.replace(/url\\(\\s*(['\"]?)([^)'\"]+)\\1\\s*\\)/g,(n,o,i)=>{let r=(i||\"\").trim();if(!r||/^data:|^blob:|^https?:|^file:|^about:/i.test(r))return n;let s=r;try{s=new URL(r,e||location.href).href}catch{}return`url(\"${s}\")`})}var Fe=/@import\\s+(?:url\\(\\s*(['\"]?)([^)\"']+)\\1\\s*\\)|(['\"])([^\"']+)\\3)([^;]*);/g,re=4;async function Br(t,e,n){if(!t)return t;let o=new Set;function i(a,l){try{return new URL(a,l||location.href).href}catch{return a}}async function r(a,l,u=0){if(u>re)return console.warn(`[snapDOM] @import depth exceeded (${re}) at ${l}`),a;let c=\"\",f=0,d;for(;d=Fe.exec(a);){c+=a.slice(f,d.index),f=Fe.lastIndex;let m=(d[2]||d[4]||\"\").trim(),g=i(m,l);if(o.has(g)){console.warn(`[snapDOM] Skipping circular @import: ${g}`);continue}o.add(g);let p=\"\";try{let y=await B(g,{as:\"text\",useProxy:n,silent:!0});y.ok&&typeof y.data==\"string\"&&(p=y.data)}catch{}p?(p=xn(p,g),p=await r(p,g,u+1),c+=`\n/* inlined: ${g} */\n${p}\n`):c+=d[0]}return c+=a.slice(f),c}let s=xn(t,e||location.href);return s=await r(s,e||location.href,0),s}var kn=/url\\(([\"']?)([^\"')]+)\\1\\)/g,Dr=/@font-face[^{}]*\\{[^}]*\\}/g;function En(t){if(!t)return[];let e=[],n=t.split(\",\").map(o=>o.trim()).filter(Boolean);for(let o of n){let i=o.match(/^U\\+([0-9A-Fa-f?]+)(?:-([0-9A-Fa-f?]+))?$/);if(!i)continue;let r=i[1],s=i[2],a=l=>{if(!l.includes(\"?\"))return parseInt(l,16);let u=parseInt(l.replace(/\\?/g,\"0\"),16),c=parseInt(l.replace(/\\?/g,\"F\"),16);return[u,c]};if(s){let l=a(r),u=a(s),c=Array.isArray(l)?l[0]:l,f=Array.isArray(u)?u[1]:u;e.push([Math.min(c,f),Math.max(c,f)])}else{let l=a(r);Array.isArray(l)?e.push([l[0],l[1]]):e.push([l,l])}}return e}function Mn(t,e){if(!e.length||!t||t.size===0)return!0;for(let n of t)for(let[o,i]of e)if(n>=o&&n<=i)return!0;return!1}function Re(t,e){let n=[];if(!t)return n;for(let o of t.matchAll(kn)){let i=(o[2]||\"\").trim();if(!(!i||i.startsWith(\"data:\"))){if(!/^https?:/i.test(i))try{i=new URL(i,e||location.href).href}catch{}n.push(i)}}return n}async function Fn(t,e,n=\"\"){let o=t;for(let i of t.matchAll(kn)){let r=pt(i[0]);if(!r)continue;let s=r;if(!s.startsWith(\"http\")&&!s.startsWith(\"data:\"))try{s=new URL(s,e||location.href).href}catch{}if(!Z(s)){if(A.resource?.has(s)){A.font?.add(s),o=o.replace(i[0],`url(${A.resource.get(s)})`);continue}if(!A.font?.has(s))try{let a=await B(s,{as:\"dataURL\",useProxy:n,silent:!0});if(a.ok&&typeof a.data==\"string\"){let l=a.data;A.resource?.set(s,l),A.font?.add(s),o=o.replace(i[0],`url(${l})`)}}catch{console.warn(\"[snapDOM] Failed to fetch font resource:\",s)}}}return o}function Hr(t){if(!t.length)return null;let e=(a,l)=>t.some(([u,c])=>!(c<a||u>l)),n=e(0,255)||e(305,305),o=e(256,591)||e(7680,7935),i=e(880,1023),r=e(1024,1279);return e(7840,7929)||e(258,259)||e(416,417)||e(431,432)?\"vietnamese\":r?\"cyrillic\":i?\"greek\":o?\"latin-ext\":n?\"latin\":null}function Cn(t={}){let e=new Set((t.families||[]).map(i=>String(i).toLowerCase())),n=new Set((t.domains||[]).map(i=>String(i).toLowerCase())),o=new Set((t.subsets||[]).map(i=>String(i).toLowerCase()));return(i,r)=>{if(e.size&&e.has(i.family.toLowerCase()))return!0;if(n.size)for(let s of i.srcUrls)try{if(n.has(new URL(s).host.toLowerCase()))return!0}catch{}if(o.size){let s=Hr(r);if(s&&o.has(s))return!0}return!1}}function zr(t){if(!t)return t;let e=/@font-face[^{}]*\\{[^}]*\\}/gi,n=new Set,o=[];for(let r of t.match(e)||[]){let s=r.match(/font-family:\\s*([^;]+);/i)?.[1]||\"\",a=$e(s),l=(r.match(/font-weight:\\s*([^;]+);/i)?.[1]||\"400\").trim(),u=(r.match(/font-style:\\s*([^;]+);/i)?.[1]||\"normal\").trim(),c=(r.match(/font-stretch:\\s*([^;]+);/i)?.[1]||\"100%\").trim(),f=(r.match(/unicode-range:\\s*([^;]+);/i)?.[1]||\"\").trim(),d=(r.match(/src\\s*:\\s*([^;}]+)[;}]/i)?.[1]||\"\").trim(),m=Re(d,location.href),g=m.length?m.map(y=>String(y).toLowerCase()).sort().join(\"|\"):d.toLowerCase(),p=[String(a||\"\").toLowerCase(),l,u,c,f.toLowerCase(),g].join(\"|\");n.has(p)||(n.add(p),o.push(r))}if(o.length===0)return t;let i=0;return t.replace(e,()=>o[i++]||\"\")}function Vr(t,e,n,o,i){let r=Array.from(t||[]).sort().join(\"|\"),s=e?JSON.stringify({families:(e.families||[]).map(c=>String(c).toLowerCase()).sort(),domains:(e.domains||[]).map(c=>String(c).toLowerCase()).sort(),subsets:(e.subsets||[]).map(c=>String(c).toLowerCase()).sort()}):\"\",a=(n||[]).map(c=>`${(c.family||\"\").toLowerCase()}::${c.weight||\"normal\"}::${c.style||\"normal\"}::${c.src||\"\"}`).sort().join(\"|\"),l=o||\"\",u=(i||[]).map(c=>String(c).toLowerCase()).sort().join(\"|\");return`fonts-embed-css::req=${r}::ex=${s}::lf=${a}::px=${l}::fd=${u}`}async function $n(t,e,n,o){let i;try{i=t.cssRules||[]}catch{return}let r=(s,a)=>{try{return new URL(s,a||location.href).href}catch{return s}};for(let s of i){if(s.type===CSSRule.IMPORT_RULE&&s.styleSheet){let a=s.href?r(s.href,e):e;if(o.depth>=re){console.warn(`[snapDOM] CSSOM import depth exceeded (${re}) at ${a}`);continue}if(a&&o.visitedSheets.has(a)){console.warn(`[snapDOM] Skipping circular CSSOM import: ${a}`);continue}a&&o.visitedSheets.add(a);let l={...o,depth:(o.depth||0)+1};await $n(s.styleSheet,a,n,l);continue}if(s.type===CSSRule.FONT_FACE_RULE){let a=(s.style.getPropertyValue(\"font-family\")||\"\").trim(),l=$e(a);if(!l||Z(l))continue;let u=(s.style.getPropertyValue(\"font-weight\")||\"400\").trim(),c=(s.style.getPropertyValue(\"font-style\")||\"normal\").trim(),f=(s.style.getPropertyValue(\"font-stretch\")||\"100%\").trim(),d=(s.style.getPropertyValue(\"src\")||\"\").trim(),m=(s.style.getPropertyValue(\"unicode-range\")||\"\").trim();if(!o.faceMatchesRequired(l,c,u,f))continue;let g=En(m);if(!Mn(o.usedCodepoints,g))continue;let p={family:l,weightSpec:u,styleSpec:c,stretchSpec:f,unicodeRange:m,srcRaw:d,srcUrls:Re(d,e||location.href),href:e||location.href};if(o.simpleExcluder&&o.simpleExcluder(p,g))continue;if(/url\\(/i.test(d)){let y=await Fn(d,e||location.href,o.useProxy);await n(`@font-face{font-family:${l};src:${y};font-style:${c};font-weight:${u};font-stretch:${f};${m?`unicode-range:${m};`:\"\"}}`)}else await n(`@font-face{font-family:${l};src:${d};font-style:${c};font-weight:${u};font-stretch:${f};${m?`unicode-range:${m};`:\"\"}}`)}}}async function ie({required:t,usedCodepoints:e,exclude:n=void 0,localFonts:o=[],useProxy:i=\"\",fontStylesheetDomains:r=[]}={}){t instanceof Set||(t=new Set),e instanceof Set||(e=new Set);let s=new Map;for(let h of t){let[b,S,w,x]=String(h).split(\"__\");if(!b)continue;let v=b.toLowerCase(),C=s.get(v)||[];C.push({w:parseInt(S,10),s:w,st:parseInt(x,10)}),s.set(v,C)}function a(h,b,S,w){let x=String(h).toLowerCase();if(!s.has(x))return!1;let v=s.get(x),C=Nr(S),k=Ir(b),E=_r(w),P=C.min!==C.max,W=C.min,z=L=>k.kind===\"normal\"&&L===\"normal\"||k.kind!==\"normal\"&&(L===\"italic\"||L===\"oblique\"),Y=!1;for(let L of v){let I=P?L.w>=C.min&&L.w<=C.max:L.w===W,F=z(oe(L.s)),X=L.st>=E.min&&L.st<=E.max;if(I&&F&&X){Y=!0;break}}if(Y)return!0;if(!P)for(let L of v){let I=z(oe(L.s)),F=L.st>=E.min&&L.st<=E.max;if(Math.abs(W-L.w)<=300&&I&&F)return!0}if(!P&&k.kind===\"normal\"&&v.some(I=>oe(I.s)!==\"normal\"))for(let I of v){let F=Math.abs(W-I.w)<=300,X=I.st>=E.min&&I.st<=E.max;if(F&&X)return!0}return!1}let l=Cn(n),u=Vr(t,n,o,i,r);if(A.resource?.has(u))return A.resource.get(u);let c=Ur(t),f=[],d=Fe;for(let h of document.querySelectorAll(\"style\")){let b=h.textContent||\"\";for(let S of b.matchAll(d)){let w=(S[2]||S[4]||\"\").trim();if(!w||Z(w))continue;!!document.querySelector(`link[rel=\"stylesheet\"][href=\"${w}\"]`)||f.push(w)}}let m=[];f.length&&await Promise.all(f.map(h=>new Promise(b=>{if(document.querySelector(`link[rel=\"stylesheet\"][href=\"${h}\"]`))return b(null);let S=document.createElement(\"link\");S.rel=\"stylesheet\",S.href=h,S.setAttribute(\"data-snapdom\",\"injected-import\"),S.onload=()=>b(S),S.onerror=()=>b(null),document.head.appendChild(S),m.push(S)})));let g=\"\",p=Array.from(document.querySelectorAll('link[rel=\"stylesheet\"]')).filter(h=>!!h.href);for(let h of m)try{h.remove()}catch{}for(let h of p)try{if(Z(h.href))continue;let b=\"\",S=!1;try{S=new URL(h.href,location.href).origin===location.origin}catch{}if(!S){let x=Array.isArray(r)?r:[];if(!Or(h.href,c,x))continue}if(S){let x=Array.from(document.styleSheets).find(v=>v.href===h.href);if(x)try{let v=x.cssRules||[];b=Array.from(v).map(C=>C.cssText).join(\"\")}catch{}}if(!b){let x=await B(h.href,{as:\"text\",useProxy:i});if(x?.ok&&typeof x.data==\"string\"&&(b=x.data),Z(h.href))continue}b=await Br(b,h.href,i);let w=\"\";for(let x of b.match(Dr)||[]){let v=(x.match(/font-family:\\s*([^;]+);/i)?.[1]||\"\").trim(),C=$e(v);if(!C||Z(C))continue;let k=(x.match(/font-weight:\\s*([^;]+);/i)?.[1]||\"400\").trim(),E=(x.match(/font-style:\\s*([^;]+);/i)?.[1]||\"normal\").trim(),P=(x.match(/font-stretch:\\s*([^;]+);/i)?.[1]||\"100%\").trim(),W=(x.match(/unicode-range:\\s*([^;]+);/i)?.[1]||\"\").trim(),z=(x.match(/src\\s*:\\s*([^;}]+)[;}]/i)?.[1]||\"\").trim(),Y=Re(z,h.href);if(!a(C,E,k,P))continue;let L=En(W);if(!Mn(e,L))continue;let I={family:C,weightSpec:k,styleSpec:E,stretchSpec:P,unicodeRange:W,srcRaw:z,srcUrls:Y,href:h.href};if(n&&l(I,L))continue;let F=/url\\(/i.test(z)?await Fn(x,h.href,i):x;w+=F}w.trim()&&(g+=w)}catch{console.warn(\"[snapDOM] Failed to process stylesheet:\",h.href)}let y={requiredIndex:s,usedCodepoints:e,faceMatchesRequired:a,simpleExcluder:n?Cn(n):null,useProxy:i,visitedSheets:new Set,depth:0};for(let h of document.styleSheets)if(!(h.href&&p.some(b=>b.href===h.href)))try{let b=h.href||location.origin+\"/\";b&&y.visitedSheets.add(b),await $n(h,b,async S=>{g+=S},y)}catch{}try{for(let h of document.fonts||[]){if(!h||!h.family||h.status!==\"loaded\"||!h._snapdomSrc)continue;let b=String(h.family).replace(/^['\"]+|['\"]+$/g,\"\");if(Z(b)||!s.has(b.toLowerCase())||n?.families&&n.families.some(w=>String(w).toLowerCase()===b.toLowerCase()))continue;let S=h._snapdomSrc;if(!String(S).startsWith(\"data:\")){if(A.resource?.has(h._snapdomSrc))S=A.resource.get(h._snapdomSrc),A.font?.add(h._snapdomSrc);else if(!A.font?.has(h._snapdomSrc))try{let w=await B(h._snapdomSrc,{as:\"dataURL\",useProxy:i,silent:!0});if(w.ok&&typeof w.data==\"string\")S=w.data,A.resource?.set(h._snapdomSrc,S),A.font?.add(h._snapdomSrc);else continue}catch{console.warn(\"[snapDOM] Failed to fetch dynamic font src:\",h._snapdomSrc);continue}}g+=`@font-face{font-family:'${b}';src:url(${S});font-style:${h.style||\"normal\"};font-weight:${h.weight||\"normal\"};}`}}catch{}for(let h of o){if(!h||typeof h!=\"object\")continue;let b=String(h.family||\"\").replace(/^['\"]+|['\"]+$/g,\"\");if(!b||Z(b)||!s.has(b.toLowerCase())||n?.families&&n.families.some(k=>String(k).toLowerCase()===b.toLowerCase()))continue;let S=h.weight!=null?String(h.weight):\"normal\",w=h.style!=null?String(h.style):\"normal\",x=h.stretchPct!=null?`${h.stretchPct}%`:\"100%\",v=String(h.src||\"\"),C=v;if(!C.startsWith(\"data:\")){if(A.resource?.has(v))C=A.resource.get(v),A.font?.add(v);else if(!A.font?.has(v))try{let k=await B(v,{as:\"dataURL\",useProxy:i,silent:!0});if(k.ok&&typeof k.data==\"string\")C=k.data,A.resource?.set(v,C),A.font?.add(v);else continue}catch{console.warn(\"[snapDOM] Failed to fetch localFonts src:\",v);continue}}g+=`@font-face{font-family:'${b}';src:url(${C});font-style:${w};font-weight:${S};font-stretch:${x};}`}return g&&(g=zr(g),A.resource?.set(u,g)),g}function At(t){let e=new Set;if(!t)return e;let n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null),o=s=>{let a=Tr(s.fontFamily);if(a.length)for(let l of a){let u=(c,f,d)=>`${l}__${ne(c)}__${oe(f)}__${Pr(d)}`;e.add(u(s.fontWeight,s.fontStyle,s.fontStretch))}};o(getComputedStyle(t));let i=getComputedStyle(t,\"::before\");i&&i.content&&i.content!==\"none\"&&o(i);let r=getComputedStyle(t,\"::after\");for(r&&r.content&&r.content!==\"none\"&&o(r);n.nextNode();){let s=n.currentNode,a=getComputedStyle(s);o(a);let l=getComputedStyle(s,\"::before\");l&&l.content&&l.content!==\"none\"&&o(l);let u=getComputedStyle(s,\"::after\");u&&u.content&&u.content!==\"none\"&&o(u)}return e}function se(t){let e=new Set,n=i=>{if(i)for(let r of i)e.add(r.codePointAt(0))},o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null);for(;o.nextNode();){let i=o.currentNode;if(i.nodeType===Node.TEXT_NODE)n(i.nodeValue||\"\");else if(i.nodeType===Node.ELEMENT_NODE){let r=i;for(let s of[\"::before\",\"::after\"]){let l=getComputedStyle(r,s)?.getPropertyValue(\"content\");if(!(!l||l===\"none\"))if(/^\"/.test(l)||/^'/.test(l))n(l.slice(1,-1));else{let u=l.match(/\\\\[0-9A-Fa-f]{1,6}/g);if(u)for(let c of u)try{e.add(parseInt(c.slice(1),16))}catch{}}}}}return e}async function vt(t,e=2){try{await document.fonts.ready}catch{}let n=Array.from(t||[]).filter(Boolean);if(n.length===0)return;let o=()=>{let i=document.createElement(\"div\");i.style.cssText=\"position:absolute!important;left:-9999px!important;top:0!important;opacity:0!important;pointer-events:none!important;contain:layout size style;\";for(let r of n){let s=document.createElement(\"span\");s.textContent=\"AaBbGg1234\\xC1\\xC9\\xCD\\xD3\\xDA\\xE7\\xF1\\u2014\\u221E\",s.style.fontFamily=`\"${r}\"`,s.style.fontWeight=\"700\",s.style.fontStyle=\"italic\",s.style.fontSize=\"32px\",s.style.lineHeight=\"1\",s.style.whiteSpace=\"nowrap\",s.style.margin=\"0\",s.style.padding=\"0\",i.appendChild(s)}document.body.appendChild(i),i.offsetWidth,document.body.removeChild(i)};for(let i=0;i<Math.max(1,e);i++)o(),await new Promise(r=>requestAnimationFrame(()=>requestAnimationFrame(r)))}j();function Pn(t){return/\\bcounter\\s*\\(|\\bcounters\\s*\\(/.test(t||\"\")}function Rn(t,e=!1){let n=\"\",o=Math.max(1,t);for(;o>0;)o--,n=String.fromCharCode(97+o%26)+n,o=Math.floor(o/26);return e?n.toUpperCase():n}function Ln(t,e=!0){let n=[[1e3,\"M\"],[900,\"CM\"],[500,\"D\"],[400,\"CD\"],[100,\"C\"],[90,\"XC\"],[50,\"L\"],[40,\"XL\"],[10,\"X\"],[9,\"IX\"],[5,\"V\"],[4,\"IV\"],[1,\"I\"]],o=Math.max(1,Math.min(3999,t)),i=\"\";for(let[r,s]of n)for(;o>=r;)i+=s,o-=r;return e?i:i.toLowerCase()}function Tn(t,e){switch((e||\"decimal\").toLowerCase()){case\"decimal\":return String(t);case\"decimal-leading-zero\":{let n=Math.abs(t);return(t<0?\"-\":\"\")+(n<10?\"0\":\"\")+String(n)}case\"lower-alpha\":return Rn(t,!1);case\"upper-alpha\":return Rn(t,!0);case\"lower-roman\":return Ln(t,!1);case\"upper-roman\":return Ln(t,!0);default:return String(t)}}function Nn(t){let e=()=>A?.session?.__counterEpoch??0,n=e(),o=new WeakMap,i=t instanceof Document?t.documentElement:t,r=d=>d&&d.tagName===\"LI\",s=d=>{let m=0,g=d?.parentElement;if(!g)return 0;for(let p of g.children){if(p===d)break;p.tagName===\"LI\"&&m++}return m},a=d=>{let m=new Map;for(let[g,p]of d)m.set(g,p.slice());return m},l=(d,m,g)=>{let p=a(d),y;try{y=g.style?.counterReset||getComputedStyle(g).counterReset}catch{}if(y&&y!==\"none\")for(let S of y.split(\",\")){let w=S.trim().split(/\\s+/),x=w[0],v=Number.isFinite(Number(w[1]))?Number(w[1]):0;if(!x)continue;let C=m.get(x);if(C&&C.length){let k=C.slice();k.push(v),p.set(x,k)}else p.set(x,[v])}let h;try{h=g.style?.counterSet||getComputedStyle(g).counterSet}catch{}if(h&&h!==\"none\")for(let S of h.split(\",\")){let w=S.trim().split(/\\s+/),x=w[0],v=Number.isFinite(Number(w[1]))?Number(w[1]):0;if(!x)continue;let C=p.get(x)||[];C.length===0&&C.push(0),C[C.length-1]=v,p.set(x,C)}let b;try{b=g.style?.counterIncrement||getComputedStyle(g).counterIncrement}catch{}if(b&&b!==\"none\")for(let S of b.split(\",\")){let w=S.trim().split(/\\s+/),x=w[0],v=Number.isFinite(Number(w[1]))?Number(w[1]):1;if(!x)continue;let C=p.get(x)||[];C.length===0&&C.push(0),C[C.length-1]+=v,p.set(x,C)}try{if(getComputedStyle(g).display===\"list-item\"&&r(g)){let w=g.parentElement,x=1;if(w&&w.tagName===\"OL\"){let C=w.getAttribute(\"start\"),k=Number.isFinite(Number(C))?Number(C):1,E=s(g),P=g.getAttribute(\"value\");x=Number.isFinite(Number(P))?Number(P):k+E}else x=1+s(g);let v=p.get(\"list-item\")||[];v.length===0&&v.push(0),v[v.length-1]=x,p.set(\"list-item\",v)}}catch{}return p},u=(d,m,g)=>{let p=l(g,m,d);o.set(d,p);let y=p;for(let b of d.children)y=u(b,p,y);let h=new Map;for(let[b,S]of g){let w=S.length,x=y.get(b);h.set(b,x&&x.length?x.slice(0,w):S.slice())}for(let[b,S]of y)!h.has(b)&&S.length&&!m.has(b)&&h.set(b,S.slice(0,1));return h},c=new Map;u(i,c,c);function f(){let d=e();if(d!==n){n=d;let m=new Map;u(i,m,m)}}return{get(d,m){f();let g=o.get(d)?.get(m);return g&&g.length?g[g.length-1]:0},getStack(d,m){f();let g=o.get(d)?.get(m);return g?g.slice():[]}}}function In(t,e,n){if(!t||t===\"none\")return t;try{let o=/\\b(counter|counters)\\s*\\(([^)]+)\\)/g;return t.replace(o,(i,r,s)=>{let a=String(s).split(\",\").map(l=>l.trim());if(r===\"counter\"){let l=a[0]?.replace(/^[\"']|[\"']$/g,\"\"),u=(a[1]||\"decimal\").toLowerCase(),c=n.get(e,l);return Tn(c,u)}else{let l=a[0]?.replace(/^[\"']|[\"']$/g,\"\"),u=a[1]?.replace(/^[\"']|[\"']$/g,\"\")??\"\",c=(a[2]||\"decimal\").toLowerCase(),f=n.getStack(e,l);return f.length?f.map(m=>Tn(m,c)).join(u):\"\"}})}catch{return\"- \"}}ht();j();var kt=new WeakMap,_n=1e3;function qr(t,e){let n=Dn(t);return e?(e.__pseudoPreflightFp!==n&&(e.__pseudoPreflight=On(t,n),e.__pseudoPreflightFp=n),!!e.__pseudoPreflight):On(t,n)}function Le(t){try{return t&&t.cssRules?t.cssRules:null}catch{return null}}function Dn(t){let e=t.querySelectorAll('style,link[rel~=\"stylesheet\"]'),n=`n:${e.length}|`,o=0;for(let r=0;r<e.length;r++){let s=e[r];if(s.tagName===\"STYLE\"){let a=s.textContent?s.textContent.length:0;n+=`S${a}|`;let l=s.sheet,u=l?Le(l):null;u&&(o+=u.length)}else{let a=s.getAttribute(\"href\")||\"\",l=s.getAttribute(\"media\")||\"all\";n+=`L${a}|m:${l}|`;let u=s.sheet,c=u?Le(u):null;c&&(o+=c.length)}}let i=t.adoptedStyleSheets;return n+=`ass:${Array.isArray(i)?i.length:0}|tr:${o}`,n}function Wn(t,e,n){let o=Le(t);if(!o)return!1;for(let i=0;i<o.length;i++){if(n.budget<=0)return!1;let r=o[i],s=r&&r.cssText?r.cssText:\"\";n.budget--;for(let a of e)if(s.includes(a))return!0;if(r&&r.cssRules&&r.cssRules.length)for(let a=0;a<r.cssRules.length&&n.budget>0;a++){let l=r.cssRules[a],u=l&&l.cssText?l.cssText:\"\";n.budget--;for(let c of e)if(u.includes(c))return!0}if(n.budget<=0)return!1}return!1}function On(t=document,e=Dn(t)){let n=kt.get(t);if(n&&n.fingerprint===e)return n.result;let o=[\"::before\",\"::after\",\"::first-letter\",\":before\",\":after\",\":first-letter\",\"counter(\",\"counters(\",\"counter-increment\",\"counter-reset\"],i=t.querySelectorAll(\"style\");for(let s=0;s<i.length;s++){let a=i[s].textContent||\"\";for(let l of o)if(a.includes(l))return kt.set(t,{fingerprint:e,result:!0}),!0}let r=t.adoptedStyleSheets;if(Array.isArray(r)&&r.length){let s={budget:_n};try{for(let a of r)if(Wn(a,o,s))return kt.set(t,{fingerprint:e,result:!0}),!0}catch{}}{let s=t.querySelectorAll('style,link[rel~=\"stylesheet\"]'),a={budget:_n};for(let l=0;l<s.length&&a.budget>0;l++){let u=s[l],c=null;if(u.tagName,c=u.sheet||null,c&&Wn(c,o,a))return kt.set(t,{fingerprint:e,result:!0}),!0}}return t.querySelector('[style*=\"counter(\"], [style*=\"counters(\"]')?(kt.set(t,{fingerprint:e,result:!0}),!0):(kt.set(t,{fingerprint:e,result:!1}),!1)}var Et=new WeakMap;function Un(t){for(let e of[\"Top\",\"Right\",\"Bottom\",\"Left\"]){let n=parseFloat(t[`border${e}Width`])||0,o=t[`border${e}Style`];if(n>0&&o&&o!==\"none\"&&o!==\"hidden\")return!0}return!1}var Bn=-1;function jr(t){if(!t)return\"\";let e=[],n=/\"([^\"]*)\"/g,o=0,i;for(;i=n.exec(t);){let s=t.slice(o,i.index).trim();s&&e.push(s),e.push(i[1]),o=n.lastIndex}let r=t.slice(o).trim();return r&&e.push(r),e.join(\"\")}function Te(t,e){let n=t.parentElement,o=n?Et.get(n):null;return o?{get(i,r){let s=e.get(i,r),a=o.get(r);return typeof a==\"number\"?Math.max(s,a):s},getStack(i,r){let s=e.getStack(i,r);if(!s.length)return s;let a=o.get(r);if(typeof a==\"number\"){let l=s.slice();return l[l.length-1]=Math.max(l[l.length-1],a),l}return s}}:e}function Pe(t,e,n){let o=new Map;function i(u){let c=[];if(!u||u===\"none\")return c;for(let f of String(u).split(\",\")){let d=f.trim().split(/\\s+/),m=d[0],g=Number.isFinite(Number(d[1]))?Number(d[1]):void 0;m&&c.push({name:m,num:g})}return c}let r=i(e?.counterReset),s=i(e?.counterSet),a=i(e?.counterIncrement);function l(u){if(o.has(u))return o.get(u).slice();let c=n.getStack(t,u);c=c.length?c.slice():[];let f=r.find(g=>g.name===u);if(f){let g=Number.isFinite(f.num)?f.num:0;c=c.length?[...c,g]:[g]}let d=s.find(g=>g.name===u);if(d){let g=Number.isFinite(d.num)?d.num:0;c.length===0&&(c=[0]),c[c.length-1]=g}let m=a.find(g=>g.name===u);if(m){let g=Number.isFinite(m.num)?m.num:1;c.length===0&&(c=[0]),c[c.length-1]+=g}return o.set(u,c.slice()),c}return{get(u,c){let f=l(c);return f.length?f[f.length-1]:0},getStack(u,c){return l(c)},__incs:a}}function Xr(t,e,n){let o;try{o=_(t,e)}catch{}let i=o?.content;if(!i||i===\"none\"||i===\"normal\")return{text:\"\",incs:[]};let r=Te(t,n),s=Pe(t,o,r),a=Pn(i)?In(i,t,s):i;return{text:jr(a),incs:s.__incs||[]}}async function ae(t,e,n,o){if(!(t instanceof Element)||!(e instanceof Element))return;let i=t.ownerDocument||document;if(!qr(i,n))return;let r=A?.session?.__counterEpoch??0;if(Bn!==r&&(Et=new WeakMap,n&&(n.__counterCtx=null),Bn=r),!n.__counterCtx)try{n.__counterCtx=Nn(t.ownerDocument||document)}catch(l){R(n,\"buildCounterContext failed\",l)}let s=n.__counterCtx;for(let l of[\"::before\",\"::after\",\"::first-letter\"])try{let u=_(t,l);if(!u||u.content===\"none\"&&u.backgroundImage===\"none\"&&u.backgroundColor===\"transparent\"&&!Un(u)&&(!u.transform||u.transform===\"none\")&&u.display===\"inline\")continue;if(l===\"::first-letter\"){let $=_(t),T=($?.display||\"\").toLowerCase();if(T.includes(\"flex\")||T.includes(\"grid\")||!(u.color!==$.color||u.fontSize!==$.fontSize||u.fontWeight!==$.fontWeight||u.fontFamily!==$.fontFamily||u.fontStyle!==$.fontStyle||u.textTransform!==$.textTransform||u.float!==$.float||u.paddingTop!==$.paddingTop||u.paddingRight!==$.paddingRight||u.paddingBottom!==$.paddingBottom||u.paddingLeft!==$.paddingLeft||u.marginTop!==$.marginTop||u.marginRight!==$.marginRight||u.marginBottom!==$.marginBottom||u.marginLeft!==$.marginLeft))continue;let U=Array.from(e.childNodes).find(Vt=>Vt.nodeType===Node.TEXT_NODE&&Vt.textContent?.trim().length>0);if(!U)continue;let K=U.textContent,et=K.match(/^([^\\p{L}\\p{N}\\s]*[\\p{L}\\p{N}](?:['’])?)/u)?.[0],Ht=K.slice(et?.length||0);if(!et||/[\\uD800-\\uDFFF]/.test(et))continue;let mt=document.createElement(\"span\");mt.textContent=et,mt.dataset.snapdomPseudo=\"::first-letter\";let fe=Qt(u),de=wt(fe,\"span\");n.styleMap.set(mt,de);let zt=document.createTextNode(Ht);e.replaceChild(zt,U),e.insertBefore(mt,zt);continue}let f=u.content??\"\",d=f===\"\"||f===\"none\"||f===\"normal\",{text:m,incs:g}=Xr(t,l,s),p=u.backgroundImage,y=u.backgroundColor,h=u.fontFamily,b=parseInt(u.fontSize)||32,S=parseInt(u.fontWeight)||!1,w=u.color||\"#000\",x=u.transform,v=Z(h),C=!d&&m!==\"\",k=p&&p!==\"none\",E=y&&y!==\"transparent\"&&y!==\"rgba(0, 0, 0, 0)\",P=Un(u),W=x&&x!==\"none\",Y=f!==\"none\"&&f!==\"normal\"&&((parseFloat(u.width)||0)>0||(parseFloat(u.height)||0)>0);if(!(C||k||E||P||W||Y)){if(g&&g.length&&t.parentElement){let $=Et.get(t.parentElement)||new Map;for(let{name:T}of g){if(!T)continue;let O=Te(t,s),K=Pe(t,_(t,l),O).get(t,T);$.set(T,K)}Et.set(t.parentElement,$)}continue}let I=!1;if(C&&!v&&m.length>1&&!m.startsWith(\"url(\")){let $=_(t),T=parseFloat($.fontSize)||16,O=parseFloat($.lineHeight);Number.isFinite(O)||(O=T*1.5),t.getBoundingClientRect().height<O*1.6&&(e.style.whiteSpace=\"nowrap\",I=!0)}let F=document.createElement(\"span\");F.dataset.snapdomPseudo=l,F.style.pointerEvents=\"none\",I&&(F.style.whiteSpace=\"nowrap\");let X=Qt(u),Dt=wt(X,\"span\");if(n.styleMap.set(F,Dt),v&&m&&m.length===1){let{dataUrl:$,width:T,height:O}=await An(m,h,S,b,w),U=document.createElement(\"img\");U.src=$,U.style=`height:${b}px;width:${T/O*b}px;object-fit:contain;`,F.appendChild(U),e.dataset.snapdomHasIcon=\"true\"}else if(m&&m.startsWith(\"url(\")){let $=pt(m);if($?.trim())try{let T=await B(ft($),{as:\"dataURL\",useProxy:o.useProxy});if(T?.ok&&typeof T.data==\"string\"){let O=document.createElement(\"img\");O.src=T.data,O.style=`width:${b}px;height:auto;object-fit:contain;`,F.appendChild(O)}}catch(T){console.error(`[snapdom] Error in pseudo ${l} for`,t,T)}}else!v&&C&&(F.textContent=m);F.style.backgroundImage=\"none\",\"maskImage\"in F.style&&(F.style.maskImage=\"none\"),\"webkitMaskImage\"in F.style&&(F.style.webkitMaskImage=\"none\");try{F.style.backgroundRepeat=u.backgroundRepeat,F.style.backgroundSize=u.backgroundSize,u.backgroundPositionX&&u.backgroundPositionY?(F.style.backgroundPositionX=u.backgroundPositionX,F.style.backgroundPositionY=u.backgroundPositionY):F.style.backgroundPosition=u.backgroundPosition,F.style.backgroundOrigin=u.backgroundOrigin,F.style.backgroundClip=u.backgroundClip,F.style.backgroundAttachment=u.backgroundAttachment,F.style.backgroundBlendMode=u.backgroundBlendMode}catch{}if(k)try{let $=St(p),T=await Promise.all($.map(gt));F.style.backgroundImage=T.join(\", \")}catch($){console.warn(`[snapdom] Failed to inline background-image for ${l}`,$)}E&&(F.style.backgroundColor=y);let at=F.childNodes.length>0||F.textContent?.trim()!==\"\"||k||E||P||W||Y;if(g&&g.length&&t.parentElement){let $=Et.get(t.parentElement)||new Map,T=Te(t,s),O=Pe(t,_(t,l),T);for(let{name:U}of g){if(!U)continue;let K=O.get(t,U);$.set(U,K)}Et.set(t.parentElement,$)}if(!at)continue;l===\"::before\"?(e.dataset.snapdomHasBefore=\"1\",e.insertBefore(F,e.firstChild)):(e.dataset.snapdomHasAfter=\"1\",e.appendChild(F))}catch(u){console.warn(`[snapdom] Failed to capture ${l} for`,t,u)}let a=Array.from(e.children).filter(l=>!l.dataset.snapdomPseudo);if(n.nodeMap)for(let l of a){let u=n.nodeMap.get(l);u instanceof Element&&await ae(u,l,n,o)}else{let l=Array.from(t.children);for(let u=0;u<Math.min(l.length,a.length);u++)await ae(l[u],a[u],n,o)}}function Hn(t,e){if(!t||!(t instanceof Element))return;let n=t.ownerDocument||document,o=e||n,i=t instanceof SVGSVGElement?[t]:Array.from(t.querySelectorAll(\"svg\"));if(i.length===0)return;let r=/url\\(\\s*#([^)]+)\\)/g,s=[\"fill\",\"stroke\",\"filter\",\"clip-path\",\"mask\",\"marker\",\"marker-start\",\"marker-mid\",\"marker-end\"],a=w=>window.CSS&&CSS.escape?CSS.escape(w):w.replace(/[^a-zA-Z0-9_-]/g,\"\\\\$&\"),l=\"http://www.w3.org/1999/xlink\",u=w=>{if(!w||!w.getAttribute)return null;let x=w.getAttribute(\"href\")||w.getAttribute(\"xlink:href\")||(typeof w.getAttributeNS==\"function\"?w.getAttributeNS(l,\"href\"):null);if(x)return x;let v=w.attributes;if(!v)return null;for(let C=0;C<v.length;C++){let k=v[C];if(!k||!k.name)continue;if(k.name===\"href\")return k.value;let E=k.name.indexOf(\":\");if(E!==-1&&k.name.slice(E+1)===\"href\")return k.value}return null},c=new Set(Array.from(t.querySelectorAll(\"[id]\")).map(w=>w.id)),f=new Set,d=!1,m=(w,x=null)=>{if(!w)return;r.lastIndex=0;let v;for(;v=r.exec(w);){d=!0;let C=(v[1]||\"\").trim();C&&(c.has(C)||(f.add(C),x&&!x.has(C)&&x.add(C)))}},g=w=>{let x=w.querySelectorAll(\"use\");for(let k of x){let E=u(k);if(!E||!E.startsWith(\"#\"))continue;d=!0;let P=E.slice(1).trim();P&&!c.has(P)&&f.add(P)}let C=w.querySelectorAll('*[style*=\"url(\"],*[fill^=\"url(\"], *[stroke^=\"url(\"],*[filter^=\"url(\"],*[clip-path^=\"url(\"],*[mask^=\"url(\"],*[marker^=\"url(\"],*[marker-start^=\"url(\"],*[marker-mid^=\"url(\"],*[marker-end^=\"url(\"]');for(let k of C){m(k.getAttribute(\"style\")||\"\");for(let E of s)m(k.getAttribute(E))}};for(let w of i)g(w);if(!d)return;let p=t.querySelector(\"svg.inline-defs-container\");p||(p=n.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),p.classList.add(\"inline-defs-container\"),p.setAttribute(\"aria-hidden\",\"true\"),p.setAttribute(\"style\",\"position:absolute;width:0;height:0;overflow:hidden\"),t.insertBefore(p,t.firstChild||null));let y=p.querySelector(\"defs\")||null,h=w=>{if(!w||c.has(w))return null;let x=a(w),v=C=>{let k=o.querySelector(C);return k&&!t.contains(k)?k:null};return v(`svg defs > *#${x}`)||v(`svg > symbol#${x}`)||v(`*#${x}`)};if(!f.size)return;let b=new Set(f),S=new Set;for(;b.size;){let w=b.values().next().value;if(b.delete(w),!w||c.has(w)||S.has(w))continue;let x=h(w);if(!x){S.add(w);continue}y||(y=n.createElementNS(\"http://www.w3.org/2000/svg\",\"defs\"),p.appendChild(y));let v=x.cloneNode(!0);v.id||v.setAttribute(\"id\",w),y.appendChild(v),S.add(w),c.add(w);let C=[v,...v.querySelectorAll(\"*\")];for(let k of C){let E=u(k);if(E&&E.startsWith(\"#\")){let W=E.slice(1).trim();W&&!c.has(W)&&!S.has(W)&&b.add(W)}let P=k.getAttribute?.(\"style\")||\"\";P&&m(P,b);for(let W of s){let z=k.getAttribute?.(W);z&&m(z,b)}}}}j();function Vn(t,e){if(!t||!e)return;let n=t.scrollTop||0;if(!n)return;getComputedStyle(e).position===\"static\"&&(e.style.position=\"relative\");let o=t.getBoundingClientRect(),i=t.clientHeight,r=\"data-snap-ph\",s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;s.nextNode();){let a=s.currentNode,l=getComputedStyle(a),u=l.position;if(u!==\"sticky\"&&u!==\"-webkit-sticky\")continue;let c=zn(l.top),f=zn(l.bottom);if(c==null&&f==null)continue;let d=Gr(a,t),m=Yr(e,d,r);if(!m)continue;let g=a.getBoundingClientRect(),p=g.width,y=g.height,h=g.left-o.left;if(!(p>0&&y>0)||!Number.isFinite(h))continue;let b=c!=null?c+n:n+(i-y-f);if(!Number.isFinite(b))continue;let S=Number.parseInt(l.zIndex,10),w=Number.isFinite(S),x=w?Math.max(S,1)+1:2,v=w?S-1:0,C=m.cloneNode(!1);C.setAttribute(r,\"1\"),C.style.position=\"sticky\",C.style.left=`${h}px`,C.style.top=`${b}px`,C.style.width=`${p}px`,C.style.height=`${y}px`,C.style.visibility=\"hidden\",C.style.zIndex=String(v),C.style.overflow=\"hidden\",C.style.background=\"transparent\",C.style.boxShadow=\"none\",C.style.filter=\"none\",m.parentElement?.insertBefore(C,m),m.style.position=\"absolute\",m.style.left=`${h}px`,m.style.top=`${b}px`,m.style.bottom=\"auto\",m.style.zIndex=String(x),m.style.pointerEvents=\"none\"}}function zn(t){if(!t||t===\"auto\")return null;let e=Number.parseFloat(t);return Number.isFinite(e)?e:null}function Gr(t,e){let n=[];for(let o=t;o&&o!==e;){let i=o.parentElement;if(!i)break;n.push(Array.prototype.indexOf.call(i.children,o)),o=i}return n.reverse()}function Yr(t,e,n){let o=t;for(let i=0;i<e.length;i++)if(o=Kr(o,n)[e[i]],!o)return null;return o instanceof HTMLElement?o:null}function Kr(t,e){let n=[],o=t.children;for(let i=0;i<o.length;i++){let r=o[i];r.hasAttribute(e)||n.push(r)}return n}function qn(t){let e=getComputedStyle(t),n=e.outlineStyle,o=e.outlineWidth,i=e.borderStyle,r=e.borderWidth,s=n!==\"none\"&&parseFloat(o)>0,a=i===\"none\"||parseFloat(r)===0;s&&a&&(t.style.border=`${o} solid transparent`)}function jn(t){let e=[];try{let n=t.querySelectorAll(\"*\");for(let o of n){if(!(o instanceof HTMLElement))continue;let i=o.style.contentVisibility||\"\",r=getComputedStyle(o),s=r.contentVisibility||r.getPropertyValue(\"content-visibility\")||\"\";(s===\"auto\"||s===\"hidden\")&&(e.push({el:o,original:i}),o.style.contentVisibility=\"visible\")}if(t instanceof HTMLElement){let o=getComputedStyle(t),i=o.contentVisibility||o.getPropertyValue(\"content-visibility\")||\"\";(i===\"auto\"||i===\"hidden\")&&(e.push({el:t,original:t.style.contentVisibility||\"\"}),t.style.contentVisibility=\"visible\")}}catch{}return()=>{for(let{el:n,original:o}of e)try{n.style.contentVisibility=o}catch{}}}async function Xn(t,e={}){let n={styleMap:A.session.styleMap,styleCache:A.session.styleCache,nodeMap:A.session.nodeMap,options:e},o,i=\"\",r=\"\";qn(t);let s=jn(t);try{o=await Wt(t,n,e)}catch(c){throw console.warn(\"deepClone failed:\",c),c}finally{s()}try{Hn(o)}catch(c){console.warn(\"inlineExternal defs or symbol failed:\",c)}try{await ae(t,o,n,e)}catch(c){console.warn(\"inlinePseudoElements failed:\",c)}await yn(o,n);try{let c=o.querySelectorAll(\"style[data-sd]\");for(let f of c)r+=f.textContent||\"\",f.remove()}catch(c){R(n,\"Failed to extract shadow CSS from style[data-sd]\",c)}let a=Ce(n.styleMap);i=Array.from(a.entries()).map(([c,f])=>`.${f}{${c}}`).join(\"\"),i=r+\"[data-snapdom-has-after]::after,[data-snapdom-has-before]::before{content:none!important;display:none!important}\"+i;for(let[c,f]of n.styleMap.entries()){if(c.tagName===\"STYLE\")continue;if(c.getRootNode&&c.getRootNode()instanceof ShadowRoot){c.setAttribute(\"style\",f.replace(/;/g,\"; \"));continue}let d=a.get(f);d&&c.classList.add(d);let m=c.style?.backgroundImage,g=c.dataset?.snapdomHasIcon;m&&m!==\"none\"&&(c.style.backgroundImage=m),g&&(c.style.verticalAlign=\"middle\",c.style.display=\"inline\")}for(let[c,f]of n.nodeMap.entries()){let d=f.scrollLeft,m=f.scrollTop;if((d||m)&&c instanceof HTMLElement){c.style.overflow=\"hidden\",c.style.scrollbarWidth=\"none\",c.style.msOverflowStyle=\"none\";try{let y=c.querySelectorAll(\"*\");for(let h of y){if(!(h instanceof HTMLElement))continue;let b=h.style.position;if(b===\"fixed\"||b===\"absolute\"){let S=parseFloat(h.style.top)||0,w=parseFloat(h.style.left)||0;h.style.top=`${S+m}px`,h.style.left=`${w+d}px`,b===\"fixed\"&&(h.style.position=\"absolute\")}}}catch{}let p=document.createElement(\"div\");for(p.style.all=\"unset\",p.style.transform=`translate(${-d}px, ${-m}px)`,p.style.willChange=\"transform\",p.style.display=\"inline-block\",p.style.width=\"100%\";c.firstChild;)p.appendChild(c.firstChild);c.appendChild(p)}}let u=o instanceof HTMLElement&&o.firstElementChild instanceof HTMLElement?o.firstElementChild:o;if(Vn(t,u),t===n.nodeMap.get(o)){let c=n.styleCache.get(t)||_(t);n.styleCache.set(t,c);let f=he(c.transform);o.style.margin=\"0\",o.style.top=\"auto\",o.style.left=\"auto\",o.style.right=\"auto\",o.style.bottom=\"auto\",o.style.animation=\"none\",o.style.transition=\"none\",o.style.willChange=\"auto\",o.style.float=\"none\",o.style.clear=\"none\",o.style.transform=f||\"\"}for(let[c,f]of n.nodeMap.entries())f.tagName===\"PRE\"&&(c.style.marginTop=\"0\",c.style.marginBlockStart=\"0\");return{clone:o,classCSS:i,styleCache:n.styleCache}}ht();var Gn=\"http://www.w3.org/1999/xlink\";function Qr(t){return t.getAttribute(\"href\")||t.getAttribute(\"xlink:href\")||(typeof t.getAttributeNS==\"function\"?t.getAttributeNS(Gn,\"href\"):null)}function Jr(t){let e=parseInt(t.dataset?.snapdomWidth||\"\",10)||0,n=parseInt(t.dataset?.snapdomHeight||\"\",10)||0,o=parseInt(t.getAttribute(\"width\")||\"\",10)||0,i=parseInt(t.getAttribute(\"height\")||\"\",10)||0,r=parseFloat(t.style?.width||\"\")||0,s=parseFloat(t.style?.height||\"\")||0,a=e||r||o||t.width||t.naturalWidth||100,l=n||s||i||t.height||t.naturalHeight||100;return{width:a,height:l}}async function Yn(t,e={}){let n=Array.from(t.querySelectorAll(\"img\")),o=async a=>{if(!a.getAttribute(\"src\")){let m=a.currentSrc||a.src||\"\";m&&a.setAttribute(\"src\",m)}a.removeAttribute(\"srcset\"),a.removeAttribute(\"sizes\");let l=a.src||\"\";if(!l)return;let u=await B(l,{as:\"dataURL\",useProxy:e.useProxy});if(u.ok&&typeof u.data==\"string\"&&u.data.startsWith(\"data:\")){a.src=u.data,a.width||(a.width=a.naturalWidth||100),a.height||(a.height=a.naturalHeight||100);return}let{width:c,height:f}=Jr(a),{fallbackURL:d}=e||{};if(d)try{let m=typeof d==\"function\"?await d({width:c,height:f,src:l,element:a}):d;if(m){let g=await B(m,{as:\"dataURL\",useProxy:e.useProxy});if(g?.ok&&typeof g.data==\"string\"){a.src=g.data,a.width||(a.width=c),a.height||(a.height=f);return}}}catch{}if(e.placeholders!==!1){let m=document.createElement(\"div\");m.style.cssText=[`width:${c}px`,`height:${f}px`,\"background:#ccc\",\"display:inline-block\",\"text-align:center\",`line-height:${f}px`,\"color:#666\",\"font-size:12px\",\"overflow:hidden\"].join(\";\"),m.textContent=\"img\",a.replaceWith(m)}else{let m=document.createElement(\"div\");m.style.cssText=`display:inline-block;width:${c}px;height:${f}px;visibility:hidden;`,a.replaceWith(m)}},i=6;for(let a=0;a<n.length;a+=i){let l=n.slice(a,a+i).map(o);await Promise.allSettled(l)}let r=Array.from(t.querySelectorAll(\"image\")),s=async a=>{let l=Qr(a);if(!l||l.startsWith(\"data:\")||l.startsWith(\"blob:\"))return;let u=await B(l,{as:\"dataURL\",useProxy:e.useProxy});u.ok&&typeof u.data==\"string\"&&u.data.startsWith(\"data:\")&&(a.setAttribute(\"href\",u.data),a.removeAttribute(\"xlink:href\"),typeof a.removeAttributeNS==\"function\"&&a.removeAttributeNS(Gn,\"href\"))};for(let a=0;a<r.length;a+=i){let l=r.slice(a,a+i).map(s);await Promise.allSettled(l)}}J();async function ce(t,e,n,o={}){let i=[[t,e]],r=[\"background-image\",\"mask\",\"mask-image\",\"-webkit-mask\",\"-webkit-mask-image\",\"mask-source\",\"mask-box-image-source\",\"mask-border-source\",\"-webkit-mask-box-image-source\",\"border-image\",\"border-image-source\"],s=[\"mask-position\",\"mask-size\",\"mask-repeat\",\"mask-mode\",\"mask-composite\",\"-webkit-mask-position\",\"-webkit-mask-size\",\"-webkit-mask-repeat\",\"-webkit-mask-composite\",\"mask-origin\",\"mask-clip\",\"-webkit-mask-origin\",\"-webkit-mask-clip\",\"-webkit-mask-position-x\",\"-webkit-mask-position-y\"],a=[\"background-position\",\"background-position-x\",\"background-position-y\",\"background-size\",\"background-repeat\",\"background-origin\",\"background-clip\",\"background-attachment\",\"background-blend-mode\"],l=[\"border-image-slice\",\"border-image-width\",\"border-image-outset\",\"border-image-repeat\"];for(;i.length;){let[u,c]=i.shift();if(!c)continue;let f=n.get(u)||_(u);n.has(u)||n.set(u,f);let d=(()=>{let b=f.getPropertyValue(\"border-image\"),S=f.getPropertyValue(\"border-image-source\");return b&&b!==\"none\"||S&&S!==\"none\"})(),m=f.getPropertyValue(\"background-image\"),g=f.getPropertyValue(\"background-color\");if(m&&m!==\"none\"||g&&g!==\"rgba(0, 0, 0, 0)\"&&g!==\"transparent\"||/url\\s*\\(|gradient\\s*\\(/i.test(f.getPropertyValue(\"background\")||\"\"))for(let b of a){let S=f.getPropertyValue(b);S&&c.style.setProperty(b,S)}for(let b of r){let S=f.getPropertyValue(b);if(b===\"background-image\"&&(!S||S===\"none\")){let v=f.getPropertyValue(\"background\");v&&/url\\s*\\(/.test(v)&&(S=St(v).filter(C=>/url\\s*\\(/.test(C)).join(\", \")||S)}if(!S||S===\"none\")continue;let w=St(S),x=await Promise.all(w.map(v=>gt(v,o)));x.some(v=>v&&v!==\"none\"&&!/^url\\(undefined/.test(v))&&c.style.setProperty(b,x.join(\", \"))}for(let b of s){let S=f.getPropertyValue(b);!S||S===\"initial\"||c.style.setProperty(b,S)}if(d)for(let b of l){let S=f.getPropertyValue(b);!S||S===\"initial\"||c.style.setProperty(b,S)}let y=u.shadowRoot?Array.from(u.shadowRoot.children).filter(b=>b.tagName!==\"STYLE\"):Array.from(u.children),h=Array.from(c.children).filter(b=>!(b.dataset?.snapdomPseudo||b.tagName===\"STYLE\"&&b.dataset?.sd));for(let b=0;b<Math.min(y.length,h.length);b++)i.push([y[b],h[b]])}}J();j();function Kn(t){if(!t)return()=>{};let e=[];function n(o){let i=Zr(o);i&&e.push(i);for(let r of o.children||[])n(r)}return n(t),()=>e.forEach(o=>o())}function Zr(t){if(!t)return()=>{};let e=ti(t);if(e<=0)return()=>{};if(!oi(t))return()=>{};let n=getComputedStyle(t),o=Math.round(ei(n)*e+ni(n)),i=t.textContent??\"\",r=i;if(t.scrollHeight<=o+.5)return()=>{};let s=0,a=i.length,l=-1;for(;s<=a;){let u=s+a>>1;t.textContent=i.slice(0,u)+\"\\u2026\",t.scrollHeight<=o+.5?(l=u,s=u+1):a=u-1}return t.textContent=(l>=0?i.slice(0,l):\"\")+\"\\u2026\",()=>{t.textContent=r}}function ti(t){let e=getComputedStyle(t),n=e.getPropertyValue(\"-webkit-line-clamp\")||e.getPropertyValue(\"line-clamp\");n=(n||\"\").trim();let o=parseInt(n,10);return Number.isFinite(o)&&o>0?o:0}function ei(t){let e=(t.lineHeight||\"\").trim(),n=parseFloat(t.fontSize)||16;return!e||e===\"normal\"?Math.round(n*1.2):e.endsWith(\"px\")?parseFloat(e):/^\\d+(\\.\\d+)?$/.test(e)?Math.round(parseFloat(e)*n):e.endsWith(\"%\")?Math.round(parseFloat(e)/100*n):Math.round(n*1.2)}function ni(t){return(parseFloat(t.paddingTop)||0)+(parseFloat(t.paddingBottom)||0)}function oi(t){return t.childElementCount>0?!1:Array.from(t.childNodes).some(e=>e.nodeType===Node.TEXT_NODE)}var Ot=[];function le(t){if(!t)return null;if(Array.isArray(t)){let[e,n]=t;return typeof e==\"function\"?e(n):e}if(typeof t==\"object\"&&\"plugin\"in t){let{plugin:e,options:n}=t;return typeof e==\"function\"?e(n):e}return typeof t==\"function\"?t():t}function Qn(...t){let e=t.flat();for(let n of e){let o=le(n);o&&(Ot.some(i=>i&&i.name&&o.name&&i.name===o.name)||Ot.push(o))}}function Jn(t){return t&&Array.isArray(t.plugins)?t.plugins:Ot}async function tt(t,e,n){let o=n,i=Jn(e);for(let r of i){let s=r&&typeof r[t]==\"function\"?r[t]:null;if(!s)continue;let a=await s(e,o);typeof a<\"u\"&&(o=a)}return o}async function Zn(t,e,n){let o=[],i=Jn(e);for(let r of i){let s=r&&typeof r[t]==\"function\"?r[t]:null;if(!s)continue;let a=await s(e,n);typeof a<\"u\"&&o.push(a)}return o}function ri(t){let e=[];if(Array.isArray(t))for(let n of t){let o=le(n);if(!o||!o.name)continue;let i=e.findIndex(r=>r&&r.name===o.name);i>=0&&e.splice(i,1),e.push(o)}for(let n of Ot)n&&n.name&&!e.some(o=>o.name===n.name)&&e.push(n);return Object.freeze(e)}function to(t,e,n=!1){return!t||t.plugins&&!n||(t.plugins=ri(e)),t}function eo(){return Ot.slice()}function yt(t){return!!(!t||t.startsWith(\"data:\")||t.startsWith(\"blob:\")||/^data:image\\/(gif|png|svg)/.test(t)&&t.length<200)}function ii(t,e){return!t||!(t instanceof Element)?!1:t.querySelector(\"picture\")?!0:e?!!t.querySelector(\"img[data-src], img[data-lazy-src], img[data-original], img[data-hi-res-src], img[data-srcset], img[data-lazy-srcset]\"):!1}function si(t,e){let n=t.currentSrc||\"\";if(n&&!yt(n))return n;let o=e.querySelectorAll(\"source[srcset]\"),i=null;for(let r of o){let s=r.getAttribute(\"srcset\");if(!s||yt(s))continue;let a=r.getAttribute(\"media\");if(a)try{if(window.matchMedia(a).matches)return s.split(\",\")[0].trim().split(/\\s+/)[0]}catch{}i||(i=s.split(\",\")[0].trim().split(/\\s+/)[0])}return i}function ai(t){let e=[t.getAttribute(\"data-src\"),t.getAttribute(\"data-lazy-src\"),t.getAttribute(\"data-original\"),t.getAttribute(\"data-hi-res-src\")];for(let o of e)if(o&&!yt(o))return o;let n=t.getAttribute(\"data-srcset\")||t.getAttribute(\"data-lazy-srcset\");if(n){let o=n.split(\",\")[0].trim().split(/\\s+/)[0];if(o&&!yt(o))return o}return null}function ci(t={}){let e=t.pictureResolver&&typeof t.pictureResolver==\"object\"?t.pictureResolver:{};return{timeout:e.timeout??5e3,concurrency:e.concurrency??4,resolveLazySrc:e.resolveLazySrc!==!1,silent:e.silent??!1,useProxy:typeof t.useProxy==\"string\"?t.useProxy:\"\"}}async function no(t,e={}){if(!t||!(t instanceof Element)||e.resolvePicturePlaceholders===!1)return null;let{timeout:n,concurrency:o,resolveLazySrc:i,silent:r,useProxy:s}=ci(e);if(!ii(t,i))return null;let a=[],l=[];async function u(d){let m=new AbortController,g=setTimeout(()=>m.abort(),n);try{let p=await fetch(d,{credentials:\"include\",signal:m.signal});if(!p.ok&&s){let h=s.includes(\"{url}\")?s.replace(\"{url}\",encodeURIComponent(d)):s.endsWith(\"?\")?`${s}${encodeURIComponent(d)}`:`${s}${s.includes(\"?\")?\"&\":\"?\"}url=${encodeURIComponent(d)}`;p=await fetch(h,{signal:m.signal})}if(!p.ok)return null;let y=await p.blob();return await new Promise((h,b)=>{let S=new FileReader;S.onload=()=>h(S.result),S.onerror=b,S.readAsDataURL(y)})}catch{return null}finally{clearTimeout(g)}}async function c(d){for(let m=0;m<d.length;m+=o){let g=d.slice(m,m+o);await Promise.allSettled(g.map(p=>p()))}}let f=t.querySelectorAll(\"picture\");for(let d of f){let m=d.querySelector(\"img\");if(!m)continue;let g=m.getAttribute(\"src\")||\"\";if(!yt(g))continue;let p=si(m,d);p&&l.push(async()=>{let y=await u(p);if(!y){r||console.warn(`[snapdom:picture-resolver] Failed to fetch: ${p.slice(0,60)}`);return}let h=m.getAttribute(\"src\"),b=m.getAttribute(\"srcset\"),S=m.getAttribute(\"sizes\"),w=[];m.src=y,m.setAttribute(\"src\",y),m.removeAttribute(\"srcset\"),m.removeAttribute(\"sizes\");let x=d.querySelectorAll(\"source\");for(let v of x)w.push({el:v,parent:v.parentElement,next:v.nextSibling}),v.remove();a.push(()=>{h!==null?m.setAttribute(\"src\",h):m.removeAttribute(\"src\"),b!==null&&m.setAttribute(\"srcset\",b),S!==null&&m.setAttribute(\"sizes\",S);for(let{el:v,parent:C,next:k}of w)C&&C.insertBefore(v,k)})})}if(i){let d=t.querySelectorAll(\"img\");for(let m of d){if(m.closest(\"picture\")&&yt(m.getAttribute(\"src\")||\"\"))continue;let g=m.getAttribute(\"src\")||\"\",p=ai(m);p&&yt(g)&&l.push(async()=>{let y=await u(p);if(!y)return;let h=m.getAttribute(\"src\");m.src=y,m.setAttribute(\"src\",y),m.removeAttribute(\"srcset\"),m.removeAttribute(\"sizes\"),a.push(()=>{h!==null?m.setAttribute(\"src\",h):m.removeAttribute(\"src\")})})}}return l.length===0?null:(await c(l),async function(){for(let m of a)try{m()}catch{}})}J();function io(t,e,n={}){if(!t||!e||!e.style)return;let o=getComputedStyle(t);try{e.style.boxShadow=\"none\"}catch(s){R(n,\"stripRootShadows boxShadow\",s)}try{e.style.textShadow=\"none\"}catch(s){R(n,\"stripRootShadows textShadow\",s)}try{e.style.outline=\"none\"}catch(s){R(n,\"stripRootShadows outline\",s)}let r=(o.filter||\"\").replace(/\\bblur\\([^()]*\\)\\s*/gi,\"\").replace(/\\bdrop-shadow\\([^()]*\\)\\s*/gi,\"\").trim().replace(/\\s+/g,\" \");try{e.style.filter=r.length?r:\"none\"}catch(s){R(n,\"stripRootShadows filter\",s)}}function oo(t){let e=t.display||\"\";if(e.includes(\"flex\")||e.includes(\"grid\")||e.startsWith(\"table\")||e===\"inline-block\"||e===\"flow-root\"||t.position===\"absolute\"||t.position===\"fixed\"||t.float&&t.float!==\"none\")return!0;let n=t.overflowX||t.overflow||\"visible\",o=t.overflowY||t.overflow||\"visible\";return!!(n!==\"visible\"||o!==\"visible\"||t.contain&&/\\b(layout|content|paint|strict)\\b/.test(t.contain))}function li(t,e){let n=Array.from(t.childNodes),o=e===\"top\"?n:n.reverse();for(let i of o){if(i.nodeType===Node.TEXT_NODE){if(/\\S/.test(i.textContent||\"\"))return null;continue}if(i.nodeType!==Node.ELEMENT_NODE)continue;let r=getComputedStyle(i),s=String(r.display||\"\");if(!(s===\"none\"||s===\"contents\")&&!(r.position===\"absolute\"||r.position===\"fixed\"))return r.float&&r.float!==\"none\"||s.startsWith(\"inline\")?null:i}return null}function so(t,e){if(!t||!e||!e.style)return;let n=getComputedStyle(t);if(!oo(n))for(let o of[\"top\",\"bottom\"]){let i=o===\"top\"?\"Top\":\"Bottom\";if((parseFloat(n[`border${i}Width`])||0)>0||(parseFloat(n[`padding${i}`])||0)>0)continue;let r=t,s=e;for(;r&&s;){let a=li(r,o);if(!a)break;let l=Array.from(r.children).indexOf(a),u=l>=0?s.children[l]:null,c=getComputedStyle(a),f=parseFloat(c[`margin${i}`])||0;if(u&&u.style&&f>0&&(u.style[`margin${i}`]=\"0px\"),oo(c)||(parseFloat(c[`border${i}Width`])||0)>0||(parseFloat(c[`padding${i}`])||0)>0)break;r=a,s=u}}}function ui(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_COMMENT),n=[];for(;e.nextNode();)n.push(e.currentNode);for(let o of n)o.remove()}function fi(t,e={}){let{stripFrameworkDirectives:n=!0}=e,o=new Set([\"xml\",\"xlink\"]),i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;i.nextNode();){let r=i.currentNode;for(let s of Array.from(r.attributes)){let a=s.name;if(a.includes(\"@\")){r.removeAttribute(a);continue}if(a.includes(\":\")){let l=a.split(\":\",1)[0];if(!o.has(l)){r.removeAttribute(a);continue}}if(n&&(a.startsWith(\"x-\")||a.startsWith(\"v-\")||a.startsWith(\":\")||a.startsWith(\"on:\")||a.startsWith(\"bind:\")||a.startsWith(\"let:\")||a.startsWith(\"class:\"))){r.removeAttribute(a);continue}}}}var ro=/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\uFFFE\\uFFFF]/g;function di(t){if(!t)return;let e=i=>{if(i.nodeType===Node.ELEMENT_NODE){if(i.attributes)for(let r of Array.from(i.attributes)){let s=r.value.replace(ro,\"\");if(s!==r.value)try{i.setAttribute(r.name,s)}catch{}}}else if(i.nodeType===Node.TEXT_NODE||i.nodeType===Node.CDATA_SECTION_NODE){let r=i.data.replace(ro,\"\");r!==i.data&&(i.data=r)}};e(t);let n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT),o;for(;o=n.nextNode();)e(o)}function ao(t,e={}){t&&(fi(t,e),ui(t),di(t))}function mi(t){try{let e=t.getAttribute?.(\"style\")||\"\";return/\\b(height|width|block-size|inline-size)\\s*:/.test(e)}catch{return!1}}function pi(t){return t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof HTMLIFrameElement||t instanceof SVGElement||t instanceof HTMLObjectElement||t instanceof HTMLEmbedElement}function hi(t,e){if(!(t instanceof Element)||mi(t)||pi(t))return!1;let n=e.position;if(n===\"absolute\"||n===\"fixed\"||n===\"sticky\")return!1;let o=e.display||\"\";return!(o.includes(\"flex\")||o.includes(\"grid\")||o.startsWith(\"table\")||e.transform&&e.transform!==\"none\")}function co(t,e,n=new Map){function o(i,r){if(!(i instanceof Element)||!(r instanceof Element))return;let s=i.childElementCount>r.childElementCount,a=n.get(i)||getComputedStyle(i);if(n.has(i)||n.set(i,a),s&&hi(i,a)){r.style.height||(r.style.height=\"auto\"),r.style.width||(r.style.width=\"auto\"),r.style.removeProperty(\"block-size\"),r.style.removeProperty(\"inline-size\"),r.style.minHeight||(r.style.minHeight=\"0\"),r.style.minWidth||(r.style.minWidth=\"0\"),r.style.maxHeight||(r.style.maxHeight=\"none\"),r.style.maxWidth||(r.style.maxWidth=\"none\");let c=a.overflowY||a.overflowBlock||\"visible\",f=a.overflowX||a.overflowInline||\"visible\";(c!==\"visible\"||f!==\"visible\")&&(r.style.overflow=\"visible\")}let l=Array.from(i.children),u=Array.from(r.children);for(let c=0;c<Math.min(l.length,u.length);c++)o(l[c],u[c])}o(t,e)}function gi(t){let e=getComputedStyle(t);return!(e.display===\"none\"||e.position===\"absolute\"||e.position===\"fixed\")}function yi(t,e){if(!(t instanceof Element))return!1;if(t.getAttribute(\"data-capture\")===\"exclude\"&&e?.excludeMode===\"remove\")return!0;if(Array.isArray(e?.exclude))for(let n of e.exclude)try{if(t.matches(n))return e.excludeMode===\"remove\"}catch(o){R(e,\"exclude selector match failed\",o)}return!1}function lo(t,e){let n=getComputedStyle(t),o=t.getBoundingClientRect(),i=1/0,r=-1/0,s=!1,a=Array.from(t.children);for(let m of a){if(yi(m,e)||!gi(m))continue;let g=m.getBoundingClientRect(),p=g.top-o.top,y=g.bottom-o.top;y<=p||(p<i&&(i=p),y>r&&(r=y),s=!0)}let l=s?Math.max(0,r-i):0,u=parseFloat(n.borderTopWidth)||0,c=parseFloat(n.borderBottomWidth)||0,f=parseFloat(n.paddingTop)||0,d=parseFloat(n.paddingBottom)||0;return u+c+f+d+l}var M=(t,e=3)=>Number.isFinite(t)?Math.round(t*10**e)/10**e:t,bi=/::-webkit-scrollbar(-[a-z]+)?\\b/i;function Ne(t,e=new Set){let n=\"\";if(!t)return n;for(let o=0;o<t.length;o++){let i=t[o];try{if(i.type===CSSRule.IMPORT_RULE&&i.styleSheet){n+=Ne(i.styleSheet.cssRules,e);continue}if(i.type===CSSRule.MEDIA_RULE&&i.cssRules){let r=Ne(i.cssRules,e);r&&(n+=`@media ${i.conditionText}{${r}}`);continue}if(i.type===CSSRule.STYLE_RULE){let r=i.selectorText||\"\";if(bi.test(r)){let s=i.cssText;s&&!e.has(s)&&(e.add(s),n+=s)}}}catch{}}return n}function uo(t){if(!t||!t.styleSheets)return\"\";let e=new Set,n=\"\";for(let o of Array.from(t.styleSheets))try{let i=o.cssRules;i&&(n+=Ne(i,e))}catch{}return n}Jt();function fo(t){let e=t.boxShadow||\"\";if(!e||e===\"none\")return{top:0,right:0,bottom:0,left:0};let n=[],o=\"\",i=0;for(let u=0;u<e.length;u++){let c=e[u];c===\"(\"?i++:c===\")\"&&(i=Math.max(0,i-1)),c===\",\"&&i===0?(n.push(o),o=\"\"):o+=c}o.trim()&&n.push(o);let r=0,s=0,a=0,l=0;for(let u of n){if(/\\binset\\b/i.test(u))continue;let c=u.match(/-?\\d+(\\.\\d+)?px/g)?.map(h=>parseFloat(h))||[];if(c.length<2)continue;let[f,d,m=0,g=0]=c,p=Math.abs(f)+m+g,y=Math.abs(d)+m+g;s=Math.max(s,p+Math.max(f,0)),l=Math.max(l,p+Math.max(-f,0)),a=Math.max(a,y+Math.max(d,0)),r=Math.max(r,y+Math.max(-d,0))}return{top:Math.ceil(r),right:Math.ceil(s),bottom:Math.ceil(a),left:Math.ceil(l)}}function mo(t){let e=t.filter&&t.filter!==\"none\"?t.filter:t.webkitFilter||\"\",n=/blur\\(\\s*([0-9.]+)px\\s*\\)/gi,o=0,i;for(;i=n.exec(e);)o+=parseFloat(i[1])||0;let r=Math.ceil(o);return{top:r,right:r,bottom:r,left:r}}function po(t){if((t.outlineStyle||\"none\")===\"none\")return{top:0,right:0,bottom:0,left:0};let e=Math.ceil(parseFloat(t.outlineWidth||\"0\")||0),n=parseFloat(t.outlineOffset||\"0\")||0,o=e+Math.max(0,Math.ceil(n));return{top:o,right:o,bottom:o,left:o}}function ho(t){let e=`${t.filter||\"\"} ${t.webkitFilter||\"\"}`.trim();if(!e||e===\"none\")return{bleed:{top:0,right:0,bottom:0,left:0},has:!1};let n=e.match(/drop-shadow\\((?:[^()]|\\([^()]*\\))*\\)/gi)||[],o=0,i=0,r=0,s=0,a=!1;for(let l of n){a=!0;let u=l.match(/-?\\d+(?:\\.\\d+)?px/gi)?.map(p=>parseFloat(p))||[],[c=0,f=0,d=0]=u,m=Math.abs(c)+d,g=Math.abs(f)+d;i=Math.max(i,m+Math.max(c,0)),s=Math.max(s,m+Math.max(-c,0)),r=Math.max(r,g+Math.max(f,0)),o=Math.max(o,g+Math.max(-f,0))}return{bleed:{top:M(o),right:M(i),bottom:M(r),left:M(s)},has:a}}function go(t,e){if(!t||!e||!e.style)return null;let n=getComputedStyle(t);try{e.style.transformOrigin=\"0 0\"}catch{}try{\"translate\"in e.style&&(e.style.translate=\"none\"),\"rotate\"in e.style&&(e.style.rotate=\"none\")}catch{}let o=n.transform||\"none\";if(!o||o===\"none\"){let a=null;try{a=We(t).scale}catch{}try{e.style.transform=\"none\"}catch{}if(!a)return{a:1,b:0,c:0,d:1};let l=a.trim().split(/\\s+/).map(parseFloat),u=Number.isFinite(l[0])?l[0]:1,c=Number.isFinite(l[1])?l[1]:u;return{a:u,b:0,c:0,d:c}}function i(a,l,u,c){let f=Math.sqrt(a*a+l*l)||0,d=0,m=0;if(f>0){let g=a/f,p=l/f;d=g*u+p*c;let y=u-g*d,h=c-p*d;m=Math.sqrt(y*y+h*h)||0,m>0?d=d/m:d=0}return{a:f,b:0,c:d*m,d:m}}let r=o.match(/^matrix\\(\\s*([^)]+)\\)$/i);if(r){let a=r[1].split(\",\").map(l=>parseFloat(l.trim()));if(a.length===6&&a.every(Number.isFinite)){let[l,u,c,f]=a,d=i(l,u,c,f);try{e.style.transform=`matrix(${d.a}, ${d.b}, ${d.c}, ${d.d}, 0, 0)`}catch{}return d}}let s=o.match(/^matrix3d\\(\\s*([^)]+)\\)$/i);if(s){let a=s[1].split(\",\").map(l=>parseFloat(l.trim()));if(a.length===16&&a.every(Number.isFinite)){let l=a[0],u=a[1],c=a[4],f=a[5],d=i(l,u,c,f);try{e.style.transform=`matrix(${d.a}, ${d.b}, ${d.c}, ${d.d}, 0, 0)`}catch{}return d}}try{let a=new DOMMatrix(o),l=i(a.a,a.b,a.c,a.d);try{e.style.transform=`matrix(${l.a}, ${l.b}, ${l.c}, ${l.d}, 0, 0)`}catch{}return l}catch{return null}}function _e(t,e,n,o,i){let r=n.a,s=n.b,a=n.c,l=n.d,u=n.e||0,c=n.f||0;function f(h,b){let S=h-o,w=b-i,x=r*S+a*w,v=s*S+l*w;return x+=o+u,v+=i+c,[x,v]}let d=[f(0,0),f(t,0),f(0,e),f(t,e)],m=1/0,g=1/0,p=-1/0,y=-1/0;for(let[h,b]of d)h<m&&(m=h),b<g&&(g=b),h>p&&(p=h),b>y&&(y=b);return{minX:m,minY:g,maxX:p,maxY:y,width:p-m,height:y-g}}function yo(t,e,n){let o=(t.transformOrigin||\"0 0\").trim().split(/\\s+/),[i,r]=[o[0]||\"0\",o[1]||\"0\"],s=(a,l)=>{let u=a.toLowerCase();return u===\"left\"||u===\"top\"?0:u===\"center\"?l/2:u===\"right\"||u===\"bottom\"?l:u.endsWith(\"px\")?parseFloat(u)||0:u.endsWith(\"%\")?(parseFloat(u)||0)*l/100:/^-?\\d+(\\.\\d+)?$/.test(u)&&parseFloat(u)||0};return{ox:s(i,e),oy:s(r,n)}}function We(t){let e={rotate:\"0deg\",scale:null,translate:null},n=typeof t.computedStyleMap==\"function\"?t.computedStyleMap():null;if(n){let i=l=>{try{return typeof n.has==\"function\"&&!n.has(l)||typeof n.get!=\"function\"?null:n.get(l)}catch{return null}},r=i(\"rotate\");if(r)if(r.angle){let l=r.angle;e.rotate=l.unit===\"rad\"?l.value*180/Math.PI+\"deg\":l.value+l.unit}else r.unit?e.rotate=r.unit===\"rad\"?r.value*180/Math.PI+\"deg\":r.value+r.unit:e.rotate=String(r);else{let l=getComputedStyle(t);e.rotate=l.rotate&&l.rotate!==\"none\"?l.rotate:\"0deg\"}let s=i(\"scale\");if(s){let l=\"x\"in s&&s.x?.value!=null?s.x.value:Array.isArray(s)?s[0]?.value:Number(s)||1,u=\"y\"in s&&s.y?.value!=null?s.y.value:Array.isArray(s)?s[1]?.value:l;e.scale=`${l} ${u}`}else{let l=getComputedStyle(t);e.scale=l.scale&&l.scale!==\"none\"?l.scale:null}let a=i(\"translate\");if(a){let l=\"x\"in a&&\"value\"in a.x?a.x.value:Array.isArray(a)?a[0]?.value:0,u=\"y\"in a&&\"value\"in a.y?a.y.value:Array.isArray(a)?a[1]?.value:0,c=\"x\"in a&&a.x?.unit?a.x.unit:\"px\",f=\"y\"in a&&a.y?.unit?a.y.unit:\"px\";e.translate=`${l}${c} ${u}${f}`}else{let l=getComputedStyle(t);e.translate=l.translate&&l.translate!==\"none\"?l.translate:null}return e}let o=getComputedStyle(t);return e.rotate=o.rotate&&o.rotate!==\"none\"?o.rotate:\"0deg\",e.scale=o.scale&&o.scale!==\"none\"?o.scale:null,e.translate=o.translate&&o.translate!==\"none\"?o.translate:null,e}var Ie=null;function wi(){if(Ie)return Ie;let t=document.createElement(\"div\");return t.id=\"snapdom-measure-slot\",t.setAttribute(\"aria-hidden\",\"true\"),Object.assign(t.style,{position:\"absolute\",left:\"-99999px\",top:\"0px\",width:\"0px\",height:\"0px\",overflow:\"hidden\",opacity:\"0\",pointerEvents:\"none\",contain:\"size layout style\"}),document.documentElement.appendChild(t),Ie=t,t}function bo(t){let e=wi(),n=document.createElement(\"div\");n.style.transformOrigin=\"0 0\",t.baseTransform&&(n.style.transform=t.baseTransform),t.rotate&&(n.style.rotate=t.rotate),t.scale&&(n.style.scale=t.scale),t.translate&&(n.style.translate=t.translate),e.appendChild(n);let o=Si(n);return e.removeChild(n),o}function wo(t){let e=_(t),n=e.transform||\"none\";if(n!==\"none\"&&!/^matrix\\(\\s*1\\s*,\\s*0\\s*,\\s*0\\s*,\\s*1\\s*,\\s*0\\s*,\\s*0\\s*\\)$/i.test(n))return!0;let i=e.rotate&&e.rotate!==\"none\"&&e.rotate!==\"0deg\",r=e.scale&&e.scale!==\"none\"&&e.scale!==\"1\",s=e.translate&&e.translate!==\"none\"&&e.translate!==\"0px 0px\";return!!(i||r||s)}function Si(t){let e=getComputedStyle(t).transform;if(!e||e===\"none\")return new DOMMatrix;try{return new DOMMatrix(e)}catch{return new WebKitCSSMatrix(e)}}function xi(t){if(Array.isArray(t.plugins)){for(let e of t.plugins)if(le(e)?.name===\"picture-resolver\")return!0}return eo().some(e=>e?.name===\"picture-resolver\")}async function Oe(t,e){if(!t)throw new Error(\"Element cannot be null or undefined\");Xt(e.cache);let n=e.fast,o=e.outerTransforms!==!1,i=!!e.outerShadows,r={element:t,options:e,plugins:e.plugins},s,a,l,u=\"\",c=\"\",f,d,m=null;await tt(\"beforeSnap\",r);let g=null;e.resolvePicturePlaceholders!==!1&&!xi(e)&&(g=await no(r.element,r.options)),await tt(\"beforeClone\",r);let p=Kn(r.element);try{({clone:s,classCSS:a,styleCache:l}=await Xn(r.element,r.options)),!o&&s&&(m=go(r.element,s)),!i&&s&&io(r.element,s,r.options),s&&so(r.element,s)}finally{p()}if(r={clone:s,classCSS:a,styleCache:l,...r},await tt(\"afterClone\",r),g&&await g(),ao(r.clone),r.options?.excludeMode===\"remove\")try{co(r.element,r.clone,r.styleCache)}catch(w){console.warn(\"[snapdom] shrink pass failed:\",w)}try{await Sn(r.clone,r.element)}catch{}await new Promise(w=>{rt(async()=>{await Yn(r.clone,r.options),w()},{fast:n})}),await new Promise(w=>{rt(async()=>{await ce(r.element,r.clone,r.styleCache,r.options),w()},{fast:n})}),e.embedFonts&&await new Promise(w=>{rt(async()=>{let x=At(r.element),v=se(r.element);if(H()){let C=new Set(Array.from(x).map(k=>String(k).split(\"__\")[0]).filter(Boolean));await vt(C,1)}u=await ie({required:x,usedCodepoints:v,preCached:!1,exclude:r.options.excludeFonts,localFonts:r.options.localFonts,useProxy:r.options.useProxy,fontStylesheetDomains:r.options.fontStylesheetDomains}),w()},{fast:n})});let y=Se(r.clone).sort(),h=y.join(\",\");A.baseStyle.has(h)?c=A.baseStyle.get(h):await new Promise(w=>{rt(()=>{c=xe(y),A.baseStyle.set(h,c),w()},{fast:n})});let b=uo(r.element?.ownerDocument||document);r={fontsCSS:u,baseCSS:c,scrollbarCSS:b,...r},await tt(\"beforeRender\",r),await new Promise(w=>{rt(()=>{let x=_(r.element),v=r.element.getBoundingClientRect(),C=Math.max(1,M(r.element.offsetWidth||parseFloat(x.width)||v.width||1)),k=Math.max(1,M(r.element.offsetHeight||parseFloat(x.height)||v.height||1)),E=r.element.ownerDocument||document;if(r.element===E.body||r.element===E.documentElement){let V=Math.max(r.element.scrollHeight||0,E.documentElement?.scrollHeight||0,E.body?.scrollHeight||0),G=Math.max(r.element.scrollWidth||0,E.documentElement?.scrollWidth||0,E.body?.scrollWidth||0);V>0&&(k=Math.max(k,M(V))),G>0&&(C=Math.max(C,M(G)));try{let nt=(r.scrollbarCSS||\"\").length+(r.baseCSS||\"\").length+(r.fontsCSS||\"\").length+(r.classCSS||\"\").length,Q=A.measureHints.get(r.element);if(Q&&Q.cssLen===nt&&Q.w0===C)Q.csh>0&&(k=Math.max(k,M(Q.csh))),Q.csw>0&&(C=Math.max(C,M(Q.csw)));else{let ot=E.createElement(\"div\");ot.style.cssText=\"position:absolute!important;left:-9999px!important;top:0!important;width:\"+C+\"px!important;overflow:visible!important;visibility:hidden!important;\";let jt=E.createElement(\"style\");jt.textContent=(r.scrollbarCSS||\"\")+r.baseCSS+r.fontsCSS+\"svg{overflow:visible;} foreignObject{overflow:visible;}\"+r.classCSS,ot.appendChild(jt),ot.appendChild(r.clone.cloneNode(!0)),E.body.appendChild(ot);let $t=ot.scrollHeight,ut=ot.scrollWidth;E.body.removeChild(ot),A.measureHints.set(r.element,{cssLen:nt,w0:C,csh:$t,csw:ut}),$t>0&&(k=Math.max(k,M($t))),ut>0&&(C=Math.max(C,M(ut)))}}catch{}}if(r.options?.excludeMode===\"remove\"){let V=lo(r.element,r.options);Number.isFinite(V)&&V>0&&(k=Math.max(1,Math.min(k,M(V+1))))}let W=(V,G=NaN)=>{let nt=typeof V==\"string\"?parseFloat(V):V;return Number.isFinite(nt)?nt:G},z=W(r.options.width),Y=W(r.options.height),L=C,I=k,F=Number.isFinite(z),X=Number.isFinite(Y),Dt=k>0?C/k:1;F&&X?(L=Math.max(1,M(z)),I=Math.max(1,M(Y))):F?(L=Math.max(1,M(z)),I=Math.max(1,M(L/(Dt||1)))):X?(I=Math.max(1,M(Y)),L=Math.max(1,M(I*(Dt||1)))):(L=C,I=k);let dt=0,at=0,$=C,T=k;if(!o&&m&&Number.isFinite(m.a)){let V={a:m.a,b:m.b||0,c:m.c||0,d:m.d||1,e:0,f:0},G=_e(C,k,V,0,0);dt=M(G.minX),at=M(G.minY),$=M(G.maxX),T=M(G.maxY)}else if(o&&So(r.element)){let G=x.transform&&x.transform!==\"none\"?x.transform:\"\",nt=We(r.element),Q=bo({baseTransform:G,rotate:nt.rotate||\"0deg\",scale:nt.scale,translate:nt.translate}),{ox:ot,oy:jt}=yo(x,C,k),$t=Q.is2D?Q:new DOMMatrix(Q.toString()),ut=_e(C,k,$t,ot,jt);dt=M(ut.minX),at=M(ut.minY),$=M(ut.maxX),T=M(ut.maxY)}let O=fo(x),U=mo(x),K=po(x),Ft=ho(x),et=i?{top:M(O.top+U.top+K.top+Ft.bleed.top),right:M(O.right+U.right+K.right+Ft.bleed.right),bottom:M(O.bottom+U.bottom+K.bottom+Ft.bleed.bottom),left:M(O.left+U.left+K.left+Ft.bleed.left)}:{top:0,right:0,bottom:0,left:0};dt=M(dt-et.left),at=M(at-et.top),$=M($+et.right),T=M(T+et.bottom);let Ht=Math.max(1,M($-dt)),mt=Math.max(1,M(T-at)),fe=F||X?M(L/C):1,de=X||F?M(I/k):1,zt=Math.max(1,M(Ht*fe)),Vt=Math.max(1,M(mt*de)),Ve=\"http://www.w3.org/2000/svg\",No=H()&&So(r.element)?1:0,ct=M(No+(o?0:1)),lt=document.createElementNS(Ve,\"foreignObject\"),Io=M(dt),_o=M(at);lt.setAttribute(\"x\",String(M(-(Io-ct)))),lt.setAttribute(\"y\",String(M(-(_o-ct)))),lt.setAttribute(\"width\",String(M(C+ct*2))),lt.setAttribute(\"height\",String(M(k+ct*2))),lt.style.overflow=\"visible\";let qe=document.createElement(\"style\"),Wo=\"svg{overflow:visible;} foreignObject{overflow:visible;} foreignObject>div{-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important;}\";qe.textContent=(r.scrollbarCSS||\"\")+r.baseCSS+r.fontsCSS+Wo+r.classCSS,lt.appendChild(qe);let qt=document.createElement(\"div\");qt.setAttribute(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),qt.style.cssText=`all:initial;box-sizing:border-box;display:block;overflow:visible;width:${M(C)}px;height:${M(k)}px`,qt.appendChild(r.clone),lt.appendChild(qt);let Oo=new XMLSerializer().serializeToString(lt),me=M(Ht+ct*2),pe=M(mt+ct*2),je=F||X;e.meta={w0:C,h0:k,vbW:me,vbH:pe,targetW:L,targetH:I};let Uo=H()&&je?me:M(zt+ct*2),Bo=H()&&je?pe:M(Vt+ct*2),Do=parseFloat(_(E.documentElement)?.fontSize)||16;d=`<svg xmlns=\"${Ve}\" width=\"${Uo}\" height=\"${Bo}\" viewBox=\"0 0 ${me} ${pe}\" font-size=\"${Do}px\">`+Oo+\"</svg>\",f=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(d)}`,r={svgString:d,dataURL:f,...r},w()},{fast:n})}),await tt(\"afterRender\",r);let S=document.getElementById(\"snapdom-sandbox\");return S&&S.style.position===\"absolute\"&&S.remove(),r.dataURL}function So(t){return wo(t)}j();function xo(t={}){let e=t.format??\"png\";e===\"jpg\"&&(e=\"jpeg\");let n=Xe(t.cache);return{debug:t.debug??!1,fast:t.fast??!0,scale:t.scale??1,exclude:t.exclude??[],excludeMode:t.excludeMode??\"hide\",filter:t.filter??null,filterMode:t.filterMode??\"hide\",placeholders:t.placeholders!==!1,embedFonts:t.embedFonts??!1,iconFonts:Array.isArray(t.iconFonts)?t.iconFonts:t.iconFonts?[t.iconFonts]:[],localFonts:Array.isArray(t.localFonts)?t.localFonts:[],excludeFonts:t.excludeFonts??void 0,fontStylesheetDomains:Array.isArray(t.fontStylesheetDomains)?t.fontStylesheetDomains:[],fallbackURL:t.fallbackURL??void 0,cache:n,useProxy:typeof t.useProxy==\"string\"?t.useProxy:\"\",width:t.width??null,height:t.height??null,format:e,type:t.type??\"svg\",quality:t.quality??.92,dpr:t.dpr??(window.devicePixelRatio||1),backgroundColor:t.backgroundColor??([\"jpeg\",\"webp\"].includes(e)?\"#ffffff\":null),filename:t.filename??\"snapDOM\",outerTransforms:t.outerTransforms??!0,outerShadows:t.outerShadows??!1,safariWarmupAttempts:Math.min(3,Math.max(1,(t.safariWarmupAttempts??3)|0)),excludeStyleProps:t.excludeStyleProps??null,resolvePicturePlaceholders:t.resolvePicturePlaceholders!==!1,pictureResolver:t.pictureResolver&&typeof t.pictureResolver==\"object\"?t.pictureResolver:{}}}xt();ve();J();ht();j();async function Ci(t=document,e={}){let{embedFonts:n=!0,useProxy:o=\"\"}=e,i=e.cache??e.cacheOpt??\"full\";Xt(i);try{await document.fonts?.ready}catch{}try{be()}catch{}A.session=A.session||{},A.session.styleCache||(A.session.styleCache=new WeakMap),A.image=A.image||new D(100),A.background=A.background||new D(100);try{await ce(t,void 0,A.session.styleCache,{useProxy:o})}catch{}let r=[],s=[];try{if(t&&t.nodeType===1){let l=t.querySelectorAll?Array.from(t.querySelectorAll(\"*\")):[];s=[t,...l],r=[],t.tagName===\"IMG\"&&t.getAttribute(\"src\")&&r.push(t),r.push(...Array.from(t.querySelectorAll?.(\"img[src]\")||[]))}else t?.querySelectorAll&&(r=Array.from(t.querySelectorAll(\"img[src]\")),s=Array.from(t.querySelectorAll(\"*\")))}catch{}let a=[];for(let l of r){let u=l?.currentSrc||l?.src;if(u&&!A.image.has(u)){let c=Promise.resolve().then(async()=>{let f=await B(u,{as:\"dataURL\",useProxy:o});f?.ok&&typeof f.data==\"string\"&&A.image.set(u,f.data)}).catch(()=>{});a.push(c)}}for(let l of s){let u=\"\";try{u=l?.style?.backgroundImage||\"\",(!u||u===\"none\")&&(u=_(l).backgroundImage)}catch{}if(u&&u!==\"none\"){let c=u.match(/url\\((?:[^()\"']+|\"(?:[^\"]*)\"|'(?:[^']*)')\\)/gi)||[];for(let f of c){let d=Promise.resolve().then(()=>gt(f,{...e,useProxy:o})).catch(()=>{});a.push(d)}}}if(n)try{let l=At(t),u=se(t);if(typeof H==\"function\"?H():!!H){let f=new Set(Array.from(l).map(d=>String(d).split(\"__\")[0]).filter(Boolean));await vt(f,3)}await ie({required:l,usedCodepoints:u,exclude:e.excludeFonts,localFonts:e.localFonts,useProxy:e.useProxy??o,fontStylesheetDomains:e.fontStylesheetDomains})}catch{}await Promise.allSettled(a)}function Li(...t){return Qn(...t),N}var N=Object.assign(Pi,{plugins:Li}),Po=Symbol(\"snapdom.internal\"),Ti=Symbol(\"snapdom.internal.silent\"),To=!1;async function Pi(t,e){if(!t)throw new Error(\"Element cannot be null or undefined\");let n=xo(e);if(to(n,e&&e.plugins),H()&&(n.embedFonts===!0||Ii(t))){if(n.embedFonts)try{let i=At(t),r=new Set([...i].map(s=>String(s).split(\"__\")[0]).filter(Boolean));await vt(r,1)}catch{}let o=n.safariWarmupAttempts??3;for(let i=0;i<o;i++)try{await Ni(t,e)}catch{}}return n.iconFonts&&n.iconFonts.length>0&&wn(n.iconFonts),n.snap||(n.snap={toPng:(o,i)=>N.toPng(o,i),toSvg:(o,i)=>N.toSvg(o,i)}),N.capture(t,n,Po)}N.capture=async(t,e,n)=>{if(n!==Po)throw new Error(\"[snapdom.capture] is internal. Use snapdom(...) instead.\");let o=await Oe(t,e),i={img:async(p,y)=>{let{toImg:h}=await Promise.resolve().then(()=>(De(),Be));return h(o,{...p,...y||{}})},svg:async(p,y)=>{let{toSvg:h}=await Promise.resolve().then(()=>(De(),Be));return h(o,{...p,...y||{}})},canvas:async(p,y)=>{let{toCanvas:h}=await Promise.resolve().then(()=>(Ut(),Mo));return h(o,{...p,...y||{}})},blob:async(p,y)=>{let{toBlob:h}=await Promise.resolve().then(()=>(ze(),Fo));return h(o,{...p,...y||{}})},png:async(p,y)=>{let{rasterize:h}=await Promise.resolve().then(()=>(Bt(),ue));return h(o,{...p,...y||{},format:\"png\"})},jpeg:async(p,y)=>{let{rasterize:h}=await Promise.resolve().then(()=>(Bt(),ue));return h(o,{...p,...y||{},format:\"jpeg\"})},webp:async(p,y)=>{let{rasterize:h}=await Promise.resolve().then(()=>(Bt(),ue));return h(o,{...p,...y||{},format:\"webp\"})},download:async(p,y)=>{let{download:h}=await Promise.resolve().then(()=>(Lo(),Ro));return h(o,{...p,...y||{}})}},r={};for(let p of[\"img\",\"svg\",\"canvas\",\"blob\",\"png\",\"jpeg\",\"webp\"])r[p]=async y=>i[p](e,{...y||{},[Ti]:!0});r.jpg=r.jpeg;let s={...e,export:{url:o},exports:r},a=await Zn(\"defineExports\",s),l=Object.assign({},...a.filter(p=>p&&typeof p==\"object\").reverse()),u={...i,...l};u.jpeg&&!u.jpg&&(u.jpg=(p,y)=>u.jpeg(p,y));function c(p,y){let h={...e,...y||{}},b=w=>w===\"jpeg\"||w===\"jpg\"||w===\"webp\";return[p,h.format,h.type].map(w=>typeof w==\"string\"?w.toLowerCase():\"\").find(b)&&(h.backgroundColor==null||h.backgroundColor===\"transparent\")&&(h.backgroundColor=\"#ffffff\"),h}let f=!1,d=Promise.resolve();async function m(p,y){let h=async()=>{let b=u[p];if(!b)throw new Error(`[snapdom] Unknown export type: ${p}`);let S=c(p,y),w={...e,export:{type:p,options:S,url:o}};await tt(\"beforeExport\",w);let x=await b(w,S);return await tt(\"afterExport\",w,x),f||(f=!0,await tt(\"afterSnap\",e)),x};return d=d.then(h)}let g={url:o,toRaw:()=>o,to:(p,y)=>m(p,y),toImg:p=>m(\"img\",p),toSvg:p=>m(\"svg\",p),toCanvas:p=>m(\"canvas\",p),toBlob:p=>m(\"blob\",p),toPng:p=>m(\"png\",p),toJpg:p=>m(\"jpg\",p),toWebp:p=>m(\"webp\",p),download:p=>m(\"download\",p)};for(let p of Object.keys(u)){let y=\"to\"+p.charAt(0).toUpperCase()+p.slice(1);g[y]||(g[y]=h=>m(p,h))}return g};N.toRaw=(t,e)=>N(t,e).then(n=>n.toRaw());N.toImg=(t,e)=>N(t,e).then(n=>n.toImg());N.toSvg=(t,e)=>N(t,e).then(n=>n.toSvg());N.toCanvas=(t,e)=>N(t,e).then(n=>n.toCanvas());N.toBlob=(t,e)=>N(t,e).then(n=>n.toBlob());N.toPng=(t,e)=>N(t,{...e,format:\"png\"}).then(n=>n.toPng());N.toJpg=(t,e)=>N(t,{...e,format:\"jpeg\"}).then(n=>n.toJpg());N.toWebp=(t,e)=>N(t,{...e,format:\"webp\"}).then(n=>n.toWebp());N.download=(t,e)=>N(t,e).then(n=>n.download());async function Ni(t,e){if(To)return;let n={...e,fast:!0,embedFonts:!0,scale:.2},o;try{o=await Oe(t,n)}catch(i){R(e,\"safariWarmup pre-capture failed\",i)}await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(i))),o&&await new Promise(i=>{let r=new Image;try{r.decoding=\"sync\",r.loading=\"eager\"}catch(s){R(e,\"safariWarmup img hints failed\",s)}r.style.cssText=\"position:fixed;left:0px;top:0px;width:10px;height:10px;opacity:0.01;pointer-events:none;\",r.src=o,document.body.appendChild(r),(async()=>{try{typeof r.decode==\"function\"&&await r.decode()}catch(a){R(e,\"safariWarmup img.decode failed\",a)}let s=performance.now();for(;!(r.complete&&r.naturalWidth>0)&&performance.now()-s<900;)await new Promise(a=>setTimeout(a,200));await new Promise(a=>requestAnimationFrame(a));try{let a=document.createElement(\"canvas\");a.width=Math.max(1,r.naturalWidth||10),a.height=Math.max(1,r.naturalHeight||10);let l=a.getContext(\"2d\");l&&l.drawImage(r,0,0)}catch{}await new Promise(a=>requestAnimationFrame(a));try{r.remove()}catch(a){R(e,\"safariWarmup img.remove failed\",a)}i()})()}),t.querySelectorAll(\"canvas\").forEach(i=>{try{let r=i.getContext(\"2d\",{willReadFrequently:!0});r&&r.getImageData(0,0,1,1)}catch(r){R(e,\"safariWarmup canvas poke failed\",r)}}),To=!0}function Ii(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;e.nextNode();){let n=e.currentNode,o=getComputedStyle(n),i=o.backgroundImage&&o.backgroundImage!==\"none\",r=o.maskImage&&o.maskImage!==\"none\"||o.webkitMaskImage&&o.webkitMaskImage!==\"none\";if(i||r||n.tagName===\"CANVAS\")return!0}return!1}export{Ci as preCache,N as snapdom};\n","function changeJpegDpi(uint8Array, dpi) {\n uint8Array[13] = 1;\n uint8Array[14] = dpi >> 8;\n uint8Array[15] = dpi & 255;\n uint8Array[16] = dpi >> 8;\n uint8Array[17] = dpi & 255;\n return uint8Array;\n}\n\nconst _P = \"p\".charCodeAt(0);\nconst _H = \"H\".charCodeAt(0);\nconst _Y = \"Y\".charCodeAt(0);\nconst _S = \"s\".charCodeAt(0);\nlet pngDataTable;\nfunction createPngDataTable() {\n const crcTable = new Int32Array(256);\n for (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n}\nfunction calcCrc(uint8Array) {\n let c = -1;\n if (!pngDataTable)\n pngDataTable = createPngDataTable();\n for (let n = 0; n < uint8Array.length; n++) {\n c = pngDataTable[(c ^ uint8Array[n]) & 255] ^ c >>> 8;\n }\n return c ^ -1;\n}\nfunction searchStartOfPhys(uint8Array) {\n const length = uint8Array.length - 1;\n for (let i = length; i >= 4; i--) {\n if (uint8Array[i - 4] === 9 && uint8Array[i - 3] === _P && uint8Array[i - 2] === _H && uint8Array[i - 1] === _Y && uint8Array[i] === _S) {\n return i - 3;\n }\n }\n return 0;\n}\nfunction changePngDpi(uint8Array, dpi, overwritepHYs = false) {\n const physChunk = new Uint8Array(13);\n dpi *= 39.3701;\n physChunk[0] = _P;\n physChunk[1] = _H;\n physChunk[2] = _Y;\n physChunk[3] = _S;\n physChunk[4] = dpi >>> 24;\n physChunk[5] = dpi >>> 16;\n physChunk[6] = dpi >>> 8;\n physChunk[7] = dpi & 255;\n physChunk[8] = physChunk[4];\n physChunk[9] = physChunk[5];\n physChunk[10] = physChunk[6];\n physChunk[11] = physChunk[7];\n physChunk[12] = 1;\n const crc = calcCrc(physChunk);\n const crcChunk = new Uint8Array(4);\n crcChunk[0] = crc >>> 24;\n crcChunk[1] = crc >>> 16;\n crcChunk[2] = crc >>> 8;\n crcChunk[3] = crc & 255;\n if (overwritepHYs) {\n const startingIndex = searchStartOfPhys(uint8Array);\n uint8Array.set(physChunk, startingIndex);\n uint8Array.set(crcChunk, startingIndex + 13);\n return uint8Array;\n } else {\n const chunkLength = new Uint8Array(4);\n chunkLength[0] = 0;\n chunkLength[1] = 0;\n chunkLength[2] = 0;\n chunkLength[3] = 9;\n const finalHeader = new Uint8Array(54);\n finalHeader.set(uint8Array, 0);\n finalHeader.set(chunkLength, 33);\n finalHeader.set(physChunk, 37);\n finalHeader.set(crcChunk, 50);\n return finalHeader;\n }\n}\nconst b64PhysSignature1 = \"AAlwSFlz\";\nconst b64PhysSignature2 = \"AAAJcEhZ\";\nconst b64PhysSignature3 = \"AAAACXBI\";\nfunction detectPhysChunkFromDataUrl(dataUrl) {\n let b64index = dataUrl.indexOf(b64PhysSignature1);\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature2);\n }\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature3);\n }\n return b64index;\n}\n\nconst PREFIX = \"[modern-screenshot]\";\nconst IN_BROWSER = typeof window !== \"undefined\";\nconst SUPPORT_WEB_WORKER = IN_BROWSER && \"Worker\" in window;\nconst SUPPORT_ATOB = IN_BROWSER && \"atob\" in window;\nconst SUPPORT_BTOA = IN_BROWSER && \"btoa\" in window;\nconst USER_AGENT = IN_BROWSER ? window.navigator?.userAgent : \"\";\nconst IN_CHROME = USER_AGENT.includes(\"Chrome\");\nconst IN_SAFARI = USER_AGENT.includes(\"AppleWebKit\") && !IN_CHROME;\nconst IN_FIREFOX = USER_AGENT.includes(\"Firefox\");\nconst isContext = (value) => value && \"__CONTEXT__\" in value;\nconst isCssFontFaceRule = (rule) => rule.constructor.name === \"CSSFontFaceRule\";\nconst isCSSImportRule = (rule) => rule.constructor.name === \"CSSImportRule\";\nconst isLayerBlockRule = (rule) => rule.constructor.name === \"CSSLayerBlockRule\";\nconst isElementNode = (node) => node.nodeType === 1;\nconst isSVGElementNode = (node) => typeof node.className === \"object\";\nconst isSVGImageElementNode = (node) => node.tagName === \"image\";\nconst isSVGUseElementNode = (node) => node.tagName === \"use\";\nconst isHTMLElementNode = (node) => isElementNode(node) && typeof node.style !== \"undefined\" && !isSVGElementNode(node);\nconst isCommentNode = (node) => node.nodeType === 8;\nconst isTextNode = (node) => node.nodeType === 3;\nconst isImageElement = (node) => node.tagName === \"IMG\";\nconst isVideoElement = (node) => node.tagName === \"VIDEO\";\nconst isCanvasElement = (node) => node.tagName === \"CANVAS\";\nconst isTextareaElement = (node) => node.tagName === \"TEXTAREA\";\nconst isInputElement = (node) => node.tagName === \"INPUT\";\nconst isStyleElement = (node) => node.tagName === \"STYLE\";\nconst isScriptElement = (node) => node.tagName === \"SCRIPT\";\nconst isSelectElement = (node) => node.tagName === \"SELECT\";\nconst isSlotElement = (node) => node.tagName === \"SLOT\";\nconst isIFrameElement = (node) => node.tagName === \"IFRAME\";\nconst consoleWarn = (...args) => console.warn(PREFIX, ...args);\nfunction supportWebp(ownerDocument) {\n const canvas = ownerDocument?.createElement?.(\"canvas\");\n if (canvas) {\n canvas.height = canvas.width = 1;\n }\n return Boolean(canvas) && \"toDataURL\" in canvas && Boolean(canvas.toDataURL(\"image/webp\").includes(\"image/webp\"));\n}\nconst isDataUrl = (url) => url.startsWith(\"data:\");\nfunction resolveUrl(url, baseUrl) {\n if (url.match(/^[a-z]+:\\/\\//i))\n return url;\n if (IN_BROWSER && url.match(/^\\/\\//))\n return window.location.protocol + url;\n if (url.match(/^[a-z]+:/i))\n return url;\n if (!IN_BROWSER)\n return url;\n const doc = getDocument().implementation.createHTMLDocument();\n const base = doc.createElement(\"base\");\n const a = doc.createElement(\"a\");\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl)\n base.href = baseUrl;\n a.href = url;\n return a.href;\n}\nfunction getDocument(target) {\n return (target && isElementNode(target) ? target?.ownerDocument : target) ?? window.document;\n}\nconst XMLNS = \"http://www.w3.org/2000/svg\";\nfunction createSvg(width, height, ownerDocument) {\n const svg = getDocument(ownerDocument).createElementNS(XMLNS, \"svg\");\n svg.setAttributeNS(null, \"width\", width.toString());\n svg.setAttributeNS(null, \"height\", height.toString());\n svg.setAttributeNS(null, \"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n}\nfunction svgToDataUrl(svg, removeControlCharacter) {\n let xhtml = new XMLSerializer().serializeToString(svg);\n if (removeControlCharacter) {\n xhtml = xhtml.replace(/[\\u0000-\\u0008\\v\\f\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/gu, \"\");\n }\n return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(xhtml)}`;\n}\nasync function canvasToBlob(canvas, type = \"image/png\", quality = 1) {\n try {\n return await new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error(\"Blob is null\"));\n }\n }, type, quality);\n });\n } catch (error) {\n if (SUPPORT_ATOB) {\n return dataUrlToBlob(canvas.toDataURL(type, quality));\n }\n throw error;\n }\n}\nfunction dataUrlToBlob(dataUrl) {\n const [header, base64] = dataUrl.split(\",\");\n const type = header.match(/data:(.+);/)?.[1] ?? void 0;\n const decoded = window.atob(base64);\n const length = decoded.length;\n const buffer = new Uint8Array(length);\n for (let i = 0; i < length; i += 1) {\n buffer[i] = decoded.charCodeAt(i);\n }\n return new Blob([buffer], { type });\n}\nfunction readBlob(blob, type) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.onabort = () => reject(new Error(`Failed read blob to ${type}`));\n if (type === \"dataUrl\") {\n reader.readAsDataURL(blob);\n } else if (type === \"arrayBuffer\") {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\nconst blobToDataUrl = (blob) => readBlob(blob, \"dataUrl\");\nconst blobToArrayBuffer = (blob) => readBlob(blob, \"arrayBuffer\");\nfunction createImage(url, ownerDocument) {\n const img = getDocument(ownerDocument).createElement(\"img\");\n img.decoding = \"sync\";\n img.loading = \"eager\";\n img.src = url;\n return img;\n}\nfunction loadMedia(media, options) {\n return new Promise((resolve) => {\n const { timeout, ownerDocument, onError: userOnError, onWarn } = options ?? {};\n const node = typeof media === \"string\" ? createImage(media, getDocument(ownerDocument)) : media;\n let timer = null;\n let removeEventListeners = null;\n function onResolve() {\n resolve(node);\n timer && clearTimeout(timer);\n removeEventListeners?.();\n }\n if (timeout) {\n timer = setTimeout(onResolve, timeout);\n }\n if (isVideoElement(node)) {\n const currentSrc = node.currentSrc || node.src;\n if (!currentSrc) {\n if (node.poster) {\n return loadMedia(node.poster, options).then(resolve);\n }\n return onResolve();\n }\n if (node.readyState >= 2) {\n return onResolve();\n }\n const onLoadeddata = onResolve;\n const onError = (error) => {\n onWarn?.(\n \"Failed video load\",\n currentSrc,\n error\n );\n userOnError?.(error);\n onResolve();\n };\n removeEventListeners = () => {\n node.removeEventListener(\"loadeddata\", onLoadeddata);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"loadeddata\", onLoadeddata, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n } else {\n const currentSrc = isSVGImageElementNode(node) ? node.href.baseVal : node.currentSrc || node.src;\n if (!currentSrc) {\n return onResolve();\n }\n const onLoad = async () => {\n if (isImageElement(node) && \"decode\" in node) {\n try {\n await node.decode();\n } catch (error) {\n onWarn?.(\n \"Failed to decode image, trying to render anyway\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n }\n }\n onResolve();\n };\n const onError = (error) => {\n onWarn?.(\n \"Failed image load\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n onResolve();\n };\n if (isImageElement(node) && node.complete) {\n return onLoad();\n }\n removeEventListeners = () => {\n node.removeEventListener(\"load\", onLoad);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"load\", onLoad, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n }\n });\n}\nasync function waitUntilLoad(node, options) {\n if (isHTMLElementNode(node)) {\n if (isImageElement(node) || isVideoElement(node)) {\n await loadMedia(node, options);\n } else {\n await Promise.all(\n [\"img\", \"video\"].flatMap((selectors) => {\n return Array.from(node.querySelectorAll(selectors)).map((el) => loadMedia(el, options));\n })\n );\n }\n }\n}\nconst uuid = /* @__PURE__ */ function uuid2() {\n let counter = 0;\n const random = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n}();\nfunction splitFontFamily(fontFamily) {\n return fontFamily?.split(\",\").map((val) => val.trim().replace(/\"|'/g, \"\").toLowerCase()).filter(Boolean);\n}\n\nlet uid = 0;\nfunction createLogger(debug) {\n const prefix = `${PREFIX}[#${uid}]`;\n uid++;\n return {\n // eslint-disable-next-line no-console\n time: (label) => debug && console.time(`${prefix} ${label}`),\n // eslint-disable-next-line no-console\n timeEnd: (label) => debug && console.timeEnd(`${prefix} ${label}`),\n warn: (...args) => debug && consoleWarn(...args)\n };\n}\n\nfunction getDefaultRequestInit(bypassingCache) {\n return {\n cache: bypassingCache ? \"no-cache\" : \"force-cache\"\n };\n}\n\nasync function orCreateContext(node, options) {\n return isContext(node) ? node : createContext(node, { ...options, autoDestruct: true });\n}\nasync function createContext(node, options) {\n const { scale = 1, workerUrl, workerNumber = 1 } = options || {};\n const debug = Boolean(options?.debug);\n const features = options?.features ?? true;\n const ownerDocument = node.ownerDocument ?? (IN_BROWSER ? window.document : void 0);\n const ownerWindow = node.ownerDocument?.defaultView ?? (IN_BROWSER ? window : void 0);\n const requests = /* @__PURE__ */ new Map();\n const context = {\n // Options\n width: 0,\n height: 0,\n quality: 1,\n type: \"image/png\",\n scale,\n backgroundColor: null,\n style: null,\n filter: null,\n maximumCanvasSize: 0,\n timeout: 3e4,\n progress: null,\n debug,\n fetch: {\n requestInit: getDefaultRequestInit(options?.fetch?.bypassingCache),\n placeholderImage: \"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",\n bypassingCache: false,\n ...options?.fetch\n },\n fetchFn: null,\n font: {},\n drawImageInterval: 100,\n workerUrl: null,\n workerNumber,\n onCloneEachNode: null,\n onCloneNode: null,\n onEmbedNode: null,\n onCreateForeignObjectSvg: null,\n includeStyleProperties: null,\n autoDestruct: false,\n ...options,\n // InternalContext\n __CONTEXT__: true,\n log: createLogger(debug),\n node,\n ownerDocument,\n ownerWindow,\n dpi: scale === 1 ? null : 96 * scale,\n svgStyleElement: createStyleElement(ownerDocument),\n svgDefsElement: ownerDocument?.createElementNS(XMLNS, \"defs\"),\n svgStyles: /* @__PURE__ */ new Map(),\n defaultComputedStyles: /* @__PURE__ */ new Map(),\n workers: [\n ...Array.from({\n length: SUPPORT_WEB_WORKER && workerUrl && workerNumber ? workerNumber : 0\n })\n ].map(() => {\n try {\n const worker = new Worker(workerUrl);\n worker.onmessage = async (event) => {\n const { url, result } = event.data;\n if (result) {\n requests.get(url)?.resolve?.(result);\n } else {\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n }\n };\n worker.onmessageerror = (event) => {\n const { url } = event.data;\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n };\n return worker;\n } catch (error) {\n context.log.warn(\"Failed to new Worker\", error);\n return null;\n }\n }).filter(Boolean),\n fontFamilies: /* @__PURE__ */ new Map(),\n fontCssTexts: /* @__PURE__ */ new Map(),\n acceptOfImage: `${[\n supportWebp(ownerDocument) && \"image/webp\",\n \"image/svg+xml\",\n \"image/*\",\n \"*/*\"\n ].filter(Boolean).join(\",\")};q=0.8`,\n requests,\n drawImageCount: 0,\n tasks: [],\n features,\n isEnable: (key) => {\n if (key === \"restoreScrollPosition\") {\n return typeof features === \"boolean\" ? false : features[key] ?? false;\n }\n if (typeof features === \"boolean\") {\n return features;\n }\n return features[key] ?? true;\n },\n shadowRoots: []\n };\n context.log.time(\"wait until load\");\n await waitUntilLoad(node, { timeout: context.timeout, onWarn: context.log.warn });\n context.log.timeEnd(\"wait until load\");\n const { width, height } = resolveBoundingBox(node, context);\n context.width = width;\n context.height = height;\n return context;\n}\nfunction createStyleElement(ownerDocument) {\n if (!ownerDocument)\n return void 0;\n const style = ownerDocument.createElement(\"style\");\n const cssText = style.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);\n style.appendChild(cssText);\n return style;\n}\nfunction resolveBoundingBox(node, context) {\n let { width, height } = context;\n if (isElementNode(node) && (!width || !height)) {\n const box = node.getBoundingClientRect();\n width = width || box.width || Number(node.getAttribute(\"width\")) || 0;\n height = height || box.height || Number(node.getAttribute(\"height\")) || 0;\n }\n return { width, height };\n}\n\nasync function imageToCanvas(image, context) {\n const {\n log,\n timeout,\n drawImageCount,\n drawImageInterval\n } = context;\n log.time(\"image to canvas\");\n const loaded = await loadMedia(image, { timeout, onWarn: context.log.warn });\n const { canvas, context2d } = createCanvas(image.ownerDocument, context);\n const drawImage = () => {\n try {\n context2d?.drawImage(loaded, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to drawImage\", error);\n }\n };\n drawImage();\n if (context.isEnable(\"fixSvgXmlDecode\")) {\n for (let i = 0; i < drawImageCount; i++) {\n await new Promise((resolve) => {\n setTimeout(() => {\n context2d?.clearRect(0, 0, canvas.width, canvas.height);\n drawImage();\n resolve();\n }, i + drawImageInterval);\n });\n }\n }\n context.drawImageCount = 0;\n log.timeEnd(\"image to canvas\");\n return canvas;\n}\nfunction createCanvas(ownerDocument, context) {\n const { width, height, scale, backgroundColor, maximumCanvasSize: max } = context;\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = Math.floor(width * scale);\n canvas.height = Math.floor(height * scale);\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n if (max) {\n if (canvas.width > max || canvas.height > max) {\n if (canvas.width > max && canvas.height > max) {\n if (canvas.width > canvas.height) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n } else if (canvas.width > max) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n }\n }\n const context2d = canvas.getContext(\"2d\");\n if (context2d && backgroundColor) {\n context2d.fillStyle = backgroundColor;\n context2d.fillRect(0, 0, canvas.width, canvas.height);\n }\n return { canvas, context2d };\n}\n\nfunction cloneCanvas(canvas, context) {\n if (canvas.ownerDocument) {\n try {\n const dataURL = canvas.toDataURL();\n if (dataURL !== \"data:,\") {\n return createImage(dataURL, canvas.ownerDocument);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n }\n const cloned = canvas.cloneNode(false);\n const ctx = canvas.getContext(\"2d\");\n const clonedCtx = cloned.getContext(\"2d\");\n try {\n if (ctx && clonedCtx) {\n clonedCtx.putImageData(\n ctx.getImageData(0, 0, canvas.width, canvas.height),\n 0,\n 0\n );\n }\n return cloned;\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n return cloned;\n}\n\nfunction cloneIframe(iframe, context) {\n try {\n if (iframe?.contentDocument?.documentElement) {\n return cloneNode(iframe.contentDocument.documentElement, context);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone iframe\", error);\n }\n return iframe.cloneNode(false);\n}\n\nfunction cloneImage(image) {\n const cloned = image.cloneNode(false);\n if (image.currentSrc && image.currentSrc !== image.src) {\n cloned.src = image.currentSrc;\n cloned.srcset = \"\";\n }\n if (cloned.loading === \"lazy\") {\n cloned.loading = \"eager\";\n }\n return cloned;\n}\n\nasync function cloneVideo(video, context) {\n if (video.ownerDocument && !video.currentSrc && video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n const cloned = video.cloneNode(false);\n cloned.crossOrigin = \"anonymous\";\n if (video.currentSrc && video.currentSrc !== video.src) {\n cloned.src = video.currentSrc;\n }\n const ownerDocument = cloned.ownerDocument;\n if (ownerDocument) {\n let canPlay = true;\n await loadMedia(cloned, { onError: () => canPlay = false, onWarn: context.log.warn });\n if (!canPlay) {\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n cloned.currentTime = video.currentTime;\n await new Promise((resolve) => {\n cloned.addEventListener(\"seeked\", resolve, { once: true });\n });\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = video.offsetWidth;\n canvas.height = video.offsetHeight;\n try {\n const ctx = canvas.getContext(\"2d\");\n if (ctx)\n ctx.drawImage(cloned, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to clone video\", error);\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n return cloneCanvas(canvas, context);\n }\n return cloned;\n}\n\nfunction cloneElement(node, context) {\n if (isCanvasElement(node)) {\n return cloneCanvas(node, context);\n }\n if (isIFrameElement(node)) {\n return cloneIframe(node, context);\n }\n if (isImageElement(node)) {\n return cloneImage(node);\n }\n if (isVideoElement(node)) {\n return cloneVideo(node, context);\n }\n return node.cloneNode(false);\n}\n\nfunction getSandBox(context) {\n let sandbox = context.sandbox;\n if (!sandbox) {\n const { ownerDocument } = context;\n try {\n if (ownerDocument) {\n sandbox = ownerDocument.createElement(\"iframe\");\n sandbox.id = `__SANDBOX__${uuid()}`;\n sandbox.width = \"0\";\n sandbox.height = \"0\";\n sandbox.style.visibility = \"hidden\";\n sandbox.style.position = \"fixed\";\n ownerDocument.body.appendChild(sandbox);\n sandbox.srcdoc = '<!DOCTYPE html><meta charset=\"UTF-8\"><title></title><body>';\n context.sandbox = sandbox;\n }\n } catch (error) {\n context.log.warn(\"Failed to getSandBox\", error);\n }\n }\n return sandbox;\n}\n\nconst ignoredStyles = [\n \"width\",\n \"height\",\n \"-webkit-text-fill-color\"\n];\nconst includedAttributes = [\n \"stroke\",\n \"fill\"\n];\nfunction getDefaultStyle(node, pseudoElement, context) {\n const { defaultComputedStyles } = context;\n const nodeName = node.nodeName.toLowerCase();\n const isSvgNode = isSVGElementNode(node) && nodeName !== \"svg\";\n const attributes = isSvgNode ? includedAttributes.map((name) => [name, node.getAttribute(name)]).filter(([, value]) => value !== null) : [];\n const key = [\n isSvgNode && \"svg\",\n nodeName,\n attributes.map((name, value) => `${name}=${value}`).join(\",\"),\n pseudoElement\n ].filter(Boolean).join(\":\");\n if (defaultComputedStyles.has(key))\n return defaultComputedStyles.get(key);\n const sandbox = getSandBox(context);\n const sandboxWindow = sandbox?.contentWindow;\n if (!sandboxWindow)\n return /* @__PURE__ */ new Map();\n const sandboxDocument = sandboxWindow?.document;\n let root;\n let el;\n if (isSvgNode) {\n root = sandboxDocument.createElementNS(XMLNS, \"svg\");\n el = root.ownerDocument.createElementNS(root.namespaceURI, nodeName);\n attributes.forEach(([name, value]) => {\n el.setAttributeNS(null, name, value);\n });\n root.appendChild(el);\n } else {\n root = el = sandboxDocument.createElement(nodeName);\n }\n el.textContent = \" \";\n sandboxDocument.body.appendChild(root);\n const computedStyle = sandboxWindow.getComputedStyle(el, pseudoElement);\n const styles = /* @__PURE__ */ new Map();\n for (let len = computedStyle.length, i = 0; i < len; i++) {\n const name = computedStyle.item(i);\n if (ignoredStyles.includes(name))\n continue;\n styles.set(name, computedStyle.getPropertyValue(name));\n }\n sandboxDocument.body.removeChild(root);\n defaultComputedStyles.set(key, styles);\n return styles;\n}\n\nfunction getDiffStyle(style, defaultStyle, includeStyleProperties) {\n const diffStyle = /* @__PURE__ */ new Map();\n const prefixs = [];\n const prefixTree = /* @__PURE__ */ new Map();\n if (includeStyleProperties) {\n for (const name of includeStyleProperties) {\n applyTo(name);\n }\n } else {\n for (let len = style.length, i = 0; i < len; i++) {\n const name = style.item(i);\n applyTo(name);\n }\n }\n for (let len = prefixs.length, i = 0; i < len; i++) {\n prefixTree.get(prefixs[i])?.forEach((value, name) => diffStyle.set(name, value));\n }\n function applyTo(name) {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n const subIndex = name.lastIndexOf(\"-\");\n const prefix = subIndex > -1 ? name.substring(0, subIndex) : void 0;\n if (prefix) {\n let map = prefixTree.get(prefix);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n prefixTree.set(prefix, map);\n }\n map.set(name, [value, priority]);\n }\n if (defaultStyle.get(name) === value && !priority)\n return;\n if (prefix) {\n prefixs.push(prefix);\n } else {\n diffStyle.set(name, [value, priority]);\n }\n }\n return diffStyle;\n}\n\nfunction copyCssStyles(node, cloned, isRoot, context) {\n const { ownerWindow, includeStyleProperties, currentParentNodeStyle } = context;\n const clonedStyle = cloned.style;\n const computedStyle = ownerWindow.getComputedStyle(node);\n const defaultStyle = getDefaultStyle(node, null, context);\n currentParentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, includeStyleProperties);\n style.delete(\"transition-property\");\n style.delete(\"all\");\n style.delete(\"d\");\n style.delete(\"content\");\n if (isRoot) {\n style.delete(\"position\");\n style.delete(\"margin-top\");\n style.delete(\"margin-right\");\n style.delete(\"margin-bottom\");\n style.delete(\"margin-left\");\n style.delete(\"margin-block-start\");\n style.delete(\"margin-block-end\");\n style.delete(\"margin-inline-start\");\n style.delete(\"margin-inline-end\");\n style.set(\"box-sizing\", [\"border-box\", \"\"]);\n }\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n if (IN_CHROME) {\n if (!style.has(\"font-kerning\"))\n style.set(\"font-kerning\", [\"normal\", \"\"]);\n if ((style.get(\"overflow-x\")?.[0] === \"hidden\" || style.get(\"overflow-y\")?.[0] === \"hidden\") && style.get(\"text-overflow\")?.[0] === \"ellipsis\" && node.scrollWidth === node.clientWidth) {\n style.set(\"text-overflow\", [\"clip\", \"\"]);\n }\n }\n for (let len = clonedStyle.length, i = 0; i < len; i++) {\n clonedStyle.removeProperty(clonedStyle.item(i));\n }\n style.forEach(([value, priority], name) => {\n clonedStyle.setProperty(name, value, priority);\n });\n return style;\n}\n\nfunction copyInputValue(node, cloned) {\n if (isTextareaElement(node) || isInputElement(node) || isSelectElement(node)) {\n cloned.setAttribute(\"value\", node.value);\n }\n}\n\nconst pseudoClasses = [\n \"::before\",\n \"::after\"\n // '::placeholder', TODO\n];\nconst scrollbarPseudoClasses = [\n \"::-webkit-scrollbar\",\n \"::-webkit-scrollbar-button\",\n // '::-webkit-scrollbar:horizontal', TODO\n \"::-webkit-scrollbar-thumb\",\n \"::-webkit-scrollbar-track\",\n \"::-webkit-scrollbar-track-piece\",\n // '::-webkit-scrollbar:vertical', TODO\n \"::-webkit-scrollbar-corner\",\n \"::-webkit-resizer\"\n];\nfunction copyPseudoClass(node, cloned, copyScrollbar, context, addWordToFontFamilies) {\n const { ownerWindow, svgStyleElement, svgStyles, currentNodeStyle } = context;\n if (!svgStyleElement || !ownerWindow)\n return;\n function copyBy(pseudoClass) {\n const computedStyle = ownerWindow.getComputedStyle(node, pseudoClass);\n let content = computedStyle.getPropertyValue(\"content\");\n if (!content || content === \"none\")\n return;\n addWordToFontFamilies?.(content);\n content = content.replace(/(')|(\")|(counter\\(.+\\))/g, \"\");\n const klasses = [uuid()];\n const defaultStyle = getDefaultStyle(node, pseudoClass, context);\n currentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, context.includeStyleProperties);\n style.delete(\"content\");\n style.delete(\"-webkit-locale\");\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n const cloneStyle = [\n `content: '${content}';`\n ];\n style.forEach(([value, priority], name) => {\n cloneStyle.push(`${name}: ${value}${priority ? \" !important\" : \"\"};`);\n });\n if (cloneStyle.length === 1)\n return;\n try {\n cloned.className = [cloned.className, ...klasses].join(\" \");\n } catch (err) {\n context.log.warn(\"Failed to copyPseudoClass\", err);\n return;\n }\n const cssText = cloneStyle.join(\"\\n \");\n let allClasses = svgStyles.get(cssText);\n if (!allClasses) {\n allClasses = [];\n svgStyles.set(cssText, allClasses);\n }\n allClasses.push(`.${klasses[0]}${pseudoClass}`);\n }\n pseudoClasses.forEach(copyBy);\n if (copyScrollbar)\n scrollbarPseudoClasses.forEach(copyBy);\n}\n\nconst excludeParentNodes = /* @__PURE__ */ new Set([\n \"symbol\"\n // test/fixtures/svg.symbol.html\n]);\nasync function appendChildNode(node, cloned, child, context, addWordToFontFamilies) {\n if (isElementNode(child) && (isStyleElement(child) || isScriptElement(child)))\n return;\n if (context.filter && !context.filter(child))\n return;\n if (excludeParentNodes.has(cloned.nodeName) || excludeParentNodes.has(child.nodeName)) {\n context.currentParentNodeStyle = void 0;\n } else {\n context.currentParentNodeStyle = context.currentNodeStyle;\n }\n const childCloned = await cloneNode(child, context, false, addWordToFontFamilies);\n if (context.isEnable(\"restoreScrollPosition\")) {\n restoreScrollPosition(node, childCloned);\n }\n cloned.appendChild(childCloned);\n}\nasync function cloneChildNodes(node, cloned, context, addWordToFontFamilies) {\n let firstChild = node.firstChild;\n if (isElementNode(node)) {\n if (node.shadowRoot) {\n firstChild = node.shadowRoot?.firstChild;\n context.shadowRoots.push(node.shadowRoot);\n }\n }\n for (let child = firstChild; child; child = child.nextSibling) {\n if (isCommentNode(child))\n continue;\n if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === \"function\") {\n const nodes = child.assignedNodes();\n for (let i = 0; i < nodes.length; i++) {\n await appendChildNode(node, cloned, nodes[i], context, addWordToFontFamilies);\n }\n } else {\n await appendChildNode(node, cloned, child, context, addWordToFontFamilies);\n }\n }\n}\nfunction restoreScrollPosition(node, chlidCloned) {\n if (!isHTMLElementNode(node) || !isHTMLElementNode(chlidCloned))\n return;\n const { scrollTop, scrollLeft } = node;\n if (!scrollTop && !scrollLeft) {\n return;\n }\n const { transform } = chlidCloned.style;\n const matrix = new DOMMatrix(transform);\n const { a, b, c, d } = matrix;\n matrix.a = 1;\n matrix.b = 0;\n matrix.c = 0;\n matrix.d = 1;\n matrix.translateSelf(-scrollLeft, -scrollTop);\n matrix.a = a;\n matrix.b = b;\n matrix.c = c;\n matrix.d = d;\n chlidCloned.style.transform = matrix.toString();\n}\nfunction applyCssStyleWithOptions(cloned, context) {\n const { backgroundColor, width, height, style: styles } = context;\n const clonedStyle = cloned.style;\n if (backgroundColor)\n clonedStyle.setProperty(\"background-color\", backgroundColor, \"important\");\n if (width)\n clonedStyle.setProperty(\"width\", `${width}px`, \"important\");\n if (height)\n clonedStyle.setProperty(\"height\", `${height}px`, \"important\");\n if (styles) {\n for (const name in styles) clonedStyle[name] = styles[name];\n }\n}\nconst NORMAL_ATTRIBUTE_RE = /^[\\w-:]+$/;\nasync function cloneNode(node, context, isRoot = false, addWordToFontFamilies) {\n const { ownerDocument, ownerWindow, fontFamilies, onCloneEachNode } = context;\n if (ownerDocument && isTextNode(node)) {\n if (addWordToFontFamilies && /\\S/.test(node.data)) {\n addWordToFontFamilies(node.data);\n }\n return ownerDocument.createTextNode(node.data);\n }\n if (ownerDocument && ownerWindow && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\n const cloned2 = await cloneElement(node, context);\n if (context.isEnable(\"removeAbnormalAttributes\")) {\n const names = cloned2.getAttributeNames();\n for (let len = names.length, i = 0; i < len; i++) {\n const name = names[i];\n if (!NORMAL_ATTRIBUTE_RE.test(name)) {\n cloned2.removeAttribute(name);\n }\n }\n }\n const style = context.currentNodeStyle = copyCssStyles(node, cloned2, isRoot, context);\n if (isRoot)\n applyCssStyleWithOptions(cloned2, context);\n let copyScrollbar = false;\n if (context.isEnable(\"copyScrollbar\")) {\n const overflow = [\n style.get(\"overflow-x\")?.[0],\n style.get(\"overflow-y\")?.[0]\n ];\n copyScrollbar = overflow.includes(\"scroll\") || (overflow.includes(\"auto\") || overflow.includes(\"overlay\")) && (node.scrollHeight > node.clientHeight || node.scrollWidth > node.clientWidth);\n }\n const textTransform = style.get(\"text-transform\")?.[0];\n const families = splitFontFamily(style.get(\"font-family\")?.[0]);\n const addWordToFontFamilies2 = families ? (word) => {\n if (textTransform === \"uppercase\") {\n word = word.toUpperCase();\n } else if (textTransform === \"lowercase\") {\n word = word.toLowerCase();\n } else if (textTransform === \"capitalize\") {\n word = word[0].toUpperCase() + word.substring(1);\n }\n families.forEach((family) => {\n let fontFamily = fontFamilies.get(family);\n if (!fontFamily) {\n fontFamilies.set(family, fontFamily = /* @__PURE__ */ new Set());\n }\n word.split(\"\").forEach((text) => fontFamily.add(text));\n });\n } : void 0;\n copyPseudoClass(\n node,\n cloned2,\n copyScrollbar,\n context,\n addWordToFontFamilies2\n );\n copyInputValue(node, cloned2);\n if (!isVideoElement(node)) {\n await cloneChildNodes(\n node,\n cloned2,\n context,\n addWordToFontFamilies2\n );\n }\n await onCloneEachNode?.(cloned2);\n return cloned2;\n }\n const cloned = node.cloneNode(false);\n await cloneChildNodes(node, cloned, context);\n await onCloneEachNode?.(cloned);\n return cloned;\n}\n\nfunction destroyContext(context) {\n context.ownerDocument = void 0;\n context.ownerWindow = void 0;\n context.svgStyleElement = void 0;\n context.svgDefsElement = void 0;\n context.svgStyles.clear();\n context.defaultComputedStyles.clear();\n if (context.sandbox) {\n try {\n context.sandbox.remove();\n } catch (err) {\n context.log.warn(\"Failed to destroyContext\", err);\n }\n context.sandbox = void 0;\n }\n context.workers = [];\n context.fontFamilies.clear();\n context.fontCssTexts.clear();\n context.requests.clear();\n context.tasks = [];\n context.shadowRoots = [];\n}\n\nfunction baseFetch(options) {\n const { url, timeout, responseType, ...requestInit } = options;\n const controller = new AbortController();\n const timer = timeout ? setTimeout(() => controller.abort(), timeout) : void 0;\n return fetch(url, { signal: controller.signal, ...requestInit }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Failed fetch, not 2xx response\", { cause: response });\n }\n switch (responseType) {\n case \"arrayBuffer\":\n return response.arrayBuffer();\n case \"dataUrl\":\n return response.blob().then(blobToDataUrl);\n case \"text\":\n default:\n return response.text();\n }\n }).finally(() => clearTimeout(timer));\n}\nfunction contextFetch(context, options) {\n const { url: rawUrl, requestType = \"text\", responseType = \"text\", imageDom } = options;\n let url = rawUrl;\n const {\n timeout,\n acceptOfImage,\n requests,\n fetchFn,\n fetch: {\n requestInit,\n bypassingCache,\n placeholderImage\n },\n font,\n workers,\n fontFamilies\n } = context;\n if (requestType === \"image\" && (IN_SAFARI || IN_FIREFOX)) {\n context.drawImageCount++;\n }\n let request = requests.get(rawUrl);\n if (!request) {\n if (bypassingCache) {\n if (bypassingCache instanceof RegExp && bypassingCache.test(url)) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime();\n }\n }\n const canFontMinify = requestType.startsWith(\"font\") && font && font.minify;\n const fontTexts = /* @__PURE__ */ new Set();\n if (canFontMinify) {\n const families = requestType.split(\";\")[1].split(\",\");\n families.forEach((family) => {\n if (!fontFamilies.has(family))\n return;\n fontFamilies.get(family).forEach((text) => fontTexts.add(text));\n });\n }\n const needFontMinify = canFontMinify && fontTexts.size;\n const baseFetchOptions = {\n url,\n timeout,\n responseType: needFontMinify ? \"arrayBuffer\" : responseType,\n headers: requestType === \"image\" ? { accept: acceptOfImage } : void 0,\n ...requestInit\n };\n request = {\n type: requestType,\n resolve: void 0,\n reject: void 0,\n response: null\n };\n request.response = (async () => {\n if (fetchFn && requestType === \"image\") {\n const result = await fetchFn(rawUrl);\n if (result)\n return result;\n }\n if (!IN_SAFARI && rawUrl.startsWith(\"http\") && workers.length) {\n return new Promise((resolve, reject) => {\n const worker = workers[requests.size & workers.length - 1];\n worker.postMessage({ rawUrl, ...baseFetchOptions });\n request.resolve = resolve;\n request.reject = reject;\n });\n }\n return baseFetch(baseFetchOptions);\n })().catch((error) => {\n requests.delete(rawUrl);\n if (requestType === \"image\" && placeholderImage) {\n context.log.warn(\"Failed to fetch image base64, trying to use placeholder image\", url);\n return typeof placeholderImage === \"string\" ? placeholderImage : placeholderImage(imageDom);\n }\n throw error;\n });\n requests.set(rawUrl, request);\n }\n return request.response;\n}\n\nasync function replaceCssUrlToDataUrl(cssText, baseUrl, context, isImage) {\n if (!hasCssUrl(cssText))\n return cssText;\n for (const [rawUrl, url] of parseCssUrls(cssText, baseUrl)) {\n try {\n const dataUrl = await contextFetch(\n context,\n {\n url,\n requestType: isImage ? \"image\" : \"text\",\n responseType: \"dataUrl\"\n }\n );\n cssText = cssText.replace(toRE(rawUrl), `$1${dataUrl}$3`);\n } catch (error) {\n context.log.warn(\"Failed to fetch css data url\", rawUrl, error);\n }\n }\n return cssText;\n}\nfunction hasCssUrl(cssText) {\n return /url\\((['\"]?)([^'\"]+?)\\1\\)/.test(cssText);\n}\nconst URL_RE = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nfunction parseCssUrls(cssText, baseUrl) {\n const result = [];\n cssText.replace(URL_RE, (raw, quotation, url) => {\n result.push([url, resolveUrl(url, baseUrl)]);\n return raw;\n });\n return result.filter(([url]) => !isDataUrl(url));\n}\nfunction toRE(url) {\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, \"g\");\n}\n\nconst properties = [\n \"background-image\",\n \"border-image-source\",\n \"-webkit-border-image\",\n \"-webkit-mask-image\",\n \"list-style-image\"\n];\nfunction embedCssStyleImage(style, context) {\n return properties.map((property) => {\n const value = style.getPropertyValue(property);\n if (!value || value === \"none\") {\n return null;\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n return replaceCssUrlToDataUrl(value, null, context, true).then((newValue) => {\n if (!newValue || value === newValue)\n return;\n style.setProperty(\n property,\n newValue,\n style.getPropertyPriority(property)\n );\n });\n }).filter(Boolean);\n}\n\nfunction embedImageElement(cloned, context) {\n if (isImageElement(cloned)) {\n const originalSrc = cloned.currentSrc || cloned.src;\n if (!isDataUrl(originalSrc)) {\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.srcset = \"\";\n cloned.dataset.originalSrc = originalSrc;\n cloned.src = url || \"\";\n })\n ];\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n } else if (isSVGElementNode(cloned) && !isDataUrl(cloned.href.baseVal)) {\n const originalSrc = cloned.href.baseVal;\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.dataset.originalSrc = originalSrc;\n cloned.href.baseVal = url || \"\";\n })\n ];\n }\n return [];\n}\n\nfunction embedSvgUse(cloned, context) {\n const { ownerDocument, svgDefsElement } = context;\n const href = cloned.getAttribute(\"href\") ?? cloned.getAttribute(\"xlink:href\");\n if (!href)\n return [];\n const [svgUrl, id] = href.split(\"#\");\n if (id) {\n const query = `#${id}`;\n const definition = context.shadowRoots.reduce(\n (res, root) => {\n return res ?? root.querySelector(`svg ${query}`);\n },\n ownerDocument?.querySelector(`svg ${query}`)\n );\n if (svgUrl) {\n cloned.setAttribute(\"href\", query);\n }\n if (svgDefsElement?.querySelector(query))\n return [];\n if (definition) {\n svgDefsElement?.appendChild(definition.cloneNode(true));\n return [];\n } else if (svgUrl) {\n return [\n contextFetch(context, {\n url: svgUrl,\n responseType: \"text\"\n }).then((svgData) => {\n svgDefsElement?.insertAdjacentHTML(\"beforeend\", svgData);\n })\n ];\n }\n }\n return [];\n}\n\nfunction embedNode(cloned, context) {\n const { tasks } = context;\n if (isElementNode(cloned)) {\n if (isImageElement(cloned) || isSVGImageElementNode(cloned)) {\n tasks.push(...embedImageElement(cloned, context));\n }\n if (isSVGUseElementNode(cloned)) {\n tasks.push(...embedSvgUse(cloned, context));\n }\n }\n if (isHTMLElementNode(cloned)) {\n tasks.push(...embedCssStyleImage(cloned.style, context));\n }\n cloned.childNodes.forEach((child) => {\n embedNode(child, context);\n });\n}\n\nasync function embedWebFont(clone, context) {\n const {\n ownerDocument,\n svgStyleElement,\n fontFamilies,\n fontCssTexts,\n tasks,\n font\n } = context;\n if (!ownerDocument || !svgStyleElement || !fontFamilies.size) {\n return;\n }\n if (font && font.cssText) {\n const cssText = filterPreferredFormat(font.cssText, context);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n const styleSheets = Array.from(ownerDocument.styleSheets).filter((styleSheet) => {\n try {\n return \"cssRules\" in styleSheet && Boolean(styleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(`Error while reading CSS rules from ${styleSheet.href}`, error);\n return false;\n }\n });\n const tempDoc = ownerDocument.implementation.createHTMLDocument(\"\");\n const tempStyleEl = tempDoc.createElement(\"style\");\n tempDoc.head.appendChild(tempStyleEl);\n const tempStyleSheet = tempStyleEl.sheet;\n await Promise.all(\n styleSheets.flatMap((styleSheet) => {\n return Array.from(styleSheet.cssRules).map(async (cssRule) => {\n if (isCSSImportRule(cssRule)) {\n const baseUrl = cssRule.href;\n let cssText = \"\";\n try {\n cssText = await contextFetch(context, {\n url: baseUrl,\n requestType: \"text\",\n responseType: \"text\"\n });\n } catch (error) {\n context.log.warn(`Error fetch remote css import from ${baseUrl}`, error);\n }\n const replacedCssText = cssText.replace(\n URL_RE,\n (raw, quotation, url) => raw.replace(url, resolveUrl(url, baseUrl))\n );\n for (const rule of parseCss(replacedCssText)) {\n try {\n tempStyleSheet.insertRule(rule, tempStyleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(\"Error inserting rule from remote css import\", { rule, error });\n }\n }\n }\n });\n })\n );\n if (tempStyleSheet.cssRules.length)\n styleSheets.push(tempStyleSheet);\n const cssRules = [];\n styleSheets.forEach((sheet) => {\n unwrapCssLayers(sheet.cssRules, cssRules);\n });\n cssRules.filter((cssRule) => isCssFontFaceRule(cssRule) && hasCssUrl(cssRule.style.getPropertyValue(\"src\")) && splitFontFamily(cssRule.style.getPropertyValue(\"font-family\"))?.some((val) => fontFamilies.has(val))).forEach((value) => {\n const rule = value;\n const cssText = fontCssTexts.get(rule.cssText);\n if (cssText) {\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n tasks.push(\n replaceCssUrlToDataUrl(\n rule.cssText,\n rule.parentStyleSheet ? rule.parentStyleSheet.href : null,\n context\n ).then((cssText2) => {\n cssText2 = filterPreferredFormat(cssText2, context);\n fontCssTexts.set(rule.cssText, cssText2);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText2}\n`));\n })\n );\n }\n });\n }\n}\nconst COMMENTS_RE = /(\\/\\*[\\s\\S]*?\\*\\/)/g;\nconst KEYFRAMES_RE = /((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;\nfunction parseCss(source) {\n if (source == null)\n return [];\n const result = [];\n let cssText = source.replace(COMMENTS_RE, \"\");\n while (true) {\n const matches = KEYFRAMES_RE.exec(cssText);\n if (!matches)\n break;\n result.push(matches[0]);\n }\n cssText = cssText.replace(KEYFRAMES_RE, \"\");\n const IMPORT_RE = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n const UNIFIED_RE = new RegExp(\n // eslint-disable-next-line\n \"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\n \"gi\"\n );\n while (true) {\n let matches = IMPORT_RE.exec(cssText);\n if (!matches) {\n matches = UNIFIED_RE.exec(cssText);\n if (!matches) {\n break;\n } else {\n IMPORT_RE.lastIndex = UNIFIED_RE.lastIndex;\n }\n } else {\n UNIFIED_RE.lastIndex = IMPORT_RE.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nconst URL_WITH_FORMAT_RE = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_RE = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction filterPreferredFormat(str, context) {\n const { font } = context;\n const preferredFormat = font ? font?.preferredFormat : void 0;\n return preferredFormat ? str.replace(FONT_SRC_RE, (match) => {\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_RE.exec(match) || [];\n if (!format)\n return \"\";\n if (format === preferredFormat)\n return `src: ${src};`;\n }\n }) : str;\n}\nfunction unwrapCssLayers(rules, out = []) {\n for (const rule of Array.from(rules)) {\n if (isLayerBlockRule(rule)) {\n out.push(...unwrapCssLayers(rule.cssRules));\n } else if (\"cssRules\" in rule) {\n unwrapCssLayers(rule.cssRules, out);\n } else {\n out.push(rule);\n }\n }\n return out;\n}\n\nconst SVG_EXTERNAL_RESOURCE_REGEX = /\\bx?link:?href\\s*=\\s*[\"'](?!data:)[^\"']+[\"']/i;\nfunction svgHasExternalResources(svg) {\n return SVG_EXTERNAL_RESOURCE_REGEX.test(svg.innerHTML);\n}\nasync function domToForeignObjectSvg(node, options) {\n const context = await orCreateContext(node, options);\n if (isElementNode(context.node) && isSVGElementNode(context.node) && !svgHasExternalResources(context.node))\n return context.node;\n const {\n ownerDocument,\n log,\n tasks,\n svgStyleElement,\n svgDefsElement,\n svgStyles,\n font,\n progress,\n autoDestruct,\n onCloneNode,\n onEmbedNode,\n onCreateForeignObjectSvg\n } = context;\n log.time(\"clone node\");\n const clone = await cloneNode(context.node, context, true);\n if (svgStyleElement && ownerDocument) {\n let allCssText = \"\";\n svgStyles.forEach((klasses, cssText) => {\n allCssText += `${klasses.join(\",\\n\")} {\n ${cssText}\n}\n`;\n });\n svgStyleElement.appendChild(ownerDocument.createTextNode(allCssText));\n }\n log.timeEnd(\"clone node\");\n await onCloneNode?.(clone);\n if (font !== false && isElementNode(clone)) {\n log.time(\"embed web font\");\n await embedWebFont(clone, context);\n log.timeEnd(\"embed web font\");\n }\n log.time(\"embed node\");\n embedNode(clone, context);\n const count = tasks.length;\n let current = 0;\n const runTask = async () => {\n while (true) {\n const task = tasks.pop();\n if (!task)\n break;\n try {\n await task;\n } catch (error) {\n context.log.warn(\"Failed to run task\", error);\n }\n progress?.(++current, count);\n }\n };\n progress?.(current, count);\n await Promise.all([...Array.from({ length: 4 })].map(runTask));\n log.timeEnd(\"embed node\");\n await onEmbedNode?.(clone);\n const svg = createForeignObjectSvg(clone, context);\n svgDefsElement && svg.insertBefore(svgDefsElement, svg.children[0]);\n svgStyleElement && svg.insertBefore(svgStyleElement, svg.children[0]);\n autoDestruct && destroyContext(context);\n await onCreateForeignObjectSvg?.(svg);\n return svg;\n}\nfunction createForeignObjectSvg(clone, context) {\n const { width, height } = context;\n const svg = createSvg(width, height, clone.ownerDocument);\n const foreignObject = svg.ownerDocument.createElementNS(svg.namespaceURI, \"foreignObject\");\n foreignObject.setAttributeNS(null, \"x\", \"0%\");\n foreignObject.setAttributeNS(null, \"y\", \"0%\");\n foreignObject.setAttributeNS(null, \"width\", \"100%\");\n foreignObject.setAttributeNS(null, \"height\", \"100%\");\n foreignObject.append(clone);\n svg.appendChild(foreignObject);\n return svg;\n}\n\nasync function domToCanvas(node, options) {\n const context = await orCreateContext(node, options);\n const svg = await domToForeignObjectSvg(context);\n const dataUrl = svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n if (!context.autoDestruct) {\n context.svgStyleElement = createStyleElement(context.ownerDocument);\n context.svgDefsElement = context.ownerDocument?.createElementNS(XMLNS, \"defs\");\n context.svgStyles.clear();\n }\n const image = createImage(dataUrl, svg.ownerDocument);\n return await imageToCanvas(image, context);\n}\n\nasync function domToBlob(node, options) {\n const context = await orCreateContext(node, options);\n const { log, type, quality, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to blob\");\n const blob = await canvasToBlob(canvas, type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi) {\n const arrayBuffer = await blobToArrayBuffer(blob.slice(0, 33));\n let uint8Array = new Uint8Array(arrayBuffer);\n if (type === \"image/png\") {\n uint8Array = changePngDpi(uint8Array, dpi);\n } else if (type === \"image/jpeg\") {\n uint8Array = changeJpegDpi(uint8Array, dpi);\n }\n log.timeEnd(\"canvas to blob\");\n return new Blob([uint8Array, blob.slice(33)], { type });\n }\n log.timeEnd(\"canvas to blob\");\n return blob;\n}\n\nasync function domToDataUrl(node, options) {\n const context = await orCreateContext(node, options);\n const { log, quality, type, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to data url\");\n let dataUrl = canvas.toDataURL(type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi && SUPPORT_ATOB && SUPPORT_BTOA) {\n const [format, body] = dataUrl.split(\",\");\n let headerLength = 0;\n let overwritepHYs = false;\n if (type === \"image/png\") {\n const b64Index = detectPhysChunkFromDataUrl(body);\n if (b64Index >= 0) {\n headerLength = Math.ceil((b64Index + 28) / 3) * 4;\n overwritepHYs = true;\n } else {\n headerLength = 33 / 3 * 4;\n }\n } else if (type === \"image/jpeg\") {\n headerLength = 18 / 3 * 4;\n }\n const stringHeader = body.substring(0, headerLength);\n const restOfData = body.substring(headerLength);\n const headerBytes = window.atob(stringHeader);\n const uint8Array = new Uint8Array(headerBytes.length);\n for (let i = 0; i < uint8Array.length; i++) {\n uint8Array[i] = headerBytes.charCodeAt(i);\n }\n const finalArray = type === \"image/png\" ? changePngDpi(uint8Array, dpi, overwritepHYs) : changeJpegDpi(uint8Array, dpi);\n const base64Header = window.btoa(String.fromCharCode(...finalArray));\n dataUrl = [format, \",\", base64Header, restOfData].join(\"\");\n }\n log.timeEnd(\"canvas to data url\");\n return dataUrl;\n}\n\nasync function domToSvg(node, options) {\n const context = await orCreateContext(node, options);\n const { width, height, ownerDocument } = context;\n const dataUrl = await domToDataUrl(context);\n const svg = createSvg(width, height, ownerDocument);\n const svgImage = svg.ownerDocument.createElementNS(svg.namespaceURI, \"image\");\n svgImage.setAttributeNS(null, \"href\", dataUrl);\n svgImage.setAttributeNS(null, \"height\", \"100%\");\n svgImage.setAttributeNS(null, \"width\", \"100%\");\n svg.appendChild(svgImage);\n return svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n}\n\nasync function domToImage(node, options) {\n const context = await orCreateContext(node, options);\n const { ownerDocument, width, height, scale, type } = context;\n const url = type === \"image/svg+xml\" ? await domToSvg(context) : await domToDataUrl(context);\n const image = createImage(url, ownerDocument);\n image.width = Math.floor(width * scale);\n image.height = Math.floor(height * scale);\n image.style.width = `${width}px`;\n image.style.height = `${height}px`;\n return image;\n}\n\nasync function domToJpeg(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/jpeg\" })\n );\n}\n\nasync function domToPixel(node, options) {\n const context = await orCreateContext(node, options);\n const canvas = await domToCanvas(context);\n return canvas.getContext(\"2d\").getImageData(0, 0, canvas.width, canvas.height).data;\n}\n\nasync function domToPng(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/png\" })\n );\n}\n\nasync function domToWebp(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/webp\" })\n );\n}\n\nexport { createContext, destroyContext, domToBlob, domToCanvas, domToDataUrl, domToForeignObjectSvg, domToImage, domToJpeg, domToPixel, domToPng, domToSvg, domToWebp, loadMedia, waitUntilLoad };\n","export interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport type CapturePhase =\n | 'preparing'\n | 'rendering'\n | 'cropping'\n | 'exporting'\n | 'done';\n\nexport interface CaptureProgress {\n phase: CapturePhase;\n progress: number; // 0-100\n message: string;\n}\n\nexport interface CaptureOptions {\n /** Output pixel multiplier. Defaults to a device-aware value, capped by max canvas size. */\n scale?: number;\n /** Background fill for the exported PNG. Default '#ffffff'. */\n backgroundColor?: string;\n /** Hard timeout so a capture can never hang the UI. Default 20000ms. */\n timeoutMs?: number;\n /** CSS selectors to exclude from the capture (the widget's own UI is always excluded). */\n excludeSelectors?: string[];\n onProgress?: (progress: CaptureProgress) => void;\n}\n\n/** Attribute used to tag the widget's own DOM so it never appears in screenshots. */\nexport const REPORT_UI_ATTR = 'data-hsa-report-ui';\n","export interface CaptureCapabilities {\n /** Largest canvas dimension (px) the device can reliably allocate. */\n maxCanvasSize: number;\n /** Recommended pixel multiplier before clamping to maxCanvasSize. */\n recommendedScale: number;\n}\n\nfunction ua(): string {\n return (typeof navigator !== 'undefined' ? navigator.userAgent : '').toLowerCase();\n}\n\nexport function isIOSSafari(): boolean {\n const u = ua();\n const isIOS = /iphone|ipad|ipod/.test(u) ||\n // iPadOS 13+ reports as desktop Safari with touch support\n (/macintosh/.test(u) && typeof document !== 'undefined' && 'ontouchend' in document);\n const isSafari = /safari/.test(u) && !/chrome|crios|crmo|fxios|edgios/.test(u);\n return isIOS && isSafari;\n}\n\nexport function getCaptureCapabilities(): CaptureCapabilities {\n const u = ua();\n const isMobile = /iphone|ipod|android.*mobile/.test(u);\n const isTablet = /ipad|android(?!.*mobile)/.test(u);\n const deviceMemory = (navigator as { deviceMemory?: number }).deviceMemory ?? 4;\n const isLowMemory = deviceMemory < 4;\n\n if (isMobile) {\n return { maxCanvasSize: 4096, recommendedScale: isLowMemory ? 1 : 1.5 };\n }\n if (isTablet) {\n return { maxCanvasSize: 8192, recommendedScale: 2 };\n }\n return { maxCanvasSize: 16384, recommendedScale: 2 };\n}\n\n/**\n * Clamp a desired scale so neither dimension of the captured element exceeds\n * the device's max canvas size. Keeps capture from silently failing on big pages.\n */\nexport function clampScale(\n desiredScale: number,\n contentWidth: number,\n contentHeight: number,\n maxCanvasSize: number\n): number {\n const maxByWidth = contentWidth > 0 ? maxCanvasSize / contentWidth : desiredScale;\n const maxByHeight = contentHeight > 0 ? maxCanvasSize / contentHeight : desiredScale;\n const scale = Math.min(desiredScale, maxByWidth, maxByHeight);\n // Never go below 0.5 — a tiny screenshot is worse than a slightly-too-big one.\n return Math.max(0.5, scale);\n}\n","interface MathJaxLike {\n startup?: { promise?: Promise<unknown> };\n typesetPromise?: () => Promise<unknown>;\n}\n\nfunction getMathJax(): MathJaxLike | undefined {\n return (window as unknown as { MathJax?: MathJaxLike }).MathJax;\n}\n\n/** Wait until MathJax has finished its initial typeset so formulas have laid out. */\nexport async function waitForMathJax(): Promise<void> {\n const MJ = getMathJax();\n if (!MJ) return;\n try {\n if (MJ.startup?.promise) {\n await MJ.startup.promise;\n }\n } catch {\n /* ignore — capture should proceed even if MathJax errored */\n }\n}\n\n/** Two animation frames: let layout/paint settle before we snapshot. */\nfunction nextFrames(): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => requestAnimationFrame(() => resolve()));\n });\n}\n\n/** Resolve once the page is ready for a faithful snapshot. */\nexport async function ensureReadyForCapture(): Promise<void> {\n await waitForMathJax();\n await nextFrames();\n}\n","import { REPORT_UI_ATTR } from './types';\n\n/**\n * The blank-first-capture bug: MathJax CHTML glyphs are drawn with MathJax web\n * fonts loaded from a (cross-origin) CDN. snapdom inlines those fonts into its\n * snapshot only after an async fetch, so the first capture is blank and only a\n * later one is complete.\n *\n * Fix: deterministically fetch the MathJax font files ONCE and inject them back\n * into the document as @font-face rules whose src is a data: URI. After that,\n * snapdom finds already-inlined fonts (no fetch needed) and the very first\n * capture renders every formula. Display is unchanged — these rules only add a\n * data-URI source for the same font families MathJax already uses.\n */\n\ninterface FontFaceInfo {\n family: string;\n weight: string;\n style: string;\n url: string;\n format?: string;\n}\n\nconst STYLE_ID = 'hsa-report-mathjax-fonts';\n\nfunction bufferToBase64(buf: ArrayBuffer): string {\n let binary = '';\n const bytes = new Uint8Array(buf);\n const chunk = 0x8000;\n for (let i = 0; i < bytes.length; i += chunk) {\n binary += String.fromCharCode.apply(\n null,\n bytes.subarray(i, i + chunk) as unknown as number[]\n );\n }\n return btoa(binary);\n}\n\n/** Collect @font-face rules that belong to MathJax from readable stylesheets. */\nfunction collectMathJaxFontFaces(): FontFaceInfo[] {\n const faces: FontFaceInfo[] = [];\n for (const sheet of Array.from(document.styleSheets)) {\n let rules: CSSRuleList | null = null;\n try {\n rules = sheet.cssRules;\n } catch {\n continue; // cross-origin stylesheet — not readable\n }\n if (!rules) continue;\n for (const rule of Array.from(rules)) {\n if (typeof CSSFontFaceRule !== 'undefined' && rule instanceof CSSFontFaceRule) {\n const family = rule.style\n .getPropertyValue('font-family')\n .replace(/[\"']/g, '')\n .trim();\n if (!/MJX|MathJax/i.test(family)) continue;\n const srcText = rule.style.getPropertyValue('src');\n const m = srcText.match(\n /url\\(\\s*[\"']?([^\"')]+)[\"']?\\s*\\)(?:\\s*format\\(\\s*[\"']?([^\"')]+)[\"']?\\s*\\))?/\n );\n if (!m) continue;\n let url: string;\n try {\n url = new URL(m[1], sheet.href || window.location.href).href;\n } catch {\n continue;\n }\n faces.push({\n family,\n weight: rule.style.getPropertyValue('font-weight') || 'normal',\n style: rule.style.getPropertyValue('font-style') || 'normal',\n url,\n format: m[2],\n });\n }\n }\n }\n return faces;\n}\n\nlet inlinePromise: Promise<void> | null = null;\n\n/**\n * Fetch MathJax fonts and inject them as data-URI @font-face. Idempotent and\n * cached. No-op if there are no MathJax CHTML font faces (e.g. SVG output).\n */\nexport function inlineMathJaxFonts(): Promise<void> {\n if (inlinePromise) return inlinePromise;\n inlinePromise = (async () => {\n if (document.getElementById(STYLE_ID)) return;\n const faces = collectMathJaxFontFaces();\n if (faces.length === 0) return; // SVG output or no math → nothing to do\n\n // De-duplicate by URL (many faces can share files).\n const byUrl = new Map<string, FontFaceInfo[]>();\n for (const f of faces) {\n const list = byUrl.get(f.url) ?? [];\n list.push(f);\n byUrl.set(f.url, list);\n }\n\n const cssBlocks = await Promise.all(\n Array.from(byUrl.entries()).map(async ([url, group]) => {\n try {\n const res = await fetch(url, { mode: 'cors' });\n if (!res.ok) return '';\n const buf = await res.arrayBuffer();\n const b64 = bufferToBase64(buf);\n const fmt = group[0].format || (url.includes('woff2') ? 'woff2' : 'woff');\n const mime = fmt === 'woff2' ? 'font/woff2' : 'font/woff';\n const dataUri = `url(data:${mime};base64,${b64}) format(\"${fmt}\")`;\n return group\n .map(\n (f) =>\n `@font-face{font-family:\"${f.family}\";font-style:${f.style};font-weight:${f.weight};font-display:block;src:${dataUri};}`\n )\n .join('');\n } catch {\n return '';\n }\n })\n );\n\n const css = cssBlocks.join('');\n if (!css) return;\n\n const style = document.createElement('style');\n style.id = STYLE_ID;\n // NOT marked with REPORT_UI_ATTR on purpose: the capture must keep these\n // @font-face rules. (We only exclude visible widget UI via that attr.)\n void REPORT_UI_ATTR;\n style.textContent = css;\n document.head.appendChild(style);\n\n // Make sure the browser has parsed/loaded them before we capture.\n try {\n await (document as Document & { fonts?: { ready?: Promise<unknown> } }).fonts?.ready;\n } catch {\n /* ignore */\n }\n })();\n return inlinePromise;\n}\n","import { snapdom } from '@zumer/snapdom';\nimport { domToPng } from 'modern-screenshot';\nimport type { Rect, CaptureOptions, CaptureProgress } from './types';\nimport { REPORT_UI_ATTR } from './types';\nimport { getCaptureCapabilities, clampScale } from './device-detection';\nimport { ensureReadyForCapture } from './fonts';\nimport { inlineMathJaxFonts } from './mathjax-fonts';\n\nexport type { Rect, CaptureProgress, CaptureOptions } from './types';\n\nconst DEFAULT_TIMEOUT = 20000;\nconst DEFAULT_BG = '#ffffff';\n\n/** Region to keep, expressed in document (CSS) coordinates. */\ninterface Region {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\nfunction scrollOffset() {\n return {\n x: window.scrollX || window.pageXOffset || 0,\n y: window.scrollY || window.pageYOffset || 0,\n };\n}\n\nfunction viewportSize() {\n const w =\n window.visualViewport?.width ||\n document.documentElement.clientWidth ||\n window.innerWidth;\n const h =\n window.visualViewport?.height ||\n document.documentElement.clientHeight ||\n window.innerHeight;\n return { w, h };\n}\n\n/** Target rectangle in viewport (client) coordinates — used to prune off-screen nodes. */\ninterface ViewportRect {\n top: number;\n bottom: number;\n left: number;\n right: number;\n}\n\nfunction regionToViewportRect(cropRect?: Rect): ViewportRect {\n if (cropRect) {\n return {\n top: cropRect.y,\n bottom: cropRect.y + cropRect.height,\n left: cropRect.x,\n right: cropRect.x + cropRect.width,\n };\n }\n const vp = viewportSize();\n return { top: 0, bottom: vp.h, left: 0, right: vp.w };\n}\n\n/**\n * The key to speed on formula-heavy pages: prune any element whose box lies fully\n * outside the target region. snapdom/modern-screenshot skip a filtered node's whole\n * subtree, so cloning ~900 nodes instead of ~26,000 turns a 27s capture into ~1.5s.\n * Also drops the widget's own UI (selectors). getBoundingClientRect is cheap relative\n * to the per-node clone + getComputedStyle cost it avoids.\n */\nfunction makePruneFilter(keep: ViewportRect, selectors: string[], buffer = 150) {\n return (node: Node): boolean => {\n if (!(node instanceof Element)) return true;\n for (const sel of selectors) {\n if (node.matches?.(sel)) return false;\n }\n const r = node.getBoundingClientRect();\n // Keep zero-size nodes (often layout wrappers / not yet measured).\n if (r.width === 0 && r.height === 0) return true;\n if (r.bottom < keep.top - buffer) return false;\n if (r.top > keep.bottom + buffer) return false;\n if (r.right < keep.left - buffer) return false;\n if (r.left > keep.right + buffer) return false;\n return true;\n };\n}\n\n/** A crop rect is in viewport coords; convert it (or the whole viewport) to document coords. */\nfunction resolveRegion(cropRect?: Rect): Region {\n const scroll = scrollOffset();\n if (cropRect) {\n return {\n x: scroll.x + cropRect.x,\n y: scroll.y + cropRect.y,\n w: cropRect.width,\n h: cropRect.height,\n };\n }\n const vp = viewportSize();\n return { x: scroll.x, y: scroll.y, w: vp.w, h: vp.h };\n}\n\nfunction excludeSelectors(extra?: string[]): string[] {\n return [`[${REPORT_UI_ATTR}]`, ...(extra ?? [])];\n}\n\nfunction withTimeout<T>(promise: Promise<T>, ms: number, label: string): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const timer = setTimeout(\n () => reject(new Error(`${label} timed out after ${ms}ms`)),\n ms\n );\n promise.then(\n (value) => {\n clearTimeout(timer);\n resolve(value);\n },\n (err) => {\n clearTimeout(timer);\n reject(err);\n }\n );\n });\n}\n\nfunction isBlankDataUrl(dataUrl: string | null): boolean {\n return !dataUrl || dataUrl.length < 2000;\n}\n\n/**\n * Crop a region (document CSS coords) out of a full-page canvas.\n * Scale factors are derived from the real canvas size vs the captured element's\n * scroll size, so we never have to guess the renderer's internal multiplier.\n */\nfunction cropFromCanvas(\n source: HTMLCanvasElement,\n root: HTMLElement,\n region: Region,\n backgroundColor: string\n): string | null {\n const scroll = scrollOffset();\n const rootRect = root.getBoundingClientRect();\n const rootDocLeft = rootRect.left + scroll.x;\n const rootDocTop = rootRect.top + scroll.y;\n\n const contentWidth = root.scrollWidth || rootRect.width || 1;\n const contentHeight = root.scrollHeight || rootRect.height || 1;\n const scaleX = source.width / contentWidth;\n const scaleY = source.height / contentHeight;\n\n // Region relative to the captured element, in source-canvas pixels.\n const srcX = (region.x - rootDocLeft) * scaleX;\n const srcY = (region.y - rootDocTop) * scaleY;\n const srcW = region.w * scaleX;\n const srcH = region.h * scaleY;\n\n const out = document.createElement('canvas');\n out.width = Math.max(1, Math.round(srcW));\n out.height = Math.max(1, Math.round(srcH));\n const ctx = out.getContext('2d', { alpha: false });\n if (!ctx) return null;\n\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(0, 0, out.width, out.height);\n ctx.drawImage(source, srcX, srcY, srcW, srcH, 0, 0, out.width, out.height);\n\n try {\n return out.toDataURL('image/png');\n } catch (err) {\n console.warn('[report-widget] canvas export failed (possibly tainted):', err);\n return null;\n } finally {\n out.width = 0;\n out.height = 0;\n }\n}\n\n// Deterministically inline MathJax CHTML fonts as data-URI @font-face so any\n// capture renders formulas immediately (no async font-fetch race). Idempotent;\n// runs when the report form OPENS (via prewarmCapture), overlapping with the\n// user typing, so the click-to-capture is fast. See mathjax-fonts.ts.\nlet warmPromise: Promise<void> | null = null;\nfunction warmOnce(): Promise<void> {\n if (warmPromise) return warmPromise;\n warmPromise = (async () => {\n try {\n await ensureReadyForCapture();\n await inlineMathJaxFonts();\n\n // snapdom needs one throwaway toCanvas before it renders CHTML glyphs\n // (even with fonts inlined). It only needs to exercise the CHTML/font path\n // ONCE — not the whole page — so warm with a single small formula element.\n // This is far cheaper than a full-body pass (which on a tall page hits the\n // canvas limit and downscales), keeping form-open light.\n const chtml = Array.from(document.querySelectorAll('mjx-container')).find(\n (c) => !c.querySelector('svg')\n ) as HTMLElement | undefined;\n if (!chtml) return; // SVG math or no math → no priming needed\n try {\n await snapdom.toCanvas(chtml, { embedFonts: true, dpr: 1, scale: 1 });\n } catch {\n /* warm errors are non-fatal */\n }\n } catch {\n // Non-fatal: the real capture still runs (may fall back to embedFonts).\n }\n })();\n return warmPromise;\n}\n\n/** Prepare fonts for capture (call when the report form opens). */\nexport function prewarmCapture(): Promise<void> {\n return warmOnce();\n}\n\n/** Tier 1: snapdom clones only the on-screen subtree (fonts embedded), then we crop. */\nasync function captureWithSnapdom(\n region: Region,\n keepRect: ViewportRect,\n scale: number,\n backgroundColor: string,\n selectors: string[]\n): Promise<string | null> {\n const root = document.body;\n const canvas = await snapdom.toCanvas(root, {\n embedFonts: true,\n dpr: 1,\n scale,\n backgroundColor,\n filter: makePruneFilter(keepRect, selectors),\n });\n return cropFromCanvas(canvas, root, region, backgroundColor);\n}\n\n/** Tier 2: modern-screenshot renders the region directly via an offset transform. */\nasync function captureWithModernScreenshot(\n region: Region,\n scale: number,\n backgroundColor: string,\n selectors: string[]\n): Promise<string | null> {\n const root = document.body;\n const rect = root.getBoundingClientRect();\n // Offset of the region within the captured root, in the root's own coords.\n const offsetX = region.x - (rect.left + (window.scrollX || 0));\n const offsetY = region.y - (rect.top + (window.scrollY || 0));\n // modern-screenshot already clips to width/height, so we must NOT prune\n // off-screen nodes (that drops content that ends up inside the region after\n // the transform). Only exclude the widget's own UI.\n const uiFilter = (node: Node): boolean => {\n if (!(node instanceof Element)) return true;\n for (const sel of selectors) {\n if (node.matches?.(sel)) return false;\n }\n return true;\n };\n return domToPng(root, {\n width: region.w,\n height: region.h,\n scale,\n backgroundColor,\n filter: uiFilter,\n style: {\n transform: `translate(${-offsetX}px, ${-offsetY}px)`,\n transformOrigin: 'top left',\n },\n });\n}\n\n/**\n * Capture a screenshot of the current viewport, or of `cropRect` (viewport coords).\n *\n * Signature is drop-in compatible with hocmai-feedback-widget's captureScreenshot.\n * Strategy: snapdom (fonts embedded → MathJax CHTML renders correctly, single DOM\n * clone → no O(N) layout thrash) with a modern-screenshot fallback. Always bounded\n * by a timeout so it can never hang the UI.\n */\nexport async function captureScreenshot(\n cropRect?: Rect,\n onProgress?: (progress: CaptureProgress) => void\n): Promise<string | null> {\n const options: CaptureOptions = {};\n return captureScreenshotWithOptions(cropRect, { ...options, onProgress });\n}\n\nexport async function captureScreenshotWithOptions(\n cropRect: Rect | undefined,\n options: CaptureOptions\n): Promise<string | null> {\n const {\n backgroundColor = DEFAULT_BG,\n timeoutMs = DEFAULT_TIMEOUT,\n excludeSelectors: extraSelectors,\n onProgress,\n } = options;\n\n const report = (progress: CaptureProgress) => onProgress?.(progress);\n const selectors = excludeSelectors(extraSelectors);\n\n report({ phase: 'preparing', progress: 10, message: 'Đang chuẩn bị...' });\n await ensureReadyForCapture();\n\n const region = resolveRegion(cropRect);\n const keepRect = regionToViewportRect(cropRect);\n const caps = getCaptureCapabilities();\n const root = document.body;\n const desired = options.scale ?? caps.recommendedScale;\n // Keep ~5% headroom below the hard canvas limit: snapdom measures the element\n // slightly larger than scrollHeight, and hitting the limit triggers a slow\n // internal downscale. Staying under it avoids that and keeps the crop mapping\n // linear.\n const safeMaxCanvas = Math.floor(caps.maxCanvasSize * 0.95);\n const scale = clampScale(\n desired,\n root.scrollWidth || region.w,\n root.scrollHeight || region.h,\n safeMaxCanvas\n );\n\n // Font inlining (idempotent; normally already done from open-time prewarm so\n // this is instant) — makes any capture render formulas with no font race.\n await warmOnce();\n\n // Tier 1: snapdom + off-screen prune (fast — clones only viewport nodes — and\n // renders CHTML reliably). The warm pass on form-open means this is a single\n // fast pass at click time.\n try {\n report({ phase: 'rendering', progress: 50, message: 'Đang chụp...' });\n const result = await withTimeout(\n captureWithSnapdom(region, keepRect, scale, backgroundColor, selectors),\n timeoutMs,\n 'snapdom capture'\n );\n if (!isBlankDataUrl(result)) {\n report({ phase: 'done', progress: 100, message: 'Hoàn tất' });\n return result;\n }\n console.warn('[report-widget] snapdom returned blank result, falling back');\n } catch (err) {\n console.warn('[report-widget] snapdom capture failed, falling back:', err);\n }\n\n // Tier 2: modern-screenshot (no off-screen prune) — viewport-direct, reliable\n // fallback if snapdom returns blank.\n const regionScale = clampScale(desired, region.w, region.h, caps.maxCanvasSize);\n try {\n report({ phase: 'rendering', progress: 80, message: 'Đang chụp (dự phòng)...' });\n const result = await withTimeout(\n captureWithModernScreenshot(region, regionScale, backgroundColor, selectors),\n timeoutMs,\n 'modern-screenshot capture'\n );\n if (!isBlankDataUrl(result)) {\n report({ phase: 'done', progress: 100, message: 'Hoàn tất' });\n return result;\n }\n } catch (err) {\n console.error('[report-widget] modern-screenshot capture failed:', err);\n }\n\n console.error('[report-widget] all capture methods failed');\n return null;\n}\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M6 2v14a2 2 0 0 0 2 2h14\", key: \"ron5a4\" }],\n [\"path\", { d: \"M18 22V8a2 2 0 0 0-2-2H2\", key: \"7s9ehn\" }]\n];\nconst Crop = createLucideIcon(\"crop\", __iconNode);\n\nexport { __iconNode, Crop as default };\n//# sourceMappingURL=crop.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"9\", y2: \"9\", key: \"4lhtct\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"15\", y2: \"15\", key: \"vyu0kd\" }],\n [\"line\", { x1: \"10\", x2: \"8\", y1: \"3\", y2: \"21\", key: \"1ggp8o\" }],\n [\"line\", { x1: \"16\", x2: \"14\", y1: \"3\", y2: \"21\", key: \"weycgp\" }]\n];\nconst Hash = createLucideIcon(\"hash\", __iconNode);\n\nexport { __iconNode, Hash as default };\n//# sourceMappingURL=hash.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }],\n [\"path\", { d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\", key: \"1xmnt7\" }]\n];\nconst Image = createLucideIcon(\"image\", __iconNode);\n\nexport { __iconNode, Image as default };\n//# sourceMappingURL=image.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z\",\n key: \"18887p\"\n }\n ],\n [\"path\", { d: \"M12 8v6\", key: \"1ib9pf\" }],\n [\"path\", { d: \"M9 11h6\", key: \"1fldmi\" }]\n];\nconst MessageSquarePlus = createLucideIcon(\"message-square-plus\", __iconNode);\n\nexport { __iconNode, MessageSquarePlus as default };\n//# sourceMappingURL=message-square-plus.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"20\", height: \"14\", x: \"2\", y: \"3\", rx: \"2\", key: \"48i651\" }],\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"21\", y2: \"21\", key: \"1svkeh\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"17\", y2: \"21\", key: \"vw1qmm\" }]\n];\nconst Monitor = createLucideIcon(\"monitor\", __iconNode);\n\nexport { __iconNode, Monitor as default };\n//# sourceMappingURL=monitor.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M21 5H3\", key: \"1fi0y6\" }],\n [\"path\", { d: \"M15 12H3\", key: \"6jk70r\" }],\n [\"path\", { d: \"M17 19H3\", key: \"z6ezky\" }]\n];\nconst TextAlignStart = createLucideIcon(\"text-align-start\", __iconNode);\n\nexport { __iconNode, TextAlignStart as default };\n//# sourceMappingURL=text-align-start.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import React, { useState, useEffect } from 'react';\nimport { REPORT_UI_ATTR } from '../capture/types';\n\nexport interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\ninterface CropOverlayProps {\n onConfirm: (rect: Rect) => void;\n onCancel: () => void;\n}\n\nconst CropOverlay: React.FC<CropOverlayProps> = ({ onConfirm, onCancel }) => {\n const [isDragging, setIsDragging] = useState(false);\n const [startPos, setStartPos] = useState({ x: 0, y: 0 });\n const [currentPos, setCurrentPos] = useState({ x: 0, y: 0 });\n const [preventScroll, setPreventScroll] = useState(false);\n\n useEffect(() => {\n if (preventScroll) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n return () => {\n document.body.style.overflow = '';\n };\n }, [preventScroll]);\n\n const handleMouseDown = (e: React.MouseEvent) => {\n setIsDragging(true);\n setStartPos({ x: e.clientX, y: e.clientY });\n setCurrentPos({ x: e.clientX, y: e.clientY });\n };\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (isDragging) {\n setCurrentPos({ x: e.clientX, y: e.clientY });\n }\n };\n\n const handleMouseUp = () => {\n finalizeSelection();\n };\n\n const handleTouchStart = (e: React.TouchEvent) => {\n if (e.touches.length === 1) {\n setIsDragging(true);\n const touch = e.touches[0];\n setStartPos({ x: touch.clientX, y: touch.clientY });\n setCurrentPos({ x: touch.clientX, y: touch.clientY });\n setPreventScroll(true);\n }\n };\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (isDragging && e.touches.length === 1) {\n const touch = e.touches[0];\n setCurrentPos({ x: touch.clientX, y: touch.clientY });\n }\n };\n\n const handleTouchEnd = () => {\n finalizeSelection();\n setPreventScroll(false);\n };\n\n const finalizeSelection = () => {\n if (isDragging) {\n setIsDragging(false);\n const x = Math.min(startPos.x, currentPos.x);\n const y = Math.min(startPos.y, currentPos.y);\n const width = Math.abs(currentPos.x - startPos.x);\n const height = Math.abs(currentPos.y - startPos.y);\n\n // Only confirm meaningful selections (avoid accidental clicks).\n if (width > 10 && height > 10) {\n onConfirm({ x, y, width, height });\n }\n }\n };\n\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onCancel();\n };\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [onCancel]);\n\n return (\n <div\n {...{ [REPORT_UI_ATTR]: 'true' }}\n style={{\n position: 'fixed',\n inset: 0,\n zIndex: 99999,\n cursor: 'crosshair',\n userSelect: 'none',\n }}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n >\n <div\n style={{\n position: 'absolute',\n inset: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n }}\n />\n\n {!isDragging && (\n <div\n style={{\n position: 'absolute',\n top: '20px',\n left: '50%',\n transform: 'translateX(-50%)',\n background: 'rgba(0,0,0,0.8)',\n color: 'white',\n padding: '8px 16px',\n borderRadius: '20px',\n pointerEvents: 'none',\n fontSize: '14px',\n }}\n >\n Kéo chuột hoặc chạm để chọn vùng chụp ảnh (ESC để hủy)\n </div>\n )}\n\n {isDragging && (\n <div\n style={{\n position: 'absolute',\n left: Math.min(startPos.x, currentPos.x),\n top: Math.min(startPos.y, currentPos.y),\n width: Math.abs(currentPos.x - startPos.x),\n height: Math.abs(currentPos.y - startPos.y),\n border: '2px solid #fff',\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n boxShadow: '0 0 0 9999px rgba(0, 0, 0, 0.5)',\n }}\n />\n )}\n </div>\n );\n};\n\nexport default CropOverlay;\n","import React, { useState } from 'react';\nimport { getDeviceInfo } from '../utils/device';\nimport { captureScreenshot, prewarmCapture, type Rect } from '../capture';\nimport { MessageSquarePlus, Crop, Monitor, X, Hash, AlignLeft, Loader2, Image as ImageIcon } from 'lucide-react';\nimport CropOverlay from './CropOverlay';\n// Type-only import — erased at build time, so the core bundle has zero CKEditor\n// coupling and apps build without the CKEditor deps. The editor itself is shipped\n// at the subpath `hocmai-feedback-widget/ckeditor` and injected via descriptionEditor.\nimport type { CkEditorProps } from './CkEditor';\n\nexport interface FeedbackData {\n idQuestion: string | number;\n idChildQuestion?: string | number;\n errorDescription: string;\n errorType: string;\n listImage: string[];\n deviceInfo: ReturnType<typeof getDeviceInfo>;\n contextData?: any;\n}\n\nexport interface FeedbackProps {\n questionId: string | number;\n contextData?: Record<string, any>;\n /** Submit handler. Optional — may be provided per call via openFeedback or at the Provider. */\n onSubmit?: (data: FeedbackData) => Promise<void> | void;\n themeColor?: string;\n triggerComponent?: React.ReactNode;\n isOpen?: boolean;\n onOpen?: () => void;\n onClose?: () => void;\n isEnableCaptureFull?: boolean;\n isEnableCaptureElement?: boolean;\n /** Endpoint that accepts { base64 } and returns { file_url }. */\n uploadUrl?: string;\n /** Use the rich-text editor for the description instead of a plain textarea. */\n isCkEditor?: boolean;\n /**\n * Rich-text editor component for the description (used when isCkEditor is true).\n * Pass the ready-made editor from `hocmai-feedback-widget/ckeditor`, or your own.\n * Kept as a prop so the core bundle has no CKEditor dependency.\n */\n descriptionEditor?: React.ComponentType<CkEditorProps>;\n}\n\nconst DEFAULT_UPLOAD_URL = 'https://lcms.icanwork.vn/api/upload-to-s3/upload-image-error-to-s3';\n\nconst FeedbackWidget: React.FC<FeedbackProps> = ({\n questionId,\n contextData,\n onSubmit,\n themeColor = '#3b82f6',\n triggerComponent,\n isOpen: externalIsOpen,\n onOpen,\n onClose,\n isEnableCaptureFull = true,\n isEnableCaptureElement = true,\n uploadUrl = DEFAULT_UPLOAD_URL,\n isCkEditor = false,\n descriptionEditor: DescriptionEditor,\n}) => {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const [description, setDescription] = useState('');\n const [inputQuestionId, setInputQuestionId] = useState<string | number>(questionId);\n const [inputQuestionIdChild, setInputQuestionIdChild] = useState<string | number>(contextData?.questionIdChild || '');\n const [screenshots, setScreenshots] = useState<string[]>([]);\n const [zoomedImage, setZoomedImage] = useState<string | null>(null);\n const [isCapturing, setIsCapturing] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isSelecting, setIsSelecting] = useState(false);\n const [focusedField, setFocusedField] = useState<string | null>(null);\n const [errors, setErrors] = useState<{ questionId?: string; questionIdChild?: string; description?: string }>({});\n const [errorType, setErrorType] = useState('incorrect_content');\n\n const [isTempHidden, setIsTempHidden] = useState(false);\n const fileInputRef = React.useRef<HTMLInputElement>(null);\n\n const isOpen = externalIsOpen !== undefined ? externalIsOpen : internalIsOpen;\n const showWidget = isOpen && !isTempHidden;\n\n // Reset state when opening\n React.useEffect(() => {\n if (isOpen) {\n setErrors({});\n setInputQuestionId(questionId);\n setInputQuestionIdChild(contextData?.questionIdChild || '');\n setScreenshots([]);\n setDescription('');\n setErrorType('incorrect_content');\n }\n }, [isOpen, questionId, contextData]);\n\n // Warm the snapshot font/image cache while the user fills the form so the\n // first capture isn't delayed by inlining MathJax web fonts.\n React.useEffect(() => {\n if (isOpen) {\n prewarmCapture().catch(() => { });\n }\n }, [isOpen]);\n\n const handleSelectImage = () => {\n if (screenshots.length >= 3) {\n alert('Bạn chỉ có thể chụp tối đa 3 ảnh.');\n return;\n }\n fileInputRef.current?.click();\n };\n\n const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const file = event.target.files?.[0];\n if (!file) return;\n\n if (!file.type.startsWith('image/')) {\n alert('Vui lòng chọn file ảnh.');\n return;\n }\n\n if (file.size > 5 * 1024 * 1024) { // 5MB limit\n alert('Ảnh quá lớn. Vui lòng chọn ảnh dưới 5MB.');\n return;\n }\n\n const reader = new FileReader();\n reader.onload = (e) => {\n const result = e.target?.result as string;\n if (result) {\n setScreenshots(prev => [...prev, result]);\n }\n };\n reader.readAsDataURL(file);\n\n event.target.value = '';\n };\n\n const handleOpen = () => {\n setScreenshots([]);\n setDescription('');\n setInputQuestionId(questionId);\n setInputQuestionIdChild(contextData?.questionIdChild || '');\n setErrorType('incorrect_content');\n setErrors({});\n if (externalIsOpen === undefined) {\n setInternalIsOpen(true);\n }\n };\n\n const startCapture = async (mode: 'full' | 'crop') => {\n if (screenshots.length >= 3) {\n alert('Bạn chỉ có thể chụp tối đa 3 ảnh.');\n return;\n }\n setIsTempHidden(true); // Hide modal temporarily\n\n if (mode === 'crop') {\n setTimeout(() => setIsSelecting(true), 150);\n return;\n }\n\n setTimeout(async () => {\n await performCapture();\n }, 150);\n };\n\n const performCapture = async (cropRect?: Rect) => {\n setIsCapturing(true);\n try {\n const shot = await captureScreenshot(cropRect);\n if (shot) {\n setScreenshots(prev => [...prev, shot as string]);\n } else {\n alert('Không thể chụp ảnh màn hình. Vui lòng thử lại.');\n }\n } catch (err) {\n console.error(err);\n alert('Không thể chụp ảnh màn hình. Vui lòng thử lại.');\n } finally {\n setIsCapturing(false);\n setIsTempHidden(false); // Re-show modal\n }\n };\n\n const handleCropConfirm = (rect: Rect) => {\n setIsSelecting(false);\n performCapture(rect);\n };\n\n const handleCropCancel = () => {\n setIsSelecting(false);\n setIsTempHidden(false);\n };\n\n const handleRemoveScreenshot = (index: number) => {\n setScreenshots(prev => prev.filter((_, i) => i !== index));\n };\n\n const handleCloseTrigger = () => {\n if (onClose) onClose();\n setInternalIsOpen(false);\n\n setScreenshots([]);\n setIsSelecting(false);\n setZoomedImage(null);\n setDescription('');\n setErrors({});\n setErrorType('incorrect_content');\n };\n\n const handleSubmit = async () => {\n const newErrors: { questionId?: string; questionIdChild?: string; description?: string } = {};\n\n if (!inputQuestionId) {\n newErrors.questionId = 'Vui lòng nhập ID câu hỏi';\n } else if (isNaN(Number(inputQuestionId))) {\n newErrors.questionId = 'ID câu hỏi phải là số';\n }\n\n if (inputQuestionIdChild && isNaN(Number(inputQuestionIdChild))) {\n newErrors.questionIdChild = 'ID câu hỏi con phải là số';\n }\n\n if (!description.trim()) {\n newErrors.description = 'Vui lòng nhập mô tả lỗi';\n }\n\n if (Object.keys(newErrors).length > 0) {\n setErrors(newErrors);\n return;\n }\n\n setIsSubmitting(true);\n try {\n const deviceInfo = getDeviceInfo();\n // Upload each screenshot (base64) and collect the returned URLs.\n const listImage = await Promise.all(\n screenshots.map(async (shot) => {\n const response = await fetch(uploadUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ base64: shot })\n });\n const uploadData = await response.json();\n return uploadData.file_url;\n })\n );\n const feedbackData: FeedbackData = {\n idQuestion: inputQuestionId,\n idChildQuestion: inputQuestionIdChild,\n errorType,\n errorDescription: description,\n listImage: listImage,\n deviceInfo,\n contextData\n };\n\n if (onSubmit) {\n await onSubmit(feedbackData);\n } else {\n console.warn('[feedback-widget] Không có onSubmit — bỏ qua gửi. Dữ liệu:', feedbackData);\n }\n handleCloseTrigger();\n } catch (error) {\n console.error('Submit feedback failed', error);\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const styles = `\n @keyframes fb-fade-in {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n @keyframes fb-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n .fb-widget-modal {\n animation: fb-fade-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n position: fixed;\n bottom: 80px;\n right: 24px;\n z-index: 9999;\n background: white;\n padding: 16px;\n border-radius: 12px;\n width: 280px;\n max-width: 90vw;\n max-height: 80vh;\n overflow-y: auto;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n border: 1px solid #f3f4f6;\n display: flex;\n flex-direction: column;\n gap: 12px;\n text-align: left;\n box-sizing: border-box;\n }\n @media (max-width: 640px) {\n .fb-widget-modal {\n bottom: 70px !important;\n right: 5% !important;\n width: 90% !important;\n max-height: 70vh !important;\n }\n .fb-widget-trigger {\n bottom: 20px !important;\n right: 20px !important;\n }\n input, select, textarea {\n font-size: 16px !important;\n }\n }\n @media (max-width: 820px) {\n .fb-btn-crop {\n display: none !important;\n }\n .fb-widget-modal input,\n .fb-widget-modal select,\n .fb-widget-modal textarea {\n font-size: 16px !important;\n }\n }\n `;\n\n return (\n <>\n <style id=\"feedback-widget-styles\" data-hsa-report-ui=\"true\">{styles}</style>\n\n {isSelecting && (\n <CropOverlay onConfirm={handleCropConfirm} onCancel={handleCropCancel} />\n )}\n\n {/* Zoom Modal */}\n {zoomedImage && (\n <div\n data-hsa-report-ui=\"true\"\n style={{\n position: 'fixed',\n inset: 0,\n backgroundColor: 'rgba(0,0,0,0.8)',\n zIndex: 10000,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'zoom-out',\n animation: 'fb-fade-in 0.2s ease-out',\n backdropFilter: 'blur(4px)'\n }}\n onClick={() => setZoomedImage(null)}\n >\n <img\n src={zoomedImage}\n alt=\"Zoomed\"\n draggable={false}\n onContextMenu={(e) => e.preventDefault()}\n style={{\n maxWidth: '90vw',\n maxHeight: '90vh',\n objectFit: 'contain',\n borderRadius: '8px',\n boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1)',\n backgroundColor: 'white',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n }}\n />\n </div>\n )}\n\n {/* Trigger Button */}\n <div\n data-hsa-report-ui=\"true\"\n onClick={() => {\n if (externalIsOpen === undefined) {\n handleOpen();\n } else if (onOpen) {\n onOpen();\n }\n }}\n style={{ cursor: 'pointer', display: 'inline-block' }}\n >\n {triggerComponent || (\n <button\n className=\"fb-widget-trigger\"\n style={{\n position: 'fixed',\n bottom: '24px',\n right: '24px',\n backgroundColor: themeColor,\n color: 'white',\n border: 'none',\n borderRadius: '50%',\n width: '48px',\n height: '48px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n cursor: 'pointer',\n zIndex: 9990,\n transition: 'transform 0.2s',\n }}\n title=\"Báo lỗi\"\n onMouseEnter={(e) => e.currentTarget.style.transform = 'scale(1.1)'}\n onMouseLeave={(e) => e.currentTarget.style.transform = 'scale(1)'}\n >\n <MessageSquarePlus size={24} />\n </button>\n )}\n </div>\n\n {/* Capturing indicator */}\n {isCapturing && (\n <div data-hsa-report-ui=\"true\" style={{ position: 'fixed', top: 20, right: 20, background: 'rgba(0,0,0,0.8)', color: 'white', padding: '8px 12px', borderRadius: '8px', zIndex: 10000, fontWeight: 500, backdropFilter: 'blur(4px)', fontSize: '0.8rem' }}>\n Đang chụp...\n </div>\n )}\n\n {/* Main Form Popover */}\n {showWidget && !isSelecting && !zoomedImage && (\n <div className=\"fb-widget-modal\" data-hsa-report-ui=\"true\">\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <h2 style={{ margin: 0, fontSize: '1rem', fontWeight: 700, color: '#111827' }}>\n Báo lỗi\n </h2>\n <button\n onClick={handleCloseTrigger}\n style={{\n background: 'transparent',\n border: 'none',\n cursor: 'pointer',\n color: '#6b7280',\n padding: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '50%',\n transition: 'background-color 0.2s'\n }}\n onMouseEnter={(e) => e.currentTarget.style.backgroundColor = '#f3f4f6'}\n onMouseLeave={(e) => e.currentTarget.style.backgroundColor = 'transparent'}\n >\n <X size={18} />\n </button>\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>\n\n {/* Question ID Input */}\n <div>\n <label style={{ display: 'block', marginBottom: '2px', fontSize: '0.8rem', fontWeight: 600, color: '#374151' }}>\n ID Câu hỏi {contextData?.questionIdChild ? 'bài đọc' : ''} <span style={{ color: '#ef4444' }}>*</span>\n </label>\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center', transition: 'all 0.2s' }}>\n <Hash size={12} style={{\n position: 'absolute',\n left: '10px',\n color: focusedField === 'id' ? themeColor : (errors.questionId ? '#ef4444' : '#9ca3af'),\n transition: 'color 0.2s',\n pointerEvents: 'none'\n }} />\n <input\n type=\"text\"\n value={inputQuestionId}\n onFocus={() => setFocusedField('id')}\n onBlur={() => setFocusedField(null)}\n onChange={(e) => {\n setInputQuestionId(e.target.value);\n if (errors.questionId) setErrors(prev => ({ ...prev, questionId: undefined }));\n }}\n disabled={!!questionId}\n placeholder=\"Nhập ID (ví dụ: 101)\"\n style={{\n width: '100%',\n padding: '6px 10px 6px 28px',\n borderRadius: '6px',\n border: `1px solid ${errors.questionId ? '#ef4444' : (focusedField === 'id' ? themeColor : '#e5e7eb')}`,\n boxShadow: focusedField === 'id' ? `0 0 0 2px ${themeColor}20` : 'none',\n outline: 'none',\n fontSize: '0.85rem',\n color: '#1f2937',\n transition: 'all 0.2s',\n backgroundColor: '#f9fafb'\n }}\n />\n </div>\n {errors.questionId && (\n <span style={{ display: 'block', marginTop: '2px', fontSize: '0.7rem', color: '#ef4444' }}>\n {errors.questionId}\n </span>\n )}\n </div>\n\n {/* Question ID child Input */}\n {contextData?.questionIdChild ? <div>\n <label style={{ display: 'block', marginBottom: '2px', fontSize: '0.8rem', fontWeight: 600, color: '#374151' }}>\n ID Câu hỏi\n </label>\n <div style={{ position: 'relative', display: 'flex', alignItems: 'center', transition: 'all 0.2s' }}>\n <Hash size={12} style={{\n position: 'absolute',\n left: '10px',\n color: focusedField === 'idChild' ? themeColor : (errors.questionIdChild ? '#ef4444' : '#9ca3af'),\n transition: 'color 0.2s',\n pointerEvents: 'none'\n }} />\n <input\n type=\"text\"\n value={inputQuestionIdChild}\n onFocus={() => setFocusedField('idChild')}\n onBlur={() => setFocusedField(null)}\n onChange={(e) => {\n setInputQuestionIdChild(e.target.value);\n }}\n placeholder=\"Nhập ID (ví dụ: 101)\"\n disabled={!!contextData?.questionIdChild}\n style={{\n width: '100%',\n padding: '6px 10px 6px 28px',\n borderRadius: '6px',\n border: `1px solid ${errors.questionIdChild ? '#ef4444' : (focusedField === 'idChild' ? themeColor : '#e5e7eb')}`,\n boxShadow: focusedField === 'idChild' ? `0 0 0 2px ${themeColor}20` : 'none',\n outline: 'none',\n fontSize: '0.85rem',\n color: '#1f2937',\n transition: 'all 0.2s',\n backgroundColor: '#f9fafb'\n }}\n />\n </div>\n {errors.questionIdChild && (\n <span style={{ display: 'block', marginTop: '2px', fontSize: '0.7rem', color: '#ef4444' }}>\n {errors.questionIdChild}\n </span>\n )}\n </div> : <></>}\n\n {/* Error Type Select */}\n <div>\n <label style={{ display: 'block', marginBottom: '2px', fontSize: '0.8rem', fontWeight: 600, color: '#374151' }}>\n Loại lỗi <span style={{ color: '#ef4444' }}>*</span>\n </label>\n <select\n value={errorType}\n onChange={(e) => setErrorType(e.target.value)}\n style={{\n width: '100%',\n padding: '6px 10px',\n borderRadius: '6px',\n border: '1px solid #e5e7eb',\n backgroundColor: '#f9fafb',\n fontSize: '0.85rem',\n color: '#1f2937',\n outline: 'none',\n cursor: 'pointer',\n appearance: 'none',\n backgroundImage: `url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'/%3e%3c/svg%3e\")`,\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'right 10px center',\n backgroundSize: '14px'\n }}\n >\n <option value=\"incorrect_content\">Lỗi nội dung</option>\n <option value=\"display_error\">Lỗi hiển thị</option>\n <option value=\"missing_data\">Thiếu thông tin</option>\n <option value=\"technical_issue\">Lỗi kỹ thuật</option>\n <option value=\"other\">Khác</option>\n </select>\n </div>\n\n {/* Description Input */}\n <div>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '2px' }}>\n <label style={{ fontSize: '0.8rem', fontWeight: 600, color: '#374151' }}>\n Mô tả lỗi <span style={{ color: '#ef4444' }}>*</span>\n </label>\n <span style={{ fontSize: '0.7rem', color: '#9ca3af' }}>\n {description.length}/1000\n </span>\n </div>\n <div style={{ position: 'relative' }}>\n {isCkEditor ? null : <div style={{ position: 'absolute', left: '10px', top: '8px', pointerEvents: 'none' }}>\n <AlignLeft size={12} style={{\n color: focusedField === 'desc' ? themeColor : (errors.description ? '#ef4444' : '#9ca3af'),\n transition: 'color 0.2s'\n }} />\n </div>}\n {isCkEditor && DescriptionEditor ? (\n <DescriptionEditor\n placeholder=\"Mô tả chi tiết lỗi...\"\n contentQuestion={description}\n error={!!errors.description}\n uploadUrl={uploadUrl}\n handleContent={(html: string) => {\n setDescription(html);\n if (errors.description) setErrors(prev => ({ ...prev, description: undefined }));\n }}\n />\n ) : (\n <textarea\n value={description}\n onFocus={() => setFocusedField('desc')}\n onBlur={() => setFocusedField(null)}\n onChange={(e) => {\n setDescription(e.target.value);\n if (errors.description) setErrors(prev => ({ ...prev, description: undefined }));\n }}\n maxLength={1000}\n placeholder=\"Mô tả chi tiết...\"\n style={{\n width: '100%',\n minHeight: '80px',\n padding: '6px 10px 6px 28px',\n borderRadius: '6px',\n border: `1px solid ${errors.description ? '#ef4444' : (focusedField === 'desc' ? themeColor : '#e5e7eb')}`,\n boxShadow: focusedField === 'desc' ? `0 0 0 2px ${themeColor}20` : 'none',\n outline: 'none',\n fontSize: '0.85rem',\n color: '#1f2937',\n resize: 'vertical',\n boxSizing: 'border-box',\n transition: 'all 0.2s',\n backgroundColor: '#f9fafb',\n lineHeight: '1.4',\n fontFamily: 'inherit'\n }}\n />\n )}\n </div>\n {errors.description && (\n <span style={{ display: 'block', marginTop: '2px', fontSize: '0.7rem', color: '#ef4444' }}>\n {errors.description}\n </span>\n )}\n </div>\n </div>\n\n <div style={{ marginBottom: '2px' }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '6px' }}>\n <label style={{ fontWeight: 600, fontSize: '0.8rem', color: '#374151' }}>\n Ảnh chụp ({screenshots.length}/3)\n </label>\n </div>\n\n {screenshots.length > 0 && (\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '6px', marginBottom: '8px' }}>\n {screenshots.map((shot, index) => (\n <div key={index} style={{\n position: 'relative',\n aspectRatio: '16/9',\n border: '1px solid #e5e7eb',\n borderRadius: '6px',\n overflow: 'hidden',\n boxShadow: '0 1px 2px rgba(0,0,0,0.05)'\n }}>\n <img\n src={shot}\n alt={`Screenshot ${index + 1}`}\n draggable={false}\n onContextMenu={(e) => e.preventDefault()}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n cursor: 'zoom-in',\n transition: 'transform 0.2s',\n userSelect: 'none',\n WebkitUserSelect: 'none'\n }}\n onClick={() => setZoomedImage(shot)}\n />\n <button\n onClick={() => handleRemoveScreenshot(index)}\n title=\"Xóa ảnh\"\n style={{\n position: 'absolute',\n top: '2px',\n right: '2px',\n background: 'rgba(239, 68, 68, 0.9)',\n color: 'white',\n border: 'none',\n borderRadius: '50%',\n width: '16px',\n height: '16px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n padding: 0,\n boxShadow: '0 1px 2px rgba(0,0,0,0.2)'\n }}\n >\n <X size={10} />\n </button>\n </div>\n ))}\n </div>\n )}\n\n <div style={{ display: 'flex', gap: '8px' }}>\n <input\n type=\"file\"\n ref={fileInputRef}\n style={{ display: 'none' }}\n accept=\"image/*\"\n onChange={handleFileChange}\n />\n {isEnableCaptureFull ? <button\n onClick={() => startCapture('full')}\n style={{\n flex: 1,\n padding: '12px',\n textAlign: 'center',\n background: 'white',\n border: '1px dashed #d1d5db',\n borderRadius: '8px',\n color: '#4b5563',\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4px',\n transition: 'all 0.2s',\n minWidth: '60px'\n }}\n onMouseOver={(e) => {\n e.currentTarget.style.borderColor = themeColor;\n e.currentTarget.style.color = themeColor;\n e.currentTarget.style.backgroundColor = '#f9fafb';\n }}\n onMouseOut={(e) => {\n e.currentTarget.style.borderColor = '#d1d5db';\n e.currentTarget.style.color = '#4b5563';\n e.currentTarget.style.backgroundColor = 'white';\n }}\n >\n <Monitor size={18} />\n <span style={{ fontSize: '0.8rem', fontWeight: 500 }}>Toàn màn hình</span>\n </button> : <></>}\n\n {isEnableCaptureElement ? <button\n onClick={() => startCapture('crop')}\n className=\"fb-btn-crop\"\n style={{\n flex: 1,\n padding: '12px',\n textAlign: 'center',\n background: 'white',\n border: '1px dashed #d1d5db',\n borderRadius: '8px',\n color: '#4b5563',\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4px',\n transition: 'all 0.2s',\n minWidth: '60px'\n }}\n onMouseOver={(e) => {\n e.currentTarget.style.borderColor = themeColor;\n e.currentTarget.style.color = themeColor;\n e.currentTarget.style.backgroundColor = '#f9fafb';\n }}\n onMouseOut={(e) => {\n e.currentTarget.style.borderColor = '#d1d5db';\n e.currentTarget.style.color = '#4b5563';\n e.currentTarget.style.backgroundColor = 'white';\n }}\n >\n <Crop size={18} />\n <span style={{ fontSize: '0.8rem', fontWeight: 500 }}>Chọn vùng</span>\n </button> : <></>}\n\n <button\n onClick={handleSelectImage}\n className=\"fb-btn-upload\"\n style={{\n flex: 1,\n padding: '12px',\n textAlign: 'center',\n background: 'white',\n border: '1px dashed #d1d5db',\n borderRadius: '8px',\n color: '#4b5563',\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4px',\n transition: 'all 0.2s',\n minWidth: '60px'\n }}\n onMouseOver={(e) => {\n e.currentTarget.style.borderColor = themeColor;\n e.currentTarget.style.color = themeColor;\n e.currentTarget.style.backgroundColor = '#f9fafb';\n }}\n onMouseOut={(e) => {\n e.currentTarget.style.borderColor = '#d1d5db';\n e.currentTarget.style.color = '#4b5563';\n e.currentTarget.style.backgroundColor = 'white';\n }}\n >\n <ImageIcon size={18} />\n <span style={{ fontSize: '0.8rem', fontWeight: 500 }}>Chọn ảnh</span>\n </button>\n </div>\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'flex-end', gap: '8px', marginTop: 'auto', paddingTop: '8px', borderTop: '1px solid #f3f4f6' }}>\n <button\n onClick={handleCloseTrigger}\n disabled={isSubmitting}\n style={{\n padding: '8px 16px',\n borderRadius: '8px',\n border: '1px solid #d1d5db',\n background: 'white',\n cursor: 'pointer',\n color: '#374151',\n fontWeight: 500,\n fontSize: '0.85rem',\n transition: 'background-color 0.2s'\n }}\n onMouseEnter={(e) => e.currentTarget.style.background = '#f9fafb'}\n onMouseLeave={(e) => e.currentTarget.style.background = 'white'}\n >\n Hủy bỏ\n </button>\n <button\n onClick={handleSubmit}\n disabled={isSubmitting}\n style={{\n padding: '8px 16px',\n borderRadius: '8px',\n border: 'none',\n background: themeColor,\n color: 'white',\n cursor: isSubmitting ? 'not-allowed' : 'pointer',\n fontWeight: 600,\n fontSize: '0.85rem',\n opacity: isSubmitting ? 0.7 : 1,\n boxShadow: '0 2px 4px -1px rgba(0, 0, 0, 0.1)',\n transition: 'transform 0.1s, opacity 0.2s'\n }}\n onMouseDown={(e) => !isSubmitting && (e.currentTarget.style.transform = 'scale(0.98)')}\n onMouseUp={(e) => !isSubmitting && (e.currentTarget.style.transform = 'scale(1)')}\n >\n {isSubmitting ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>\n <Loader2 size={16} style={{ animation: 'fb-spin 1s linear infinite' }} />\n <span>Đang gửi...</span>\n </div>\n ) : 'Gửi báo lỗi'}\n </button>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default FeedbackWidget;\n","import React, { createContext, useContext, useState, type ReactNode } from 'react';\nimport FeedbackWidget, { type FeedbackData } from '../components/FeedbackWidget';\nimport type { CkEditorProps } from '../components/CkEditor';\n\nexport type FeedbackSubmitHandler = (data: FeedbackData) => Promise<void> | void;\n\ninterface FeedbackContextType {\n /**\n * Open the report form.\n * @param onSubmit optional per-call handler; overrides the Provider's onSubmit\n * for this submission. Lets you handle submit from anywhere.\n */\n openFeedback: (\n questionId: string | number,\n contextData?: any,\n onSubmit?: FeedbackSubmitHandler\n ) => void;\n closeFeedback: () => void;\n isOpen: boolean;\n activeQuestionId: string | number | null;\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined);\n\nexport const useFeedback = () => {\n const context = useContext(FeedbackContext);\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider');\n }\n return context;\n};\n\ninterface FeedbackProviderProps {\n children: ReactNode;\n /** Default submit handler. Optional — you can instead pass one per call via openFeedback. */\n onSubmit?: FeedbackSubmitHandler;\n themeColor?: string;\n /** Use the rich-text editor for the description instead of a plain textarea. */\n isCkEditor?: boolean;\n /** Editor component for the description (from `hocmai-feedback-widget/ckeditor` or your own). */\n descriptionEditor?: React.ComponentType<CkEditorProps>;\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({\n children,\n onSubmit,\n themeColor,\n isCkEditor,\n descriptionEditor,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [activeQuestionId, setActiveQuestionId] = useState<string | number | null>(null);\n const [activeContextData, setActiveContextData] = useState<any>(undefined);\n // Per-call submit handler set by openFeedback (stored via updater so React\n // doesn't treat the function as a state initializer).\n const [activeOnSubmit, setActiveOnSubmit] = useState<FeedbackSubmitHandler | undefined>(undefined);\n\n const openFeedback = (\n questionId: string | number,\n contextData?: any,\n perCallOnSubmit?: FeedbackSubmitHandler\n ) => {\n setActiveQuestionId(questionId);\n setActiveContextData(contextData);\n setActiveOnSubmit(() => perCallOnSubmit);\n setIsOpen(true);\n };\n\n const closeFeedback = () => {\n setIsOpen(false);\n };\n\n // Resolve handler: per-call → Provider → warn (never crash).\n const effectiveOnSubmit: FeedbackSubmitHandler = async (data) => {\n const handler = activeOnSubmit ?? onSubmit;\n if (!handler) {\n console.warn(\n '[feedback-widget] Bỏ qua gửi báo lỗi: chưa cung cấp onSubmit (ở FeedbackProvider hoặc openFeedback). Dữ liệu:',\n data\n );\n return;\n }\n await handler(data);\n };\n\n return (\n <FeedbackContext.Provider value={{ openFeedback, closeFeedback, isOpen, activeQuestionId }}>\n {children}\n\n {/* The single global widget */}\n {activeQuestionId && (\n <FeedbackWidget\n questionId={activeQuestionId}\n contextData={activeContextData}\n onSubmit={effectiveOnSubmit}\n themeColor={themeColor}\n isCkEditor={isCkEditor}\n descriptionEditor={descriptionEditor}\n isOpen={isOpen}\n onClose={closeFeedback}\n triggerComponent={<></>}\n />\n )}\n </FeedbackContext.Provider>\n );\n};"],"names":["LIBVERSION","UA_MAX_LENGTH","USER_AGENT","EMPTY","UNKNOWN","TYPEOF","BROWSER","CPU","DEVICE","ENGINE","OS","RESULT","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","MAJOR","MODEL","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","XR","EMBEDDED","FETCHER","INAPP","BRANDS","FORMFACTORS","FULLVERLIST","PLATFORM","PLATFORMVER","BITNESS","CH","CH_FULL_VER_LIST","CH_ARCH","CH_BITNESS","CH_FORM_FACTORS","CH_MOBILE","CH_MODEL","CH_PLATFORM","CH_PLATFORM_VER","CH_ALL_VALUES","AMAZON","APPLE","ASUS","BLACKBERRY","GOOGLE","HUAWEI","LENOVO","HONOR","LG","MICROSOFT","MOTOROLA","NVIDIA","ONEPLUS","OPPO","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","CHROME","CHROMIUM","CHROMECAST","EDGE","FIREFOX","OPERA","FACEBOOK","SOGOU","PREFIX_MOBILE","SUFFIX_BROWSER","WINDOWS","isWindow","NAVIGATOR","NAVIGATOR_UADATA","extend","defaultRgx","extensions","mergedRgx","extraRgx","isExtensions","i","j","k","enumerize","arr","enums","has","str1","str2","lowerize","isString","obj","deep","prop","val","itemListToArray","header","tokens","normalizeHeaderValue","token","trim","str","majorize","version","strip","setProps","propName","pattern","len","rgxMapper","ua","arrays","p","q","matches","match","regex","props","strTest","map","strMapper","windowsVersionMap","formFactorsMap","browserHintsMap","defaultRegexes","defaultProps","createIData","item","itemType","init_props","is_ignoreProps","is_ignoreRgx","toString_props","IData","res","UACHData","strToCheck","is","cb","that","IDataResolve","resolveData","uach","isHttpUACH","UAItem","rgxMap","uaCH","ch","data","detect","realVersion","brands","prevName","brandName","brandVersion","archName","reParse","ff","idx","osName","osVersion","parse","UAParser","headers","kv","v","normalized","userAgent","httpUACH","regexMap","createItemFunc","exts","getDeviceInfo","result","Ho","t","e","Rt","n","Xe","Xt","A","D","o","pt","he","r","ft","ge","_a","Lt","zo","s","a","l","Vo","qo","jo","Xo","Ye","Go","B","y","h","S","x","b","Gt","ye","f","d","m","g","w","Ge","ht","gt","Ke","we","Kt","Tt","Jo","Qo","Ko","wt","c","Se","xe","Ce","Zo","_","Qt","tr","St","Yt","Jt","rt","Ae","H","Qe","xt","R","ve","J","Mo","bt","Ai","Ao","vo","Mt","Co","ko","vi","ki","Eo","Ei","Mi","Fi","Ut","ue","Ue","Bt","Be","$i","De","Fo","He","ze","Ro","Ri","$o","Lo","Je","Nt","er","ke","Pt","Ze","nr","_b","or","tn","rr","ir","fr","sr","ar","it","en","cr","lr","ur","u","on","dr","Zt","nn","mr","rn","_c","ee","pr","hr","an","cn","ln","un","fn","dn","gr","mn","pn","yr","br","st","wr","hn","gn","C","E","P","It","_t","Sr","sn","te","xr","Cr","yn","Ee","Wt","_d","_e","_f","_g","_h","_i","Ar","Ct","Me","vr","wn","Z","kr","bn","Er","Mr","Fr","$r","Rr","Sn","An","vn","Lr","$e","Tr","ne","oe","Pr","Nr","Ir","_r","Wr","Or","Ur","xn","Fe","re","Br","kn","Dr","En","Mn","Re","Fn","Hr","Cn","zr","Vr","$n","ie","W","z","L","Y","I","F","X","_j","_k","_l","_m","_n","_o","_p","_q","At","se","vt","Pn","Rn","Ln","Tn","Nn","In","kt","qr","Dn","On","Le","Wn","Et","Un","Bn","jr","Te","Pe","Xr","ae","$","T","U","Vt","K","et","Ht","mt","fe","de","zt","O","Dt","at","Hn","Vn","zn","Gr","Yr","Kr","qn","jn","Xn","Gn","Qr","Jr","Yn","ce","Kn","Zr","ti","oi","ei","ni","Ot","le","Qn","Jn","tt","Zn","ri","to","eo","yt","ii","si","ai","ci","no","io","oo","li","so","ui","fi","ro","di","ao","mi","pi","hi","co","gi","yi","lo","M","bi","Ne","uo","fo","mo","po","ho","go","We","yo","Ie","wi","bo","Si","wo","xi","Oe","V","G","nt","Q","ot","jt","$t","ut","dt","So","Ft","Ve","No","ct","lt","Io","qe","Wo","qt","Oo","me","pe","je","Uo","Bo","Do","xo","Li","N","Pi","Po","Ti","To","Ii","Ni","changeJpegDpi","uint8Array","dpi","_P","_H","_Y","_S","pngDataTable","createPngDataTable","crcTable","calcCrc","searchStartOfPhys","length","changePngDpi","overwritepHYs","physChunk","crc","crcChunk","startingIndex","chunkLength","finalHeader","b64PhysSignature1","b64PhysSignature2","b64PhysSignature3","detectPhysChunkFromDataUrl","dataUrl","b64index","PREFIX","IN_BROWSER","SUPPORT_WEB_WORKER","SUPPORT_ATOB","SUPPORT_BTOA","IN_CHROME","IN_SAFARI","IN_FIREFOX","isContext","value","isCssFontFaceRule","rule","isCSSImportRule","isLayerBlockRule","isElementNode","node","isSVGElementNode","isSVGImageElementNode","isSVGUseElementNode","isHTMLElementNode","isCommentNode","isTextNode","isImageElement","isVideoElement","isCanvasElement","isTextareaElement","isInputElement","isStyleElement","isScriptElement","isSelectElement","isSlotElement","isIFrameElement","consoleWarn","args","supportWebp","ownerDocument","canvas","isDataUrl","url","resolveUrl","baseUrl","doc","getDocument","base","target","XMLNS","createSvg","width","height","svg","svgToDataUrl","removeControlCharacter","xhtml","readBlob","blob","type","resolve","reject","reader","blobToDataUrl","createImage","img","loadMedia","media","options","timeout","userOnError","onWarn","timer","removeEventListeners","onResolve","currentSrc","onLoadeddata","onError","error","onLoad","waitUntilLoad","selectors","el","uuid","counter","random","splitFontFamily","fontFamily","uid","createLogger","debug","prefix","label","getDefaultRequestInit","bypassingCache","orCreateContext","createContext","scale","workerUrl","workerNumber","features","ownerWindow","requests","context","createStyleElement","worker","event","key","resolveBoundingBox","style","cssText","box","imageToCanvas","image","log","drawImageCount","drawImageInterval","loaded","context2d","createCanvas","drawImage","backgroundColor","max","cloneCanvas","dataURL","cloned","ctx","clonedCtx","cloneIframe","iframe","cloneNode","cloneImage","cloneVideo","video","canPlay","cloneElement","getSandBox","sandbox","ignoredStyles","includedAttributes","getDefaultStyle","pseudoElement","defaultComputedStyles","nodeName","isSvgNode","attributes","name","sandboxWindow","sandboxDocument","root","computedStyle","styles","getDiffStyle","defaultStyle","includeStyleProperties","diffStyle","prefixs","prefixTree","applyTo","priority","subIndex","copyCssStyles","isRoot","currentParentNodeStyle","clonedStyle","copyInputValue","pseudoClasses","scrollbarPseudoClasses","copyPseudoClass","copyScrollbar","addWordToFontFamilies","svgStyleElement","svgStyles","currentNodeStyle","copyBy","pseudoClass","content","klasses","cloneStyle","err","allClasses","excludeParentNodes","appendChildNode","child","childCloned","restoreScrollPosition","cloneChildNodes","firstChild","nodes","chlidCloned","scrollTop","scrollLeft","transform","matrix","applyCssStyleWithOptions","NORMAL_ATTRIBUTE_RE","fontFamilies","onCloneEachNode","cloned2","names","overflow","textTransform","families","addWordToFontFamilies2","word","family","text","destroyContext","baseFetch","responseType","requestInit","controller","response","contextFetch","rawUrl","requestType","imageDom","acceptOfImage","fetchFn","placeholderImage","font","workers","request","canFontMinify","fontTexts","needFontMinify","baseFetchOptions","replaceCssUrlToDataUrl","isImage","hasCssUrl","parseCssUrls","toRE","URL_RE","raw","quotation","escaped","properties","embedCssStyleImage","property","newValue","embedImageElement","originalSrc","embedSvgUse","svgDefsElement","href","svgUrl","id","query","definition","svgData","embedNode","tasks","embedWebFont","clone","fontCssTexts","filterPreferredFormat","styleSheets","styleSheet","tempDoc","tempStyleEl","tempStyleSheet","cssRule","replacedCssText","parseCss","cssRules","sheet","unwrapCssLayers","cssText2","COMMENTS_RE","KEYFRAMES_RE","source","IMPORT_RE","UNIFIED_RE","URL_WITH_FORMAT_RE","FONT_SRC_RE","preferredFormat","src","format","rules","out","SVG_EXTERNAL_RESOURCE_REGEX","svgHasExternalResources","domToForeignObjectSvg","progress","autoDestruct","onCloneNode","onEmbedNode","onCreateForeignObjectSvg","allCssText","count","current","runTask","task","createForeignObjectSvg","foreignObject","domToCanvas","domToDataUrl","quality","body","headerLength","b64Index","stringHeader","restOfData","headerBytes","finalArray","base64Header","domToPng","REPORT_UI_ATTR","getCaptureCapabilities","isMobile","isTablet","isLowMemory","clampScale","desiredScale","contentWidth","contentHeight","maxCanvasSize","maxByWidth","maxByHeight","getMathJax","waitForMathJax","MJ","nextFrames","ensureReadyForCapture","STYLE_ID","bufferToBase64","buf","binary","bytes","chunk","collectMathJaxFontFaces","faces","inlinePromise","inlineMathJaxFonts","byUrl","list","css","group","b64","fmt","dataUri","DEFAULT_TIMEOUT","DEFAULT_BG","scrollOffset","viewportSize","regionToViewportRect","cropRect","vp","makePruneFilter","keep","buffer","sel","resolveRegion","scroll","excludeSelectors","extra","withTimeout","promise","ms","isBlankDataUrl","cropFromCanvas","region","rootRect","rootDocLeft","rootDocTop","scaleX","scaleY","srcX","srcY","srcW","srcH","warmPromise","warmOnce","chtml","snapdom","prewarmCapture","captureWithSnapdom","keepRect","captureWithModernScreenshot","rect","offsetX","offsetY","uiFilter","captureScreenshot","onProgress","captureScreenshotWithOptions","timeoutMs","extraSelectors","report","caps","desired","safeMaxCanvas","regionScale","toKebabCase","string","toCamelCase","p1","p2","toPascalCase","camelCase","mergeClasses","classes","className","index","array","hasA11yProp","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","__iconNode","Crop","Hash","Image","LoaderCircle","MessageSquarePlus","Monitor","TextAlignStart","CropOverlay","onConfirm","onCancel","isDragging","setIsDragging","useState","startPos","setStartPos","currentPos","setCurrentPos","preventScroll","setPreventScroll","useEffect","handleMouseDown","handleMouseMove","handleMouseUp","finalizeSelection","handleTouchStart","touch","handleTouchMove","handleTouchEnd","handleKeyDown","jsxs","jsx","DEFAULT_UPLOAD_URL","FeedbackWidget","questionId","contextData","onSubmit","themeColor","triggerComponent","externalIsOpen","onOpen","onClose","isEnableCaptureFull","isEnableCaptureElement","uploadUrl","isCkEditor","DescriptionEditor","internalIsOpen","setInternalIsOpen","description","setDescription","inputQuestionId","setInputQuestionId","inputQuestionIdChild","setInputQuestionIdChild","screenshots","setScreenshots","zoomedImage","setZoomedImage","isCapturing","setIsCapturing","isSubmitting","setIsSubmitting","isSelecting","setIsSelecting","focusedField","setFocusedField","errors","setErrors","errorType","setErrorType","isTempHidden","setIsTempHidden","fileInputRef","React","isOpen","showWidget","handleSelectImage","handleFileChange","file","prev","handleOpen","startCapture","mode","performCapture","shot","handleCropConfirm","handleCropCancel","handleRemoveScreenshot","handleCloseTrigger","handleSubmit","newErrors","deviceInfo","listImage","feedbackData","Fragment","AlignLeft","html","ImageIcon","Loader2","FeedbackContext","useFeedback","useContext","FeedbackProvider","descriptionEditor","setIsOpen","activeQuestionId","setActiveQuestionId","activeContextData","setActiveContextData","activeOnSubmit","setActiveOnSubmit","openFeedback","perCallOnSubmit","closeFeedback","effectiveOnSubmit","handler"],"mappings":"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","x_google_ignoreList":[0,2,3,9,10,11,12,13,14,15,16,17,18,19,20]}