{"version":3,"file":"app.min.js","sources":["../../src/common/Store.js","../../src/common/WPDarkMode.js","../../src/common/Base.js","../../src/common/Accessibility.js","../../src/common/DarkModeAuto.js","../../src/common/Color.js","../../src/common/Images.js","../../src/common/Videos.js","../../node_modules/suncalc/suncalc.js","../../src/common/app.js","../../src/switches/SVG.js","../../src/switches/switch-1.js","../../src/switches/switch-10.js","../../src/switches/switch-11.js","../../src/switches/switch-12.js","../../src/switches/switch-13.js","../../src/switches/switch-14.js","../../src/switches/switch-15.js","../../src/switches/switch-16.js","../../src/switches/switch-17.js","../../src/switches/switch-18.js","../../src/switches/switch-19.js","../../src/switches/switch-2.js","../../src/switches/switch-3.js","../../src/switches/switch-4.js","../../src/switches/switch-5.js","../../src/switches/switch-6.js","../../src/switches/switch-7.js","../../src/switches/switch-8.js","../../src/switches/switch-9.js","../../src/common/switch.js","../../src/common/Utility.js","../../src/frontend/main.js"],"sourcesContent":["/**\n * Store class to handle cookies\n * WP Dark Mode\n */\n\nclass Store {\n\tstatic prefix = 'wp-dark-mode-';\n\tstatic set(key, value, daysToExpire = 365) {\n\t\tkey = `${Store.prefix}${key}`;\n\t\tconst expires = daysToExpire ? `expires = ${new Date( Date.now() + daysToExpire * 24 * 60 * 60 * 1000 ).toUTCString()};` : '';\n\t\tdocument.cookie = `${key} = ${encodeURIComponent( value )};${expires}path = / `;\n\n\t\treturn this\n\t}\n\n\tstatic get(key) {\n\t\tkey = `${Store.prefix}${key}`;\n\t\tconst cookies = document.cookie.split( ';' );\n\t\tfor (const cookie of cookies) {\n\t\t\tconst [cookieKey, cookieValue] = cookie.split( '=' ).map( item => item.trim() );\n\t\t\tif (cookieKey === key) {\n\t\t\t\treturn decodeURIComponent( cookieValue );\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tstatic delete(key) {\n\t\tkey = `${Store.prefix}${key}`;\n\t\tdocument.cookie = `${key} = ; expires = Thu, 01 Jan 1970 00:00:00 UTC; path = / ;`;\n\n\t\treturn this\n\t}\n}\n\nexport default Store;","import Store from './Store';\n\nclass DarkMode {\n\tstatic #instance = null;\n\n\t// Singleton: Return the existing instance if available, otherwise create a new one\n\tstatic getInstance() {\n\t\tif ( ! DarkMode.#instance) {\n\t\t\tDarkMode.#instance = new DarkMode();\n\t\t}\n\t\treturn DarkMode.#instance;\n\t}\n\n\t/**\n\t * Callbacks to be executed before and after dark mode is activated or deactivated\n\t */\n\t#callbacks = {\n\t\tonChange: [],\n\t}\n\n\t/**\n\t * Default configuration\n\t */\n\t#config = {\n\t\ttarget: 'html',\n\t\tactiveAttribute: 'data-wp-dark-mode-active',\n\t\tactiveClass: 'wp-dark-mode-active',\n\t\tignoreClass: 'wp-dark-mode-ignore',\n\t}\n\n\t// Register a callback to be executed after dark mode is activated or deactivated\n\tonChange(callback) {\n\t\t// if (typeof callback !== 'object') return;\n\t\tthis.#callbacks.onChange.push(callback);\n\t\treturn this;\n\t}\n\n\t// Check if the system is currently in dark mode\n\tget isDeviceDark() {\n\t\treturn window.matchMedia('(prefers-color-scheme: dark)').matches;\n\t}\n\n\t// Get the target element\n\tget target() {\n\t\treturn document.querySelector(this.#config.target);\n\t}\n\n\t// Check if dark mode is currently active on the page\n\tget isActive() {\n\t\treturn this.target?.hasAttribute(this.#config.activeAttribute);\n\t}\n\n\t// Toggle between activating and deactivating dark mode based on the current state\n\ttoggle() {\n\t\tthis.isActive ? this.deactivate() : this.activate();\n\t\treturn this;\n\t}\n\n\t// Update the class list of the HTML element to activate dark mode\n\tupdateTarget(active) {\n\t\tactive ? this.target.setAttribute(this.#config.activeAttribute, '') : this.target.removeAttribute(this.#config.activeAttribute);\n\t\tactive ? this.target.classList.add(this.#config.activeClass) : this.target.classList.remove(this.#config.activeClass);\n\t\treturn this;\n\t}\n\n\t// Activate dark mode\n\tactivate( config = {} ) {\n\t\t// Merge the default config with the provided config\n\t\tthis.#config = { ...this.#config, ...config };\n\n\t\tthis.updateTarget(true);\n\t\tthis.#callbacks.onChange.forEach(callback => callback({ isActive: this.isActive }));\n\t\treturn this;\n\t}\n\n\t// Deactivate dark mode\n\tdeactivate() {\n\t\tthis.updateTarget(false);\n\t\tthis.#callbacks.onChange.forEach(callback => callback({ isActive: this.isActive }));\n\t\treturn this;\n\t}\n\n\t// Remembers the user's choice of dark mode\n\tremember() {\n\t\tStore.set('choice', this.isActive ? 'dark' : 'light');\n\t\treturn this;\n\t}\n\n\t// Delete any previously stored choice of dark mode\n\tforget() {\n\t\tStore.delete('choice').delete('device').delete('timezone')\n\t\treturn this;\n\t}\n\n}\n\n// Global variable to access the DarkMode class\nconst WPDarkMode = DarkMode.getInstance();\nwindow.WPDarkMode = WPDarkMode;\n\n// Export a single instance of the DarkMode class as a singleton\nexport default WPDarkMode;\n","class Base {\n\n _el = (selector, context = document) => {\n return context.querySelector(selector);\n }\n\n _els = (selector, context = document) => {\n return context.querySelectorAll(selector);\n }\n \n\t/**\n\t * Is true.\n\t *\n\t * @param value\n\t * @return {boolean}\n\t */\n\tisTrue( value ) {\n\t\treturn [ '1', 'true', 'yes', 'on', 1, true ].includes( value );\n\t}\n\n /**\n\t * Determine if the user is premium\n\t */\n\tget isPremium() {\n\t\treturn this.isTrue( wp_dark_mode_json.is_ultimate || wp_dark_mode_json.is_pro ) // is_pro key is Deprecated, will be removed in future.\n\t}\n\n\n\t/**\n\t * Events\n\t */\n\t#events = {}\n\n /**\n * On\n */\n on(event, callback) {\n if (!this.#events[event]) {\n this.#events[event] = [];\n }\n try {\n this.#events[event].push(callback);\n } catch (e) {\n // console.error(e);\n }\n return this;\n }\n\n /**\n * Emit\n */\n emit(event, ...args) {\n if (this.#events[event]) {\n this.#events[event].forEach(callback => {\n callback(...args);\n });\n }\n return this;\n }\n\n // Constructor\n init () {\n this.events();\n // on state ready \n document.addEventListener('DOMContentLoaded', () => {\n // console.log('Document ready');\n this.ready();\n });\n }\n\n // Fires on DOMContentLoaded\n ready() {}\n\n // Events\n events() {}\n\n get html() {\n return document.querySelector('html');\n }\n}\n\nexport default Base;","import Base from \"./Base\"\nimport Store from \"./Store\"\n\nclass Accessibility extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.trackKeyBoardPress();\n\t\tthis.handleAnimation();\n\t\t\n\t\tif ( ! this.isPremium ) return;\n\t\tthis.initLargeFont();\n\t\tthis.checkLargeFont();\n\t}\n\n\t/**\n\t * Track keyboard press\n\t */\n\ttrackKeyBoardPress() {\n\n\t\t// Bail, if accessibility is disabled.\n\t\tif ( ! wp_dark_mode_json.options.accessibility_enabled_keyboard_shortcut ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.addEventListener('keydown', (e) => {\n\t\t\t// if pressed ctrl + alt + d\n\t\t\tif (e.ctrlKey && e.altKey && e.keyCode === 68) {\n\t\t\t\tWPDarkMode.toggle().remember();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Handle animation\n\t */\n\thandleAnimation() {\n\t\t// Bail if animation_enabled is disabled.\n\t\tif ( ! wp_dark_mode_json.options.animation_enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add animation class.\n\t\tif(WPDarkMode.isActive) {\n\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-animation');\n\t\t}\n\n\t\tWPDarkMode.onChange(() => {\n\t\t\tif( !WPDarkMode.isActive ) {\n\t\t\t\tdocument.querySelector('html').classList.remove('wp-dark-mode-animation');\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-animation');\n\t\t\t}\n\t\t})\n\t\t\n\t}\n\n\t/**\n\t * Init large font\n\t */\n\tinitLargeFont = () => {\n\t\tif( !wp_dark_mode_json.options.typography_enabled ) return;\n\n\t\tconst elements = document.querySelectorAll('*:not(.wp-dark-mode-ignore):not(.wp-dark-mode-switch):not(script):not(style):not(link):not(meta):not(title):not(base):not(head):not(.wp-dark-mode-switch)');\n\n\t\tlet desiredSize = wp_dark_mode_json.options.typography_font_size;\n\t\tif( desiredSize === 'custom' ) {\n\t\t\tdesiredSize = wp_dark_mode_json.options.typography_font_size_custom / 100;\n\t\t}\n\n\t\telements.forEach(element => {\n\t\t\t// Bail, if any of parent has wp-dark-mode-ignore class.\n\t\t\tif(element.closest('.wp-dark-mode-ignore')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst fontSize = getComputedStyle(element).fontSize;\n\n\t\t\tif (fontSize) {\n\t\t\t\t// Calculate new font size\n\t\t\t\tconst newFontSize = this.calculateFontSize(fontSize, desiredSize);\n\n\t\t\t\t// Set property\n\t\t\t\telement.style.setProperty('--wp-dark-mode-large-font-size', newFontSize);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggle font size\n\t */\n\ttoggleFontSize( element ) {\n\n\t\tif( !wp_dark_mode_json.options.typography_enabled ) return;\n\n\t\tconst html = document.querySelector('html');\n\n\t\t// Is large font is active\n\t\tconst isLargeFont = html.classList.contains('wp-dark-mode-large-font');\n\n\t\t// Toggle large font\n\t\thtml.classList[isLargeFont ? 'remove' : 'add']('wp-dark-mode-large-font');\n\n\t\t// Is element is \n\t\tconst isActive = element.classList.contains('active');\n\n\t\t// Toggle active class\n\t\telement.classList[isActive ? 'remove' : 'add']('active');\n\n\t\t// Remember user choice\n\t\tStore.set('large-font', !isLargeFont ? 'on' : 'off');\n\n\t\t// Reactive other switches\n\t\tconst switches = document.querySelectorAll('.wp-dark-mode-switch ._font');\n\n\t\tif( !switches || !switches.length ) return;\n\n\t\tswitches.forEach( switchEl => {\n\t\t\tswitchEl.classList[isActive ? 'remove' : 'add']('active');\n\t\t} );\n\n\t}\n\n\t\n\tcalculateFontSize = ( size, by = 1 ) => {\n\t\tconst unit = size.replace(/[0-9]/g, '');\n\t\tconst value = parseFloat(size.replace(/[a-z]/g, ''));\n\n\t\tlet newValue = 0;\n\t\tnewValue = value * by;\n\t\treturn `${newValue}${unit}`;\n\t}\n\n\t/**\n\t * Check large font\n\t */\n\tcheckLargeFont = () => {\n\n\t\tconst isLargeFont = Store.get('large-font') === 'on';\n\n\t\tif( isLargeFont ) {\n\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-large-font');\n\n\t\t\t// On wp-dark-mode-switches-updated event\n\t\t\tdocument.addEventListener('wp-dark-mode-switches-updated', () => {\n\t\t\t\tconst switches = document.querySelectorAll('.wp-dark-mode-switch ._font');\n\t\t\t\tif( !switches || !switches.length ) return;\n\t\t\t\tswitches.forEach( switchEl => {\n\t\t\t\t\tswitchEl.classList.add('active');\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport default new Accessibility();","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\"\n ? factory(exports)\n : typeof define === \"function\" && define.amd\n ? define([\"exports\"], factory)\n : ((global =\n typeof globalThis !== \"undefined\" ? globalThis : global || self),\n factory((global.DarkModeAuto = {})));\n})(this, function (exports) {\n \"use strict\";\n\n var __assign = function () {\n __assign =\n Object.assign ||\n function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P\n ? value\n : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done\n ? resolve(result.value)\n : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n }\n\n function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: [],\n },\n f,\n y,\n t,\n g;\n return (\n (g = {\n next: verb(0),\n throw: verb(1),\n return: verb(2),\n }),\n typeof Symbol === \"function\" &&\n (g[Symbol.iterator] = function () {\n return this;\n }),\n g\n );\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_)\n try {\n if (\n ((f = 1),\n y &&\n (t =\n op[0] & 2\n ? y[\"return\"]\n : op[0]\n ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0)\n : y.next) &&\n !(t = t.call(y, op[1])).done)\n )\n return t;\n if (((y = 0), t)) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (\n !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) &&\n (op[0] === 6 || op[0] === 2)\n ) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n }\n\n function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\")\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n },\n };\n throw new TypeError(\n s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\"\n );\n }\n\n function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = { error: error };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n }\n\n function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n }\n\n var userAgent =\n typeof navigator === \"undefined\"\n ? \"some useragent\"\n : navigator.userAgent.toLowerCase();\n var platform =\n typeof navigator === \"undefined\"\n ? \"some platform\"\n : navigator.platform.toLowerCase();\n var isChromium =\n userAgent.includes(\"chrome\") || userAgent.includes(\"chromium\");\n var isFirefox = userAgent.includes(\"firefox\");\n var isVivaldi = userAgent.includes(\"vivaldi\");\n var isYaBrowser = userAgent.includes(\"yabrowser\");\n var isOpera = userAgent.includes(\"opr\") || userAgent.includes(\"opera\");\n var isEdge = userAgent.includes(\"edg\");\n var isSafari = userAgent.includes(\"safari\") && !isChromium;\n var isWindows = platform.startsWith(\"win\");\n var isMacOS = platform.startsWith(\"mac\");\n var isMobile = userAgent.includes(\"mobile\");\n var isShadowDomSupported = typeof ShadowRoot === \"function\";\n var chromiumVersion = (function () {\n var m = userAgent.match(/chrom[e|ium]\\/([^ ]+)/);\n if (m && m[1]) {\n return m[1];\n } else {\n return \"\";\n }\n })();\n var isDefinedSelectorSupported = (function () {\n try {\n document.querySelector(\":defined\");\n return true;\n } catch (err) {\n return false;\n }\n })();\n var isCSSStyleSheetConstructorSupported = (function () {\n try {\n new CSSStyleSheet();\n return true;\n } catch (err) {\n return false;\n }\n })();\n\n function getOKResponse(url, mimeType) {\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [\n 4,\n fetch(url, {\n cache: \"force-cache\",\n credentials: \"omit\",\n }),\n ];\n case 1:\n response = _a.sent();\n if (\n isFirefox &&\n mimeType === \"text/css\" &&\n url.startsWith(\"moz-extension://\") &&\n url.endsWith(\".css\")\n ) {\n return [2, response];\n }\n if (\n mimeType &&\n !response.headers.get(\"Content-Type\").startsWith(mimeType)\n ) {\n throw new Error(\"Mime type mismatch when loading \" + url);\n }\n if (!response.ok) {\n throw new Error(\n \"Unable to load \" +\n url +\n \" \" +\n response.status +\n \" \" +\n response.statusText\n );\n }\n return [2, response];\n }\n });\n });\n }\n\n function loadAsDataURL(url, mimeType) {\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, getOKResponse(url, mimeType)];\n case 1:\n response = _a.sent();\n return [4, readResponseAsDataURL(response)];\n case 2:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n function readResponseAsDataURL(response) {\n return __awaiter(this, void 0, void 0, function () {\n var blob, dataURL;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, response.blob()];\n case 1:\n blob = _a.sent();\n return [\n 4,\n new Promise(function (resolve) {\n var reader = new FileReader();\n reader.onloadend = function () {\n return resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n }),\n ];\n case 2:\n dataURL = _a.sent();\n return [2, dataURL];\n }\n });\n });\n }\n\n var throwCORSError = function (url) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n Promise.reject(\n new Error(\n [\n \"Embedded DarkMode cannot access a cross-origin resource\",\n url,\n \"Overview your URLs and CORS policies or use\",\n \"`DarkMode.setFetchMethod(fetch: (url) => Promise))`.\",\n \"See if using `DarkMode.setFetchMethod(window.fetch)`\",\n \"before `DarkMode.enable()` works.\",\n ].join(\" \")\n )\n ),\n ];\n });\n });\n };\n var fetcher = throwCORSError;\n\n function setFetchMethod(fetch) {\n if (fetch) {\n fetcher = fetch;\n } else {\n fetcher = throwCORSError;\n }\n }\n\n function callFetchMethod(url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, fetcher(url)];\n case 1:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n if (!window.chrome) {\n window.chrome = {};\n }\n if (!chrome.runtime) {\n chrome.runtime = {};\n }\n var messageListeners = new Set();\n\n function sendMessage() {\n return;\n\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var id_1, _a, url, responseType, response, text_1, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(args[0] && args[0].type === \"fetch\")) return [3, 8];\n id_1 = args[0].id;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 7, , 8]);\n (_a = args[0].data),\n (url = _a.url),\n (responseType = _a.responseType);\n return [4, callFetchMethod(url)];\n case 2:\n response = _b.sent();\n if (!(responseType === \"data-url\")) return [3, 4];\n return [4, readResponseAsDataURL(response)];\n case 3:\n text_1 = _b.sent();\n return [3, 6];\n case 4:\n return [4, response.text()];\n case 5:\n text_1 = _b.sent();\n _b.label = 6;\n case 6:\n messageListeners.forEach(function (cb) {\n return cb({\n type: \"fetch-response\",\n data: text_1,\n error: null,\n id: id_1,\n });\n });\n return [3, 8];\n case 7:\n err_1 = _b.sent();\n console.error(err_1);\n messageListeners.forEach(function (cb) {\n return cb({\n type: \"fetch-response\",\n data: null,\n err: err_1,\n id: id_1,\n });\n });\n return [3, 8];\n case 8:\n return [2];\n }\n });\n });\n }\n\n function addMessageListener(callback) {\n messageListeners.add(callback);\n }\n\n if (typeof chrome.runtime.sendMessage === \"function\") {\n var nativeSendMessage_1 = chrome.runtime.sendMessage;\n chrome.runtime.sendMessage = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n sendMessage.apply(void 0, __spread(args));\n nativeSendMessage_1.apply(chrome.runtime, args);\n };\n } else {\n chrome.runtime.sendMessage = sendMessage;\n }\n if (!chrome.runtime.onMessage) {\n chrome.runtime.onMessage = {};\n }\n if (typeof chrome.runtime.onMessage.addListener === \"function\") {\n var nativeAddListener_1 = chrome.runtime.onMessage.addListener;\n chrome.runtime.onMessage.addListener = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n addMessageListener.apply(void 0, __spread(args));\n nativeAddListener_1.apply(chrome.runtime.onMessage, args);\n };\n } else {\n chrome.runtime.onMessage.addListener = addMessageListener;\n }\n\n var ThemeEngines = {\n cssFilter: \"cssFilter\",\n svgFilter: \"svgFilter\",\n staticTheme: \"staticTheme\",\n dynamicTheme: \"dynamicTheme\",\n };\n\n var DEFAULT_COLORS = {\n darkScheme: {\n background: \"#181a1b\",\n text: \"#e8e6e3\",\n },\n lightScheme: {\n background: \"#dcdad7\",\n text: \"#181a1b\",\n },\n };\n var DEFAULT_THEME = {\n mode: 1,\n brightness: 100,\n contrast: 100,\n grayscale: 0,\n sepia: 0,\n useFont: false,\n fontFamily: isMacOS\n ? \"Helvetica Neue\"\n : isWindows\n ? \"Segoe UI\"\n : \"Open Sans\",\n textStroke: 0,\n engine: ThemeEngines.dynamicTheme,\n stylesheet: \"\",\n darkSchemeBackgroundColor: DEFAULT_COLORS.darkScheme.background,\n darkSchemeTextColor: DEFAULT_COLORS.darkScheme.text,\n lightSchemeBackgroundColor: DEFAULT_COLORS.lightScheme.background,\n lightSchemeTextColor: DEFAULT_COLORS.lightScheme.text,\n scrollbarColor: isMacOS ? \"\" : \"auto\",\n selectionColor: \"auto\",\n styleSystemControls: true,\n };\n\n function isArrayLike(items) {\n return items.length != null;\n }\n\n function forEach(items, iterator) {\n var e_1, _a;\n if (isArrayLike(items)) {\n for (var i = 0, len = items.length; i < len; i++) {\n iterator(items[i]);\n }\n } else {\n try {\n for (\n var items_1 = __values(items), items_1_1 = items_1.next();\n !items_1_1.done;\n items_1_1 = items_1.next()\n ) {\n var item = items_1_1.value;\n iterator(item);\n }\n } catch (e_1_1) {\n e_1 = { error: e_1_1 };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return))\n _a.call(items_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n }\n\n function push(array, addition) {\n forEach(addition, function (a) {\n return array.push(a);\n });\n }\n\n function toArray(items) {\n var results = [];\n for (var i = 0, len = items.length; i < len; i++) {\n results.push(items[i]);\n }\n return results;\n }\n\n var anchor;\n\n function fixBaseURL($url) {\n if (!anchor) {\n anchor = document.createElement(\"a\");\n }\n anchor.href = $url;\n return anchor.href;\n }\n\n function parseURL($url, $base) {\n if ($base === void 0) {\n $base = null;\n }\n if ($base) {\n $base = fixBaseURL($base);\n return new URL($url, $base);\n }\n $url = fixBaseURL($url);\n return new URL($url);\n }\n\n function getAbsoluteURL($base, $relative) {\n if ($relative.match(/^data\\:/)) {\n return $relative;\n }\n var b = parseURL($base);\n var a = parseURL($relative, b.href);\n return a.href;\n }\n\n function getURLHostOrProtocol($url) {\n var url = new URL($url);\n if (url.host) {\n return url.host;\n } else {\n return url.protocol;\n }\n }\n\n function logInfo() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n }\n\n function logWarn() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n }\n\n function iterateCSSRules(rules, iterate) {\n forEach(rules, function (rule) {\n if (rule instanceof CSSMediaRule) {\n var media = Array.from(rule.media);\n if (\n media.includes(\"screen\") ||\n media.includes(\"all\") ||\n !(media.includes(\"print\") || media.includes(\"speech\"))\n ) {\n iterateCSSRules(rule.cssRules, iterate);\n }\n } else if (rule instanceof CSSStyleRule) {\n iterate(rule);\n } else if (rule instanceof CSSImportRule) {\n try {\n iterateCSSRules(rule.styleSheet.cssRules, iterate);\n } catch (err) {\n logWarn(err);\n }\n } else if (rule instanceof CSSSupportsRule) {\n if (CSS.supports(rule.conditionText)) {\n iterateCSSRules(rule.cssRules, iterate);\n }\n } else {\n logWarn(\"CSSRule type not supported\", rule);\n }\n });\n }\n\n function iterateCSSDeclarations(style, iterate) {\n forEach(style, function (property) {\n var value = style.getPropertyValue(property).trim();\n if (!value) {\n return;\n }\n iterate(property, value);\n });\n }\n\n function isCSSVariable(property) {\n return property.startsWith(\"--\") && !property.startsWith(\"--wp-dark-mode\");\n }\n\n function getCSSVariables(rules) {\n var variables = new Map();\n rules &&\n iterateCSSRules(rules, function (rule) {\n rule.style &&\n iterateCSSDeclarations(rule.style, function (property, value) {\n if (isCSSVariable(property)) {\n variables.set(property, value);\n }\n });\n });\n return variables;\n }\n\n function getElementCSSVariables(element) {\n var variables = new Map();\n iterateCSSDeclarations(element.style, function (property, value) {\n if (isCSSVariable(property)) {\n variables.set(property, value);\n }\n });\n return variables;\n }\n\n var cssURLRegex = /url\\((('.+?')|(\".+?\")|([^\\)]*?))\\)/g;\n var cssImportRegex = /@import\\s*(url\\()?(('.+?')|(\".+?\")|([^\\)]*?))\\)?;?/g;\n\n function getCSSURLValue(cssURL) {\n return cssURL\n .replace(/^url\\((.*)\\)$/, \"$1\")\n .replace(/^\"(.*)\"$/, \"$1\")\n .replace(/^'(.*)'$/, \"$1\");\n }\n\n function getCSSBaseBath(url) {\n var cssURL = parseURL(url);\n return (\n \"\" +\n cssURL.origin +\n cssURL.pathname.replace(/\\?.*$/, \"\").replace(/(\\/)([^\\/]+)$/i, \"$1\")\n );\n }\n\n function replaceCSSRelativeURLsWithAbsolute($css, cssBasePath) {\n return $css.replace(cssURLRegex, function (match) {\n var pathValue = getCSSURLValue(match);\n return 'url(\"' + getAbsoluteURL(cssBasePath, pathValue) + '\")';\n });\n }\n\n var cssCommentsRegex = /\\/\\*[\\s\\S]*?\\*\\//g;\n\n function removeCSSComments($css) {\n return $css.replace(cssCommentsRegex, \"\");\n }\n\n var fontFaceRegex = /@font-face\\s*{[^}]*}/g;\n\n function replaceCSSFontFace($css) {\n return $css.replace(fontFaceRegex, \"\");\n }\n\n var varRegex =\n /var\\((--[^\\s,\\(\\)]+),?\\s*([^\\(\\)]*(\\([^\\(\\)]*\\)[^\\(\\)]*)*\\s*)\\)/g;\n\n function replaceCSSVariables(value, variables, stack) {\n if (stack === void 0) {\n stack = new Set();\n }\n var missing = false;\n var unresolvable = new Set();\n var result = value.replace(varRegex, function (match, name, fallback) {\n if (stack.has(name)) {\n logWarn(\"Circular reference to variable \" + name);\n if (fallback) {\n return fallback;\n }\n missing = true;\n return match;\n }\n if (variables.has(name)) {\n var value_1 = variables.get(name);\n if (value_1.match(varRegex)) {\n unresolvable.add(name);\n }\n return value_1;\n } else if (fallback) {\n return fallback;\n } else {\n logWarn(\"Variable \" + name + \" not found\");\n missing = true;\n }\n return match;\n });\n if (missing) {\n return result;\n }\n if (result.match(varRegex)) {\n unresolvable.forEach(function (v) {\n return stack.add(v);\n });\n return replaceCSSVariables(result, variables, stack);\n }\n return result;\n }\n\n function throttle(callback) {\n var pending = false;\n var frameId = null;\n var lastArgs;\n var throttled = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n if (frameId) {\n pending = true;\n } else {\n callback.apply(void 0, __spread(lastArgs));\n frameId = requestAnimationFrame(function () {\n frameId = null;\n if (pending) {\n callback.apply(void 0, __spread(lastArgs));\n pending = false;\n }\n });\n }\n };\n var cancel = function () {\n cancelAnimationFrame(frameId);\n pending = false;\n frameId = null;\n };\n return Object.assign(throttled, { cancel: cancel });\n }\n\n function createAsyncTasksQueue() {\n var tasks = [];\n var frameId = null;\n\n function runTasks() {\n var task;\n while ((task = tasks.shift())) {\n task();\n }\n frameId = null;\n }\n\n function add(task) {\n tasks.push(task);\n if (!frameId) {\n frameId = requestAnimationFrame(runTasks);\n }\n }\n\n function cancel() {\n tasks.splice(0);\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n\n return { add: add, cancel: cancel };\n }\n\n function getDuration(time) {\n var duration = 0;\n if (time.seconds) {\n duration += time.seconds * 1000;\n }\n if (time.minutes) {\n duration += time.minutes * 60 * 1000;\n }\n if (time.hours) {\n duration += time.hours * 60 * 60 * 1000;\n }\n if (time.days) {\n duration += time.days * 24 * 60 * 60 * 1000;\n }\n return duration;\n }\n\n function removeNode(node) {\n node && node.parentNode && node.parentNode.removeChild(node);\n }\n\n function watchForNodePosition(node, mode, onRestore) {\n if (onRestore === void 0) {\n onRestore = Function.prototype;\n }\n var MAX_ATTEMPTS_COUNT = 10;\n var RETRY_TIMEOUT = getDuration({ seconds: 2 });\n var ATTEMPTS_INTERVAL = getDuration({ seconds: 10 });\n var prevSibling = node.previousSibling;\n var parent = node.parentNode;\n if (!parent) {\n throw new Error(\n \"Unable to watch for node position: parent element not found\"\n );\n }\n if (mode === \"prev-sibling\" && !prevSibling) {\n throw new Error(\n \"Unable to watch for node position: there is no previous sibling\"\n );\n }\n var attempts = 0;\n var start = null;\n var timeoutId = null;\n var restore = throttle(function () {\n if (timeoutId) {\n return;\n }\n attempts++;\n var now = Date.now();\n if (start == null) {\n start = now;\n } else if (attempts >= MAX_ATTEMPTS_COUNT) {\n if (now - start < ATTEMPTS_INTERVAL) {\n logWarn(\n \"Node position watcher paused: retry in \" + RETRY_TIMEOUT + \"ms\",\n node,\n prevSibling\n );\n timeoutId = setTimeout(function () {\n start = null;\n attempts = 0;\n timeoutId = null;\n restore();\n }, RETRY_TIMEOUT);\n return;\n }\n start = now;\n attempts = 1;\n }\n if (mode === \"parent\") {\n if (prevSibling && prevSibling.parentNode !== parent) {\n logWarn(\n \"Unable to restore node position: sibling parent changed\",\n node,\n prevSibling,\n parent\n );\n stop();\n return;\n }\n }\n if (mode === \"prev-sibling\") {\n if (prevSibling.parentNode == null) {\n logWarn(\n \"Unable to restore node position: sibling was removed\",\n node,\n prevSibling,\n parent\n );\n stop();\n return;\n }\n if (prevSibling.parentNode !== parent) {\n logWarn(\n \"Style was moved to another parent\",\n node,\n prevSibling,\n parent\n );\n updateParent(prevSibling.parentNode);\n }\n }\n logWarn(\"Restoring node position\", node, prevSibling, parent);\n parent.insertBefore(\n node,\n prevSibling ? prevSibling.nextSibling : parent.firstChild\n );\n observer.takeRecords();\n onRestore && onRestore();\n });\n var observer = new MutationObserver(function () {\n if (\n (mode === \"parent\" && node.parentNode !== parent) ||\n (mode === \"prev-sibling\" && node.previousSibling !== prevSibling)\n ) {\n restore();\n }\n });\n var run = function () {\n observer.observe(parent, { childList: true });\n };\n var stop = function () {\n clearTimeout(timeoutId);\n observer.disconnect();\n restore.cancel();\n };\n var skip = function () {\n observer.takeRecords();\n };\n var updateParent = function (parentNode) {\n parent = parentNode;\n stop();\n run();\n };\n run();\n return { run: run, stop: stop, skip: skip };\n }\n\n function iterateShadowHosts(root, iterator) {\n if (root == null) {\n return;\n }\n var walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: function (node) {\n return node.shadowRoot == null\n ? NodeFilter.FILTER_SKIP\n : NodeFilter.FILTER_ACCEPT;\n },\n });\n for (\n var node = root.shadowRoot ? walker.currentNode : walker.nextNode();\n node != null;\n node = walker.nextNode()\n ) {\n iterator(node);\n iterateShadowHosts(node.shadowRoot, iterator);\n }\n }\n\n function isDOMReady() {\n return (\n document.readyState === \"complete\" ||\n document.readyState === \"interactive\"\n );\n }\n\n var readyStateListeners = new Set();\n\n function addDOMReadyListener(listener) {\n readyStateListeners.add(listener);\n }\n\n function removeDOMReadyListener(listener) {\n readyStateListeners.delete(listener);\n }\n\n if (!isDOMReady()) {\n var onReadyStateChange_1 = function () {\n if (isDOMReady()) {\n document.removeEventListener(\"readystatechange\", onReadyStateChange_1);\n readyStateListeners.forEach(function (listener) {\n return listener();\n });\n readyStateListeners.clear();\n }\n };\n document.addEventListener(\"readystatechange\", onReadyStateChange_1);\n }\n var HUGE_MUTATIONS_COUNT = 1000;\n\n function isHugeMutation(mutations) {\n if (mutations.length > HUGE_MUTATIONS_COUNT) {\n return true;\n }\n var addedNodesCount = 0;\n for (var i = 0; i < mutations.length; i++) {\n addedNodesCount += mutations[i].addedNodes.length;\n if (addedNodesCount > HUGE_MUTATIONS_COUNT) {\n return true;\n }\n }\n return false;\n }\n\n function getElementsTreeOperations(mutations) {\n var additions = new Set();\n var deletions = new Set();\n var moves = new Set();\n mutations.forEach(function (m) {\n forEach(m.addedNodes, function (n) {\n if (n instanceof Element && n.isConnected) {\n additions.add(n);\n }\n });\n forEach(m.removedNodes, function (n) {\n if (n instanceof Element) {\n if (n.isConnected) {\n moves.add(n);\n } else {\n deletions.add(n);\n }\n }\n });\n });\n moves.forEach(function (n) {\n return additions.delete(n);\n });\n var duplicateAdditions = [];\n var duplicateDeletions = [];\n additions.forEach(function (node) {\n if (additions.has(node.parentElement)) {\n duplicateAdditions.push(node);\n }\n });\n deletions.forEach(function (node) {\n if (deletions.has(node.parentElement)) {\n duplicateDeletions.push(node);\n }\n });\n duplicateAdditions.forEach(function (node) {\n return additions.delete(node);\n });\n duplicateDeletions.forEach(function (node) {\n return deletions.delete(node);\n });\n return { additions: additions, moves: moves, deletions: deletions };\n }\n\n var optimizedTreeObservers = new Map();\n var optimizedTreeCallbacks = new WeakMap();\n\n function createOptimizedTreeObserver(root, callbacks) {\n var observer;\n var observerCallbacks;\n var domReadyListener;\n if (optimizedTreeObservers.has(root)) {\n observer = optimizedTreeObservers.get(root);\n observerCallbacks = optimizedTreeCallbacks.get(observer);\n } else {\n var hadHugeMutationsBefore_1 = false;\n var subscribedForReadyState_1 = false;\n observer = new MutationObserver(function (mutations) {\n if (isHugeMutation(mutations)) {\n if (!hadHugeMutationsBefore_1 || isDOMReady()) {\n observerCallbacks.forEach(function (_a) {\n var onHugeMutations = _a.onHugeMutations;\n return onHugeMutations(root);\n });\n } else {\n if (!subscribedForReadyState_1) {\n domReadyListener = function () {\n return observerCallbacks.forEach(function (_a) {\n var onHugeMutations = _a.onHugeMutations;\n return onHugeMutations(root);\n });\n };\n addDOMReadyListener(domReadyListener);\n subscribedForReadyState_1 = true;\n }\n }\n hadHugeMutationsBefore_1 = true;\n } else {\n var elementsOperations_1 = getElementsTreeOperations(mutations);\n observerCallbacks.forEach(function (_a) {\n var onMinorMutations = _a.onMinorMutations;\n return onMinorMutations(elementsOperations_1);\n });\n }\n });\n observer.observe(root, { childList: true, subtree: true });\n optimizedTreeObservers.set(root, observer);\n observerCallbacks = new Set();\n optimizedTreeCallbacks.set(observer, observerCallbacks);\n }\n observerCallbacks.add(callbacks);\n return {\n disconnect: function () {\n observerCallbacks.delete(callbacks);\n if (domReadyListener) {\n removeDOMReadyListener(domReadyListener);\n }\n if (observerCallbacks.size === 0) {\n observer.disconnect();\n optimizedTreeCallbacks.delete(observer);\n optimizedTreeObservers.delete(root);\n }\n },\n };\n }\n\n var tempStyle = null;\n\n function getTempCSSStyleSheet() {\n if (tempStyle) {\n return tempStyle;\n }\n if (isCSSStyleSheetConstructorSupported) {\n tempStyle = new CSSStyleSheet();\n return tempStyle;\n } else {\n var tempStyleElement = document.createElement(\"style\");\n document.head.append(tempStyleElement);\n tempStyle = tempStyleElement.sheet;\n document.head.removeChild(tempStyleElement);\n return tempStyle;\n }\n }\n\n function hslToRGB(_a) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n _b = _a.a,\n a = _b === void 0 ? 1 : _b;\n if (s === 0) {\n var _c = __read(\n [l, l, l].map(function (x) {\n return Math.round(x * 255);\n }),\n 3\n ),\n r_1 = _c[0],\n b_1 = _c[1],\n g_1 = _c[2];\n return { r: r_1, g: g_1, b: b_1, a: a };\n }\n var c = (1 - Math.abs(2 * l - 1)) * s;\n var x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n var m = l - c / 2;\n var _d = __read(\n (h < 60\n ? [c, x, 0]\n : h < 120\n ? [x, c, 0]\n : h < 180\n ? [0, c, x]\n : h < 240\n ? [0, x, c]\n : h < 300\n ? [x, 0, c]\n : [c, 0, x]\n ).map(function (n) {\n return Math.round((n + m) * 255);\n }),\n 3\n ),\n r = _d[0],\n g = _d[1],\n b = _d[2];\n return { r: r, g: g, b: b, a: a };\n }\n\n function rgbToHSL(_a) {\n var r255 = _a.r,\n g255 = _a.g,\n b255 = _a.b,\n _b = _a.a,\n a = _b === void 0 ? 1 : _b;\n var r = r255 / 255;\n var g = g255 / 255;\n var b = b255 / 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var c = max - min;\n var l = (max + min) / 2;\n if (c === 0) {\n return { h: 0, s: 0, l: l, a: a };\n }\n var h =\n (max === r\n ? ((g - b) / c) % 6\n : max === g\n ? (b - r) / c + 2\n : (r - g) / c + 4) * 60;\n if (h < 0) {\n h += 360;\n }\n var s = c / (1 - Math.abs(2 * l - 1));\n return { h: h, s: s, l: l, a: a };\n }\n\n function toFixed(n, digits) {\n if (digits === void 0) {\n digits = 0;\n }\n var fixed = n.toFixed(digits);\n if (digits === 0) {\n return fixed;\n }\n var dot = fixed.indexOf(\".\");\n if (dot >= 0) {\n var zerosMatch = fixed.match(/0+$/);\n if (zerosMatch) {\n if (zerosMatch.index === dot + 1) {\n return fixed.substring(0, dot);\n }\n return fixed.substring(0, zerosMatch.index);\n }\n }\n return fixed;\n }\n\n function rgbToString(rgb) {\n var r = rgb.r,\n g = rgb.g,\n b = rgb.b,\n a = rgb.a;\n if (a != null && a < 1) {\n return (\n \"rgba(\" +\n toFixed(r) +\n \", \" +\n toFixed(g) +\n \", \" +\n toFixed(b) +\n \", \" +\n toFixed(a, 2) +\n \")\"\n );\n }\n return \"rgb(\" + toFixed(r) + \", \" + toFixed(g) + \", \" + toFixed(b) + \")\";\n }\n\n function rgbToHexString(_a) {\n var r = _a.r,\n g = _a.g,\n b = _a.b,\n a = _a.a;\n return (\n \"#\" +\n (a != null && a < 1 ? [r, g, b, Math.round(a * 255)] : [r, g, b])\n .map(function (x) {\n return \"\" + (x < 16 ? \"0\" : \"\") + x.toString(16);\n })\n .join(\"\")\n );\n }\n\n function hslToString(hsl) {\n var h = hsl.h,\n s = hsl.s,\n l = hsl.l,\n a = hsl.a;\n if (a != null && a < 1) {\n return (\n \"hsla(\" +\n toFixed(h) +\n \", \" +\n toFixed(s * 100) +\n \"%, \" +\n toFixed(l * 100) +\n \"%, \" +\n toFixed(a, 2) +\n \")\"\n );\n }\n return (\n \"hsl(\" +\n toFixed(h) +\n \", \" +\n toFixed(s * 100) +\n \"%, \" +\n toFixed(l * 100) +\n \"%)\"\n );\n }\n\n var rgbMatch = /^rgba?\\([^\\(\\)]+\\)$/;\n var hslMatch = /^hsla?\\([^\\(\\)]+\\)$/;\n var hexMatch = /^#[0-9a-f]+$/i;\n\n function parse($color) {\n var c = $color.trim().toLowerCase();\n if (c.match(rgbMatch)) {\n return parseRGB(c);\n }\n if (c.match(hslMatch)) {\n return parseHSL(c);\n }\n if (c.match(hexMatch)) {\n return parseHex(c);\n }\n if (knownColors.has(c)) {\n return getColorByName(c);\n }\n if (systemColors.has(c)) {\n return getSystemColor(c);\n }\n if ($color === \"transparent\") {\n return { r: 0, g: 0, b: 0, a: 0 };\n }\n throw new Error(\"Unable to parse \" + $color);\n }\n\n function getNumbersFromString(str, splitter, range, units) {\n var raw = str.split(splitter).filter(function (x) {\n return x;\n });\n var unitsList = Object.entries(units);\n var numbers = raw\n .map(function (r) {\n return r.trim();\n })\n .map(function (r, i) {\n var n;\n var unit = unitsList.find(function (_a) {\n var _b = __read(_a, 1),\n u = _b[0];\n return r.endsWith(u);\n });\n if (unit) {\n n =\n (parseFloat(r.substring(0, r.length - unit[0].length)) / unit[1]) *\n range[i];\n } else {\n n = parseFloat(r);\n }\n if (range[i] > 1) {\n return Math.round(n);\n }\n return n;\n });\n return numbers;\n }\n\n var rgbSplitter = /rgba?|\\(|\\)|\\/|,|\\s/gi;\n var rgbRange = [255, 255, 255, 1];\n var rgbUnits = { \"%\": 100 };\n\n function parseRGB($rgb) {\n var _a = __read(\n getNumbersFromString($rgb, rgbSplitter, rgbRange, rgbUnits),\n 4\n ),\n r = _a[0],\n g = _a[1],\n b = _a[2],\n _b = _a[3],\n a = _b === void 0 ? 1 : _b;\n return { r: r, g: g, b: b, a: a };\n }\n\n var hslSplitter = /hsla?|\\(|\\)|\\/|,|\\s/gi;\n var hslRange = [360, 1, 1, 1];\n var hslUnits = { \"%\": 100, deg: 360, rad: 2 * Math.PI, turn: 1 };\n\n function parseHSL($hsl) {\n var _a = __read(\n getNumbersFromString($hsl, hslSplitter, hslRange, hslUnits),\n 4\n ),\n h = _a[0],\n s = _a[1],\n l = _a[2],\n _b = _a[3],\n a = _b === void 0 ? 1 : _b;\n return hslToRGB({ h: h, s: s, l: l, a: a });\n }\n\n function parseHex($hex) {\n var h = $hex.substring(1);\n switch (h.length) {\n case 3:\n case 4: {\n var _a = __read(\n [0, 1, 2].map(function (i) {\n return parseInt(\"\" + h[i] + h[i], 16);\n }),\n 3\n ),\n r = _a[0],\n g = _a[1],\n b = _a[2];\n var a = h.length === 3 ? 1 : parseInt(\"\" + h[3] + h[3], 16) / 255;\n return { r: r, g: g, b: b, a: a };\n }\n case 6:\n case 8: {\n var _b = __read(\n [0, 2, 4].map(function (i) {\n return parseInt(h.substring(i, i + 2), 16);\n }),\n 3\n ),\n r = _b[0],\n g = _b[1],\n b = _b[2];\n var a = h.length === 6 ? 1 : parseInt(h.substring(6, 8), 16) / 255;\n return { r: r, g: g, b: b, a: a };\n }\n }\n throw new Error(\"Unable to parse \" + $hex);\n }\n\n function getColorByName($color) {\n var n = knownColors.get($color);\n return {\n r: (n >> 16) & 255,\n g: (n >> 8) & 255,\n b: (n >> 0) & 255,\n a: 1,\n };\n }\n\n function getSystemColor($color) {\n var n = systemColors.get($color);\n return {\n r: (n >> 16) & 255,\n g: (n >> 8) & 255,\n b: (n >> 0) & 255,\n a: 1,\n };\n }\n\n var knownColors = new Map(\n Object.entries({\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgrey: 0xa9a9a9,\n darkgreen: 0x006400,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n grey: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgrey: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32,\n })\n );\n var systemColors = new Map(\n Object.entries({\n ActiveBorder: 0x3b99fc,\n ActiveCaption: 0x000000,\n AppWorkspace: 0xaaaaaa,\n Background: 0x6363ce,\n ButtonFace: 0xffffff,\n ButtonHighlight: 0xe9e9e9,\n ButtonShadow: 0x9fa09f,\n ButtonText: 0x000000,\n CaptionText: 0x000000,\n GrayText: 0x7f7f7f,\n Highlight: 0xb2d7ff,\n HighlightText: 0x000000,\n InactiveBorder: 0xffffff,\n InactiveCaption: 0xffffff,\n InactiveCaptionText: 0x000000,\n InfoBackground: 0xfbfcc5,\n InfoText: 0x000000,\n Menu: 0xf6f6f6,\n MenuText: 0xffffff,\n Scrollbar: 0xaaaaaa,\n ThreeDDarkShadow: 0x000000,\n ThreeDFace: 0xc0c0c0,\n ThreeDHighlight: 0xffffff,\n ThreeDLightShadow: 0xffffff,\n ThreeDShadow: 0x000000,\n Window: 0xececec,\n WindowFrame: 0xaaaaaa,\n WindowText: 0x000000,\n \"-webkit-focus-ring-color\": 0xe59700,\n }).map(function (_a) {\n var _b = __read(_a, 2),\n key = _b[0],\n value = _b[1];\n return [key.toLowerCase(), value];\n })\n );\n\n function scale(x, inLow, inHigh, outLow, outHigh) {\n return ((x - inLow) * (outHigh - outLow)) / (inHigh - inLow) + outLow;\n }\n\n function clamp(x, min, max) {\n return Math.min(max, Math.max(min, x));\n }\n\n function multiplyMatrices(m1, m2) {\n var result = [];\n for (var i = 0, len = m1.length; i < len; i++) {\n result[i] = [];\n for (var j = 0, len2 = m2[0].length; j < len2; j++) {\n var sum = 0;\n for (var k = 0, len3 = m1[0].length; k < len3; k++) {\n sum += m1[i][k] * m2[k][j];\n }\n result[i][j] = sum;\n }\n }\n return result;\n }\n\n function getMatches(regex, input, group) {\n if (group === void 0) {\n group = 0;\n }\n var matches = [];\n var m;\n while ((m = regex.exec(input))) {\n matches.push(m[group]);\n }\n return matches;\n }\n\n function formatCSS(text) {\n function trimLeft(text) {\n return text.replace(/^\\s+/, \"\");\n }\n\n function getIndent(depth) {\n if (depth === 0) {\n return \"\";\n }\n return \" \".repeat(4 * depth);\n }\n\n var emptyRuleRegexp = /[^{}]+{\\s*}/g;\n while (emptyRuleRegexp.test(text)) {\n text = text.replace(emptyRuleRegexp, \"\");\n }\n var css = text\n .replace(/\\s{2,}/g, \" \")\n .replace(/\\{/g, \"{\\n\")\n .replace(/\\}/g, \"\\n}\\n\")\n .replace(/\\;(?![^\\(|\\\"]*(\\)|\\\"))/g, \";\\n\")\n .replace(/\\,(?![^\\(|\\\"]*(\\)|\\\"))/g, \",\\n\")\n .replace(/\\n\\s*\\n/g, \"\\n\")\n .split(\"\\n\");\n var depth = 0;\n var formatted = [];\n for (var x = 0, len = css.length; x < len; x++) {\n var line = css[x] + \"\\n\";\n if (line.match(/\\{/)) {\n formatted.push(getIndent(depth++) + trimLeft(line));\n } else if (line.match(/\\}/)) {\n formatted.push(getIndent(--depth) + trimLeft(line));\n } else {\n formatted.push(getIndent(depth) + trimLeft(line));\n }\n }\n return formatted.join(\"\").trim();\n }\n\n function createFilterMatrix(config) {\n var m = Matrix.identity();\n if (config.sepia !== 0) {\n m = multiplyMatrices(m, Matrix.sepia(config.sepia / 100));\n }\n if (config.grayscale !== 0) {\n m = multiplyMatrices(m, Matrix.grayscale(config.grayscale / 100));\n }\n if (config.contrast !== 100) {\n m = multiplyMatrices(m, Matrix.contrast(config.contrast / 100));\n }\n if (config.brightness !== 100) {\n m = multiplyMatrices(m, Matrix.brightness(config.brightness / 100));\n }\n if (config.mode === 1) {\n m = multiplyMatrices(m, Matrix.invertNHue());\n }\n return m;\n }\n\n function applyColorMatrix(_a, matrix) {\n var _b = __read(_a, 3),\n r = _b[0],\n g = _b[1],\n b = _b[2];\n var rgb = [[r / 255], [g / 255], [b / 255], [1], [1]];\n var result = multiplyMatrices(matrix, rgb);\n return [0, 1, 2].map(function (i) {\n return clamp(Math.round(result[i][0] * 255), 0, 255);\n });\n }\n\n var Matrix = {\n identity: function () {\n return [\n [1, 0, 0, 0, 0],\n [0, 1, 0, 0, 0],\n [0, 0, 1, 0, 0],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n invertNHue: function () {\n return [\n [0.333, -0.667, -0.667, 0, 1],\n [-0.667, 0.333, -0.667, 0, 1],\n [-0.667, -0.667, 0.333, 0, 1],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n brightness: function (v) {\n return [\n [v, 0, 0, 0, 0],\n [0, v, 0, 0, 0],\n [0, 0, v, 0, 0],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n contrast: function (v) {\n var t = (1 - v) / 2;\n return [\n [v, 0, 0, 0, t],\n [0, v, 0, 0, t],\n [0, 0, v, 0, t],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n sepia: function (v) {\n return [\n [\n 0.393 + 0.607 * (1 - v),\n 0.769 - 0.769 * (1 - v),\n 0.189 - 0.189 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.349 - 0.349 * (1 - v),\n 0.686 + 0.314 * (1 - v),\n 0.168 - 0.168 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.272 - 0.272 * (1 - v),\n 0.534 - 0.534 * (1 - v),\n 0.131 + 0.869 * (1 - v),\n 0,\n 0,\n ],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n grayscale: function (v) {\n return [\n [\n 0.2126 + 0.7874 * (1 - v),\n 0.7152 - 0.7152 * (1 - v),\n 0.0722 - 0.0722 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.2126 - 0.2126 * (1 - v),\n 0.7152 + 0.2848 * (1 - v),\n 0.0722 - 0.0722 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.2126 - 0.2126 * (1 - v),\n 0.7152 - 0.7152 * (1 - v),\n 0.0722 + 0.9278 * (1 - v),\n 0,\n 0,\n ],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n };\n\n function getBgPole(theme) {\n var isDarkScheme = theme.mode === 1;\n var prop = isDarkScheme\n ? \"darkSchemeBackgroundColor\"\n : \"lightSchemeBackgroundColor\";\n return theme[prop];\n }\n\n function getFgPole(theme) {\n var isDarkScheme = theme.mode === 1;\n var prop = isDarkScheme ? \"darkSchemeTextColor\" : \"lightSchemeTextColor\";\n return theme[prop];\n }\n\n var colorModificationCache = new Map();\n var colorParseCache = new Map();\n\n function parseToHSLWithCache(color) {\n if (colorParseCache.has(color)) {\n return colorParseCache.get(color);\n }\n var rgb = parse(color);\n var hsl = rgbToHSL(rgb);\n colorParseCache.set(color, hsl);\n return hsl;\n }\n\n function clearColorModificationCache() {\n colorModificationCache.clear();\n colorParseCache.clear();\n }\n\n var rgbCacheKeys = [\"r\", \"g\", \"b\", \"a\"];\n var themeCacheKeys = [\n \"mode\",\n \"brightness\",\n \"contrast\",\n \"grayscale\",\n \"sepia\",\n \"darkSchemeBackgroundColor\",\n \"darkSchemeTextColor\",\n \"lightSchemeBackgroundColor\",\n \"lightSchemeTextColor\",\n ];\n\n function getCacheId(rgb, theme) {\n return rgbCacheKeys\n .map(function (k) {\n return rgb[k];\n })\n .concat(\n themeCacheKeys.map(function (k) {\n return theme[k];\n })\n )\n .join(\";\");\n }\n\n function modifyColorWithCache(\n rgb,\n theme,\n modifyHSL,\n poleColor,\n anotherPoleColor\n ) {\n var fnCache;\n if (colorModificationCache.has(modifyHSL)) {\n fnCache = colorModificationCache.get(modifyHSL);\n } else {\n fnCache = new Map();\n colorModificationCache.set(modifyHSL, fnCache);\n }\n var id = getCacheId(rgb, theme);\n if (fnCache.has(id)) {\n return fnCache.get(id);\n }\n var hsl = rgbToHSL(rgb);\n var pole = poleColor == null ? null : parseToHSLWithCache(poleColor);\n var anotherPole =\n anotherPoleColor == null ? null : parseToHSLWithCache(anotherPoleColor);\n var modified = modifyHSL(hsl, pole, anotherPole);\n var _a = hslToRGB(modified),\n r = _a.r,\n g = _a.g,\n b = _a.b,\n a = _a.a;\n var matrix = createFilterMatrix(theme);\n var _b = __read(applyColorMatrix([r, g, b], matrix), 3),\n rf = _b[0],\n gf = _b[1],\n bf = _b[2];\n var color =\n a === 1\n ? rgbToHexString({ r: rf, g: gf, b: bf })\n : rgbToString({ r: rf, g: gf, b: bf, a: a });\n fnCache.set(id, color);\n return color;\n }\n\n function noopHSL(hsl) {\n return hsl;\n }\n\n function modifyColor(rgb, theme) {\n return modifyColorWithCache(rgb, theme, noopHSL);\n }\n\n function modifyLightSchemeColor(rgb, theme) {\n var poleBg = getBgPole(theme);\n var poleFg = getFgPole(theme);\n return modifyColorWithCache(rgb, theme, modifyLightModeHSL, poleFg, poleBg);\n }\n\n function modifyLightModeHSL(_a, poleFg, poleBg) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isDark = l < 0.5;\n var isNeutral;\n if (isDark) {\n isNeutral = l < 0.2 || s < 0.12;\n } else {\n var isBlue = h > 200 && h < 280;\n isNeutral = s < 0.24 || (l > 0.8 && isBlue);\n }\n var hx = h;\n var sx = l;\n if (isNeutral) {\n if (isDark) {\n hx = poleFg.h;\n sx = poleFg.s;\n } else {\n hx = poleBg.h;\n sx = poleBg.s;\n }\n }\n var lx = scale(l, 0, 1, poleFg.l, poleBg.l);\n return { h: hx, s: sx, l: lx, a: a };\n }\n\n var MAX_BG_LIGHTNESS = 0.4;\n\n function modifyBgHSL(_a, pole) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isDark = l < 0.5;\n var isBlue = h > 200 && h < 280;\n var isNeutral = s < 0.12 || (l > 0.8 && isBlue);\n if (isDark) {\n var lx_1 = scale(l, 0, 0.5, 0, MAX_BG_LIGHTNESS);\n if (isNeutral) {\n var hx_1 = pole.h;\n var sx = pole.s;\n return { h: hx_1, s: sx, l: lx_1, a: a };\n }\n return { h: h, s: s, l: lx_1, a: a };\n }\n var lx = scale(l, 0.5, 1, MAX_BG_LIGHTNESS, pole.l);\n if (isNeutral) {\n var hx_2 = pole.h;\n var sx = pole.s;\n return { h: hx_2, s: sx, l: lx, a: a };\n }\n var hx = h;\n var isYellow = h > 60 && h < 180;\n if (isYellow) {\n var isCloserToGreen = h > 120;\n if (isCloserToGreen) {\n hx = scale(h, 120, 180, 135, 180);\n } else {\n hx = scale(h, 60, 120, 60, 105);\n }\n }\n return { h: hx, s: s, l: lx, a: a };\n }\n\n function modifyBackgroundColor(rgb, theme) {\n if (theme.mode === 0) {\n return modifyLightSchemeColor(rgb, theme);\n }\n var pole = getBgPole(theme);\n return modifyColorWithCache(\n rgb,\n __assign(__assign({}, theme), { mode: 0 }),\n modifyBgHSL,\n pole\n );\n }\n\n var MIN_FG_LIGHTNESS = 0.55;\n\n function modifyBlueFgHue(hue) {\n return scale(hue, 205, 245, 205, 220);\n }\n\n function modifyFgHSL(_a, pole) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isLight = l > 0.5;\n var isNeutral = l < 0.2 || s < 0.24;\n var isBlue = !isNeutral && h > 205 && h < 245;\n if (isLight) {\n var lx_2 = scale(l, 0.5, 1, MIN_FG_LIGHTNESS, pole.l);\n if (isNeutral) {\n var hx_3 = pole.h;\n var sx = pole.s;\n return { h: hx_3, s: sx, l: lx_2, a: a };\n }\n var hx_4 = h;\n if (isBlue) {\n hx_4 = modifyBlueFgHue(h);\n }\n return { h: hx_4, s: s, l: lx_2, a: a };\n }\n if (isNeutral) {\n var hx_5 = pole.h;\n var sx = pole.s;\n var lx_3 = scale(l, 0, 0.5, pole.l, MIN_FG_LIGHTNESS);\n return { h: hx_5, s: sx, l: lx_3, a: a };\n }\n var hx = h;\n var lx;\n if (isBlue) {\n hx = modifyBlueFgHue(h);\n lx = scale(l, 0, 0.5, pole.l, Math.min(1, MIN_FG_LIGHTNESS + 0.05));\n } else {\n lx = scale(l, 0, 0.5, pole.l, MIN_FG_LIGHTNESS);\n }\n return { h: hx, s: s, l: lx, a: a };\n }\n\n function modifyForegroundColor(rgb, theme) {\n if (theme.mode === 0) {\n return modifyLightSchemeColor(rgb, theme);\n }\n var pole = getFgPole(theme);\n return modifyColorWithCache(\n rgb,\n __assign(__assign({}, theme), { mode: 0 }),\n modifyFgHSL,\n pole\n );\n }\n\n function modifyBorderHSL(_a, poleFg, poleBg) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isDark = l < 0.5;\n var isNeutral = l < 0.2 || s < 0.24;\n var hx = h;\n var sx = s;\n if (isNeutral) {\n if (isDark) {\n hx = poleFg.h;\n sx = poleFg.s;\n } else {\n hx = poleBg.h;\n sx = poleBg.s;\n }\n }\n var lx = scale(l, 0, 1, 0.5, 0.2);\n return { h: hx, s: sx, l: lx, a: a };\n }\n\n function modifyBorderColor(rgb, theme) {\n if (theme.mode === 0) {\n return modifyLightSchemeColor(rgb, theme);\n }\n var poleFg = getFgPole(theme);\n var poleBg = getBgPole(theme);\n return modifyColorWithCache(\n rgb,\n __assign(__assign({}, theme), { mode: 0 }),\n modifyBorderHSL,\n poleFg,\n poleBg\n );\n }\n\n function modifyShadowColor(rgb, filter) {\n return modifyBackgroundColor(rgb, filter);\n }\n\n function modifyGradientColor(rgb, filter) {\n return modifyBackgroundColor(rgb, filter);\n }\n\n function createTextStyle(config) {\n var lines = [];\n lines.push(\"*:not(pre) {\");\n if (config.useFont && config.fontFamily) {\n lines.push(\" font-family: \" + config.fontFamily + \" !important;\");\n }\n if (config.textStroke > 0) {\n lines.push(\n \" -webkit-text-stroke: \" + config.textStroke + \"px !important;\"\n );\n lines.push(\" text-stroke: \" + config.textStroke + \"px !important;\");\n }\n lines.push(\"}\");\n return lines.join(\"\\n\");\n }\n\n var FilterMode;\n (function (FilterMode) {\n FilterMode[(FilterMode[\"light\"] = 0)] = \"light\";\n FilterMode[(FilterMode[\"dark\"] = 1)] = \"dark\";\n })(FilterMode || (FilterMode = {}));\n\n function getCSSFilterValue(config) {\n var filters = [];\n if (config.mode === FilterMode.dark) {\n filters.push(\"invert(100%) hue-rotate(180deg)\");\n }\n if (config.brightness !== 100) {\n filters.push(\"brightness(\" + config.brightness + \"%)\");\n }\n if (config.contrast !== 100) {\n filters.push(\"contrast(\" + config.contrast + \"%)\");\n }\n if (config.grayscale !== 0) {\n filters.push(\"grayscale(\" + config.grayscale + \"%)\");\n }\n if (config.sepia !== 0) {\n filters.push(\"sepia(\" + config.sepia + \"%)\");\n }\n if (filters.length === 0) {\n return null;\n }\n return filters.join(\" \");\n }\n\n function toSVGMatrix(matrix) {\n return matrix\n .slice(0, 4)\n .map(function (m) {\n return m\n .map(function (m) {\n return m.toFixed(3);\n })\n .join(\" \");\n })\n .join(\" \");\n }\n\n function getSVGFilterMatrixValue(config) {\n return toSVGMatrix(createFilterMatrix(config));\n }\n\n var counter = 0;\n var resolvers = new Map();\n var rejectors = new Map();\n\n function bgFetch(request) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n new Promise(function (resolve, reject) {\n var id = ++counter;\n resolvers.set(id, resolve);\n rejectors.set(id, reject);\n chrome.runtime.sendMessage({\n type: \"fetch\",\n data: request,\n id: id,\n });\n }),\n ];\n });\n });\n }\n\n chrome.runtime.onMessage.addListener(function (_a) {\n var type = _a.type,\n data = _a.data,\n error = _a.error,\n id = _a.id;\n if (type === \"fetch-response\") {\n var resolve = resolvers.get(id);\n var reject = rejectors.get(id);\n resolvers.delete(id);\n rejectors.delete(id);\n if (error) {\n reject && reject(error);\n } else {\n resolve && resolve(data);\n }\n }\n });\n\n function getImageDetails(url) {\n return __awaiter(this, void 0, void 0, function () {\n var dataURL, image, info;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!url.startsWith(\"data:\")) return [3, 1];\n dataURL = url;\n return [3, 3];\n case 1:\n return [4, getImageDataURL(url)];\n case 2:\n dataURL = _a.sent();\n _a.label = 3;\n case 3:\n return [4, urlToImage(dataURL)];\n case 4:\n image = _a.sent();\n info = analyzeImage(image);\n return [\n 2,\n __assign(\n {\n src: url,\n dataURL: dataURL,\n width: image.naturalWidth,\n height: image.naturalHeight,\n },\n info\n ),\n ];\n }\n });\n });\n }\n\n function getImageDataURL(url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (\n !(\n getURLHostOrProtocol(url) ===\n (location.host || location.protocol)\n )\n )\n return [3, 2];\n return [4, loadAsDataURL(url)];\n case 1:\n return [2, _a.sent()];\n case 2:\n return [4, bgFetch({ url: url, responseType: \"data-url\" })];\n case 3:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n function urlToImage(url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n new Promise(function (resolve, reject) {\n var image = new Image();\n image.onload = function () {\n return resolve(image);\n };\n image.onerror = function () {\n return reject(\"Unable to load image \" + url);\n };\n image.src = url;\n }),\n ];\n });\n });\n }\n\n var MAX_ANALIZE_PIXELS_COUNT = 32 * 32;\n var canvas;\n var context;\n\n function createCanvas() {\n var maxWidth = MAX_ANALIZE_PIXELS_COUNT;\n var maxHeight = MAX_ANALIZE_PIXELS_COUNT;\n canvas = document.createElement(\"canvas\");\n canvas.width = maxWidth;\n canvas.height = maxHeight;\n context = canvas.getContext(\"2d\");\n context.imageSmoothingEnabled = false;\n }\n\n function removeCanvas() {\n canvas = null;\n context = null;\n }\n\n function analyzeImage(image) {\n return null;\n\n if (!canvas) {\n createCanvas();\n }\n var naturalWidth = image.naturalWidth,\n naturalHeight = image.naturalHeight;\n if (naturalHeight === 0 || naturalWidth === 0) {\n logWarn(\"logWarn(Image is empty \" + image.currentSrc + \")\");\n return null;\n }\n var naturalPixelsCount = naturalWidth * naturalHeight;\n var k = Math.min(\n 1,\n Math.sqrt(MAX_ANALIZE_PIXELS_COUNT / naturalPixelsCount)\n );\n var width = Math.ceil(naturalWidth * k);\n var height = Math.ceil(naturalHeight * k);\n context.clearRect(0, 0, width, height);\n context.drawImage(\n image,\n 0,\n 0,\n naturalWidth,\n naturalHeight,\n 0,\n 0,\n width,\n height\n );\n var imageData = context.getImageData(0, 0, width, height);\n var d = imageData.data;\n var TRANSPARENT_ALPHA_THRESHOLD = 0.05;\n var DARK_LIGHTNESS_THRESHOLD = 0.4;\n var LIGHT_LIGHTNESS_THRESHOLD = 0.7;\n var transparentPixelsCount = 0;\n var darkPixelsCount = 0;\n var lightPixelsCount = 0;\n var i, x, y;\n var r, g, b, a;\n var l;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n i = 4 * (y * width + x);\n r = d[i + 0] / 255;\n g = d[i + 1] / 255;\n b = d[i + 2] / 255;\n a = d[i + 3] / 255;\n if (a < TRANSPARENT_ALPHA_THRESHOLD) {\n transparentPixelsCount++;\n } else {\n l = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n if (l < DARK_LIGHTNESS_THRESHOLD) {\n darkPixelsCount++;\n }\n if (l > LIGHT_LIGHTNESS_THRESHOLD) {\n lightPixelsCount++;\n }\n }\n }\n }\n var totalPixelsCount = width * height;\n var opaquePixelsCount = totalPixelsCount - transparentPixelsCount;\n var DARK_IMAGE_THRESHOLD = 0.7;\n var LIGHT_IMAGE_THRESHOLD = 0.7;\n var TRANSPARENT_IMAGE_THRESHOLD = 0.1;\n var LARGE_IMAGE_PIXELS_COUNT = 800 * 600;\n return {\n isDark: darkPixelsCount / opaquePixelsCount >= DARK_IMAGE_THRESHOLD,\n isLight: lightPixelsCount / opaquePixelsCount >= LIGHT_IMAGE_THRESHOLD,\n isTransparent:\n transparentPixelsCount / totalPixelsCount >=\n TRANSPARENT_IMAGE_THRESHOLD,\n isLarge: naturalPixelsCount >= LARGE_IMAGE_PIXELS_COUNT,\n };\n }\n\n var objectURLs = new Set();\n\n function getFilteredImageDataURL(_a, filter) {\n var dataURL = _a.dataURL,\n width = _a.width,\n height = _a.height;\n var matrix = getSVGFilterMatrixValue(filter);\n var svg = [\n '',\n \"\",\n '',\n '',\n \"\",\n \"\",\n '',\n \"\",\n ].join(\"\");\n var bytes = new Uint8Array(svg.length);\n for (var i = 0; i < svg.length; i++) {\n bytes[i] = svg.charCodeAt(i);\n }\n var blob = new Blob([bytes], { type: \"image/svg+xml\" });\n var objectURL = URL.createObjectURL(blob);\n objectURLs.add(objectURL);\n return objectURL;\n }\n\n function cleanImageProcessingCache() {\n removeCanvas();\n objectURLs.forEach(function (u) {\n return URL.revokeObjectURL(u);\n });\n objectURLs.clear();\n }\n\n function getModifiableCSSDeclaration(\n property,\n value,\n rule,\n ignoreImageSelectors,\n isCancelled\n ) {\n var important = Boolean(\n rule && rule.style && rule.style.getPropertyPriority(property)\n );\n var sourceValue = value;\n if (property.startsWith(\"--\")) {\n return null;\n } else if (\n (property.indexOf(\"color\") >= 0 &&\n property !== \"-webkit-print-color-adjust\") ||\n property === \"fill\" ||\n property === \"stroke\" ||\n property === \"stop-color\"\n ) {\n var modifier = getColorModifier(property, value);\n if (modifier) {\n return {\n property: property,\n value: modifier,\n important: important,\n sourceValue: sourceValue,\n };\n }\n } else if (\n property === \"background-image\" ||\n property === \"list-style-image\"\n ) {\n var modifier = getBgImageModifier(\n value,\n rule,\n ignoreImageSelectors,\n isCancelled\n );\n if (modifier) {\n return {\n property: property,\n value: modifier,\n important: important,\n sourceValue: sourceValue,\n };\n }\n } else if (property.indexOf(\"shadow\") >= 0) {\n var modifier = getShadowModifier(property, value);\n if (modifier) {\n return {\n property: property,\n value: modifier,\n important: important,\n sourceValue: sourceValue,\n };\n }\n }\n return null;\n }\n\n function getModifiedUserAgentStyle(theme, isIFrame, styleSystemControls) {\n var lines = [];\n if (!isIFrame) {\n lines.push(\"html {\");\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor(\n {\n r: 255,\n g: 255,\n b: 255,\n },\n theme\n ) +\n \" !important;\"\n );\n lines.push(\"}\");\n }\n lines.push(\n \"\" +\n (isIFrame ? \"\" : \"html, body, \") +\n (styleSystemControls ? \"input, textarea, select, button\" : \"\") +\n \" {\"\n );\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor({ r: 255, g: 255, b: 255 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\n \"html, body, \" +\n (styleSystemControls ? \"input, textarea, select, button\" : \"\") +\n \" {\"\n );\n lines.push(\n \" border-color: \" +\n modifyBorderColor({ r: 76, g: 76, b: 76 }, theme) +\n \";\"\n );\n lines.push(\n \" color: \" + modifyForegroundColor({ r: 0, g: 0, b: 0 }, theme) + \";\"\n );\n lines.push(\"}\");\n lines.push(\"a {\");\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 0, g: 64, b: 255 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\"table {\");\n lines.push(\n \" border-color: \" +\n modifyBorderColor({ r: 128, g: 128, b: 128 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\"::placeholder {\");\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 169, g: 169, b: 169 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\"input:-webkit-autofill,\");\n lines.push(\"textarea:-webkit-autofill,\");\n lines.push(\"select:-webkit-autofill {\");\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor({ r: 250, g: 255, b: 189 }, theme) +\n \" !important;\"\n );\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 0, g: 0, b: 0 }, theme) +\n \" !important;\"\n );\n lines.push(\"}\");\n if (theme.scrollbarColor) {\n lines.push(getModifiedScrollbarStyle(theme));\n }\n if (theme.selectionColor) {\n lines.push(getModifiedSelectionStyle(theme));\n }\n return lines.join(\"\\n\");\n }\n\n function getSelectionColor(theme) {\n var backgroundColorSelection;\n var foregroundColorSelection;\n if (theme.selectionColor === \"auto\") {\n backgroundColorSelection = modifyBackgroundColor(\n {\n r: 0,\n g: 96,\n b: 212,\n },\n __assign(__assign({}, theme), { grayscale: 0 })\n );\n foregroundColorSelection = modifyForegroundColor(\n {\n r: 255,\n g: 255,\n b: 255,\n },\n __assign(__assign({}, theme), { grayscale: 0 })\n );\n } else {\n var rgb = parse(theme.selectionColor);\n var hsl = rgbToHSL(rgb);\n backgroundColorSelection = theme.selectionColor;\n if (hsl.l < 0.5) {\n foregroundColorSelection = \"#FFF\";\n } else {\n foregroundColorSelection = \"#000\";\n }\n }\n return {\n backgroundColorSelection: backgroundColorSelection,\n foregroundColorSelection: foregroundColorSelection,\n };\n }\n\n function getModifiedSelectionStyle(theme) {\n var lines = [];\n var modifiedSelectionColor = getSelectionColor(theme);\n var backgroundColorSelection =\n modifiedSelectionColor.backgroundColorSelection;\n var foregroundColorSelection =\n modifiedSelectionColor.foregroundColorSelection;\n [\"::selection\", \"::-moz-selection\"].forEach(function (selection) {\n lines.push(selection + \" {\");\n lines.push(\n \" background-color: \" + backgroundColorSelection + \" !important;\"\n );\n lines.push(\" color: \" + foregroundColorSelection + \" !important;\");\n lines.push(\"}\");\n });\n return lines.join(\"\\n\");\n }\n\n function getModifiedScrollbarStyle(theme) {\n var lines = [];\n var colorTrack;\n var colorIcons;\n var colorThumb;\n var colorThumbHover;\n var colorThumbActive;\n var colorCorner;\n if (theme.scrollbarColor === \"auto\") {\n colorTrack = modifyBackgroundColor({ r: 241, g: 241, b: 241 }, theme);\n colorIcons = modifyForegroundColor({ r: 96, g: 96, b: 96 }, theme);\n colorThumb = modifyBackgroundColor({ r: 176, g: 176, b: 176 }, theme);\n colorThumbHover = modifyBackgroundColor(\n { r: 144, g: 144, b: 144 },\n theme\n );\n colorThumbActive = modifyBackgroundColor({ r: 96, g: 96, b: 96 }, theme);\n colorCorner = modifyBackgroundColor({ r: 255, g: 255, b: 255 }, theme);\n } else {\n var rgb = parse(theme.scrollbarColor);\n var hsl_1 = rgbToHSL(rgb);\n var isLight = hsl_1.l > 0.5;\n var lighten = function (lighter) {\n return __assign(__assign({}, hsl_1), {\n l: clamp(hsl_1.l + lighter, 0, 1),\n });\n };\n var darken = function (darker) {\n return __assign(__assign({}, hsl_1), {\n l: clamp(hsl_1.l - darker, 0, 1),\n });\n };\n colorTrack = hslToString(darken(0.4));\n colorIcons = hslToString(isLight ? darken(0.4) : lighten(0.4));\n colorThumb = hslToString(hsl_1);\n colorThumbHover = hslToString(lighten(0.1));\n colorThumbActive = hslToString(lighten(0.2));\n }\n lines.push(\"::-webkit-scrollbar {\");\n lines.push(\" background-color: \" + colorTrack + \";\");\n lines.push(\" color: \" + colorIcons + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-thumb {\");\n lines.push(\" background-color: \" + colorThumb + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-thumb:hover {\");\n lines.push(\" background-color: \" + colorThumbHover + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-thumb:active {\");\n lines.push(\" background-color: \" + colorThumbActive + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-corner {\");\n lines.push(\" background-color: \" + colorCorner + \";\");\n lines.push(\"}\");\n lines.push(\"* {\");\n lines.push(\" scrollbar-color: \" + colorTrack + \" \" + colorThumb + \";\");\n lines.push(\"}\");\n return lines.join(\"\\n\");\n }\n\n function getModifiedFallbackStyle(filter, _a) {\n var strict = _a.strict;\n var lines = [];\n lines.push(\n \"html, body, \" +\n (strict ? \"body :not(iframe)\" : \"body > :not(iframe)\") +\n \" {\"\n );\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor({ r: 255, g: 255, b: 255 }, filter) +\n \" !important;\"\n );\n lines.push(\n \" border-color: \" +\n modifyBorderColor({ r: 64, g: 64, b: 64 }, filter) +\n \" !important;\"\n );\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 0, g: 0, b: 0 }, filter) +\n \" !important;\"\n );\n lines.push(\"}\");\n\n return \"\";\n return lines.join(\"\\n\");\n }\n\n var unparsableColors = new Set([\n \"inherit\",\n \"transparent\",\n \"initial\",\n \"currentcolor\",\n \"none\",\n \"unset\",\n ]);\n var colorParseCache$1 = new Map();\n\n function parseColorWithCache($color) {\n $color = $color.trim();\n if (colorParseCache$1.has($color)) {\n return colorParseCache$1.get($color);\n }\n var color = parse($color);\n colorParseCache$1.set($color, color);\n return color;\n }\n\n function tryParseColor($color) {\n try {\n return parseColorWithCache($color);\n } catch (err) {\n return null;\n }\n }\n\n function getColorModifier(prop, value) {\n if (unparsableColors.has(value.toLowerCase())) {\n return value;\n }\n try {\n var rgb_1 = parseColorWithCache(value);\n if (prop.indexOf(\"background\") >= 0) {\n return function (filter) {\n return modifyBackgroundColor(rgb_1, filter);\n };\n }\n if (prop.indexOf(\"border\") >= 0 || prop.indexOf(\"outline\") >= 0) {\n return function (filter) {\n return modifyBorderColor(rgb_1, filter);\n };\n }\n return function (filter) {\n return modifyForegroundColor(rgb_1, filter);\n };\n } catch (err) {\n logWarn(\"Color parse error\", err);\n return null;\n }\n }\n\n var gradientRegex =\n /[\\-a-z]+gradient\\(([^\\(\\)]*(\\(([^\\(\\)]*(\\(.*?\\)))*[^\\(\\)]*\\))){0,15}[^\\(\\)]*\\)/g;\n var imageDetailsCache = new Map();\n var awaitingForImageLoading = new Map();\n\n function shouldIgnoreImage(rule, selectors) {\n return false;\n\n if (!rule || selectors.length === 0) {\n return false;\n }\n if (\n selectors.some(function (s) {\n return s === \"*\";\n })\n ) {\n return true;\n }\n var ruleSelectors = rule.selectorText.split(/,\\s*/g);\n var _loop_1 = function (i) {\n var ignoredSelector = selectors[i];\n if (\n ruleSelectors.some(function (s) {\n return s === ignoredSelector;\n })\n ) {\n return { value: true };\n }\n };\n for (var i = 0; i < selectors.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\") return state_1.value;\n }\n return false;\n }\n\n function getBgImageModifier(value, rule, ignoreImageSelectors, isCancelled) {\n return null;\n\n var _this = this;\n try {\n var gradients = getMatches(gradientRegex, value);\n var urls = getMatches(cssURLRegex, value);\n if (urls.length === 0 && gradients.length === 0) {\n return value;\n }\n var getIndices = function (matches) {\n var index = 0;\n return matches.map(function (match) {\n var valueIndex = value.indexOf(match, index);\n index = valueIndex + match.length;\n return { match: match, index: valueIndex };\n });\n };\n var matches_1 = getIndices(urls)\n .map(function (i) {\n return __assign({ type: \"url\" }, i);\n })\n .concat(\n getIndices(gradients).map(function (i) {\n return __assign({ type: \"gradient\" }, i);\n })\n )\n .sort(function (a, b) {\n return a.index - b.index;\n });\n var getGradientModifier_1 = function (gradient) {\n var match = gradient.match(/^(.*-gradient)\\((.*)\\)$/);\n var type = match[1];\n var content = match[2];\n var partsRegex =\n /([^\\(\\),]+(\\([^\\(\\)]*(\\([^\\(\\)]*\\)*[^\\(\\)]*)?\\))?[^\\(\\),]*),?/g;\n var colorStopRegex = /^(from|color-stop|to)\\(([^\\(\\)]*?,\\s*)?(.*?)\\)$/;\n var parts = getMatches(partsRegex, content, 1).map(function (part) {\n part = part.trim();\n var rgb = tryParseColor(part);\n if (rgb) {\n return function (filter) {\n return modifyGradientColor(rgb, filter);\n };\n }\n var space = part.lastIndexOf(\" \");\n rgb = tryParseColor(part.substring(0, space));\n if (rgb) {\n return function (filter) {\n return (\n modifyGradientColor(rgb, filter) +\n \" \" +\n part.substring(space + 1)\n );\n };\n }\n var colorStopMatch = part.match(colorStopRegex);\n if (colorStopMatch) {\n rgb = tryParseColor(colorStopMatch[3]);\n if (rgb) {\n return function (filter) {\n return (\n colorStopMatch[1] +\n \"(\" +\n (colorStopMatch[2] ? colorStopMatch[2] + \", \" : \"\") +\n modifyGradientColor(rgb, filter) +\n \")\"\n );\n };\n }\n }\n return function () {\n return part;\n };\n });\n return function (filter) {\n return (\n type +\n \"(\" +\n parts\n .map(function (modify) {\n return modify(filter);\n })\n .join(\", \") +\n \")\"\n );\n };\n };\n var getURLModifier_1 = function (urlValue) {\n var url = getCSSURLValue(urlValue);\n if (rule.parentStyleSheet.href) {\n var basePath = getCSSBaseBath(rule.parentStyleSheet.href);\n url = getAbsoluteURL(basePath, url);\n } else if (\n rule.parentStyleSheet.ownerNode &&\n rule.parentStyleSheet.ownerNode.baseURI\n ) {\n url = getAbsoluteURL(rule.parentStyleSheet.ownerNode.baseURI, url);\n } else {\n url = getAbsoluteURL(location.origin, url);\n }\n var absoluteValue = 'url(\"' + url + '\")';\n return function (filter) {\n return __awaiter(_this, void 0, void 0, function () {\n var imageDetails, awaiters_1, err_1, bgImageValue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!imageDetailsCache.has(url)) return [3, 1];\n imageDetails = imageDetailsCache.get(url);\n return [3, 7];\n case 1:\n _a.trys.push([1, 6, , 7]);\n if (shouldIgnoreImage(rule, ignoreImageSelectors)) {\n return [2, null];\n }\n if (!awaitingForImageLoading.has(url)) return [3, 3];\n awaiters_1 = awaitingForImageLoading.get(url);\n return [\n 4,\n new Promise(function (resolve) {\n return awaiters_1.push(resolve);\n }),\n ];\n case 2:\n imageDetails = _a.sent();\n if (!imageDetails) {\n return [2, null];\n }\n return [3, 5];\n case 3:\n awaitingForImageLoading.set(url, []);\n return [4, getImageDetails(url)];\n case 4:\n imageDetails = _a.sent();\n imageDetailsCache.set(url, imageDetails);\n awaitingForImageLoading.get(url).forEach(function (resolve) {\n return resolve(imageDetails);\n });\n awaitingForImageLoading.delete(url);\n _a.label = 5;\n case 5:\n if (isCancelled()) {\n return [2, null];\n }\n return [3, 7];\n case 6:\n err_1 = _a.sent();\n logWarn(err_1);\n if (awaitingForImageLoading.has(url)) {\n awaitingForImageLoading\n .get(url)\n .forEach(function (resolve) {\n return resolve(null);\n });\n awaitingForImageLoading.delete(url);\n }\n return [2, absoluteValue];\n case 7:\n bgImageValue =\n getBgImageValue_1(imageDetails, filter) || absoluteValue;\n return [2, bgImageValue];\n }\n });\n });\n };\n };\n var getBgImageValue_1 = function (imageDetails, filter) {\n var isDark = imageDetails.isDark,\n isLight = imageDetails.isLight,\n isTransparent = imageDetails.isTransparent,\n isLarge = imageDetails.isLarge,\n width = imageDetails.width;\n var result;\n if (\n isDark &&\n isTransparent &&\n filter.mode === 1 &&\n !isLarge &&\n width > 2\n ) {\n logInfo(\"Inverting dark image \" + imageDetails.src);\n var inverted = getFilteredImageDataURL(\n imageDetails,\n __assign(__assign({}, filter), {\n sepia: clamp(filter.sepia + 10, 0, 100),\n })\n );\n result = 'url(\"' + inverted + '\")';\n } else if (isLight && !isTransparent && filter.mode === 1) {\n if (isLarge) {\n result = \"none\";\n } else {\n logInfo(\"Dimming light image \" + imageDetails.src);\n var dimmed = getFilteredImageDataURL(imageDetails, filter);\n result = 'url(\"' + dimmed + '\")';\n }\n } else if (filter.mode === 0 && isLight && !isLarge) {\n logInfo(\"Applying filter to image \" + imageDetails.src);\n var filtered = getFilteredImageDataURL(\n imageDetails,\n __assign(__assign({}, filter), {\n brightness: clamp(filter.brightness - 10, 5, 200),\n sepia: clamp(filter.sepia + 10, 0, 100),\n })\n );\n result = 'url(\"' + filtered + '\")';\n } else {\n result = null;\n }\n return result;\n };\n var modifiers_1 = [];\n var index_1 = 0;\n matches_1.forEach(function (_a, i) {\n var match = _a.match,\n type = _a.type,\n matchStart = _a.index;\n var prefixStart = index_1;\n var matchEnd = matchStart + match.length;\n index_1 = matchEnd;\n modifiers_1.push(function () {\n return value.substring(prefixStart, matchStart);\n });\n modifiers_1.push(\n type === \"url\"\n ? getURLModifier_1(match)\n : getGradientModifier_1(match)\n );\n if (i === matches_1.length - 1) {\n modifiers_1.push(function () {\n return value.substring(matchEnd);\n });\n }\n });\n return function (filter) {\n var results = modifiers_1.map(function (modify) {\n return modify(filter);\n });\n if (\n results.some(function (r) {\n return r instanceof Promise;\n })\n ) {\n return Promise.all(results).then(function (asyncResults) {\n return asyncResults.join(\"\");\n });\n }\n return results.join(\"\");\n };\n } catch (err) {\n logWarn(\"Unable to parse gradient \" + value, err);\n return null;\n }\n }\n\n function getShadowModifier(prop, value) {\n try {\n var index_2 = 0;\n var colorMatches_1 = getMatches(\n /(^|\\s)([a-z]+\\(.+?\\)|#[0-9a-f]+|[a-z]+)(.*?(inset|outset)?($|,))/gi,\n value,\n 2\n );\n var modifiers_2 = colorMatches_1.map(function (match, i) {\n var prefixIndex = index_2;\n var matchIndex = value.indexOf(match, index_2);\n var matchEnd = matchIndex + match.length;\n index_2 = matchEnd;\n var rgb = tryParseColor(match);\n if (!rgb) {\n return function () {\n return value.substring(prefixIndex, matchEnd);\n };\n }\n return function (filter) {\n return (\n \"\" +\n value.substring(prefixIndex, matchIndex) +\n modifyShadowColor(rgb, filter) +\n (i === colorMatches_1.length - 1 ? value.substring(matchEnd) : \"\")\n );\n };\n });\n return function (filter) {\n return modifiers_2\n .map(function (modify) {\n return modify(filter);\n })\n .join(\"\");\n };\n } catch (err) {\n logWarn(\"Unable to parse shadow \" + value, err);\n return null;\n }\n }\n\n function cleanModificationCache() {\n colorParseCache$1.clear();\n clearColorModificationCache();\n imageDetailsCache.clear();\n cleanImageProcessingCache();\n awaitingForImageLoading.clear();\n }\n\n var overrides = {\n \"background-color\": {\n customProp: \"--wp-dark-mode-inline-bgcolor\",\n cssProp: \"background-color\",\n dataAttr: \"data-darkmoder-inline-bgcolor\",\n },\n \"background-image\": {\n customProp: \"--wp-dark-mode-inline-bgimage\",\n cssProp: \"background-image\",\n dataAttr: \"data-darkmoder-inline-bgimage\",\n },\n \"border-color\": {\n customProp: \"--wp-dark-mode-inline-border\",\n cssProp: \"border-color\",\n dataAttr: \"data-darkmoder-inline-border\",\n },\n \"border-bottom-color\": {\n customProp: \"--wp-dark-mode-inline-border-bottom\",\n cssProp: \"border-bottom-color\",\n dataAttr: \"data-darkmoder-inline-border-bottom\",\n },\n \"border-left-color\": {\n customProp: \"--wp-dark-mode-inline-border-left\",\n cssProp: \"border-left-color\",\n dataAttr: \"data-darkmoder-inline-border-left\",\n },\n \"border-right-color\": {\n customProp: \"--wp-dark-mode-inline-border-right\",\n cssProp: \"border-right-color\",\n dataAttr: \"data-darkmoder-inline-border-right\",\n },\n \"border-top-color\": {\n customProp: \"--wp-dark-mode-inline-border-top\",\n cssProp: \"border-top-color\",\n dataAttr: \"data-darkmoder-inline-border-top\",\n },\n \"box-shadow\": {\n customProp: \"--wp-dark-mode-inline-boxshadow\",\n cssProp: \"box-shadow\",\n dataAttr: \"data-darkmoder-inline-boxshadow\",\n },\n color: {\n customProp: \"--wp-dark-mode-inline-color\",\n cssProp: \"color\",\n dataAttr: \"data-darkmoder-inline-color\",\n },\n fill: {\n customProp: \"--wp-dark-mode-inline-fill\",\n cssProp: \"fill\",\n dataAttr: \"data-darkmoder-inline-fill\",\n },\n stroke: {\n customProp: \"--wp-dark-mode-inline-stroke\",\n cssProp: \"stroke\",\n dataAttr: \"data-darkmoder-inline-stroke\",\n },\n \"outline-color\": {\n customProp: \"--wp-dark-mode-inline-outline\",\n cssProp: \"outline-color\",\n dataAttr: \"data-darkmoder-inline-outline\",\n },\n \"stop-color\": {\n customProp: \"--wp-dark-mode-inline-stopcolor\",\n cssProp: \"stop-color\",\n dataAttr: \"data-darkmoder-inline-stopcolor\",\n },\n };\n var overridesList = Object.values(overrides);\n var INLINE_STYLE_ATTRS = [\n \"style\",\n \"fill\",\n \"stop-color\",\n \"stroke\",\n \"bgcolor\",\n \"color\",\n ];\n var INLINE_STYLE_SELECTOR = INLINE_STYLE_ATTRS.map(function (attr) {\n return \"[\" + attr + \"]\";\n }).join(\", \");\n\n function getInlineOverrideStyle() {\n return overridesList\n .map(function (_a) {\n var dataAttr = _a.dataAttr,\n customProp = _a.customProp,\n cssProp = _a.cssProp;\n return [\n \"[\" + dataAttr + \"] {\",\n \" \" + cssProp + \": var(\" + customProp + \") !important;\",\n \"}\",\n ].join(\"\\n\");\n })\n .join(\"\\n\");\n }\n\n function getInlineStyleElements(root) {\n var results = [];\n if (root instanceof Element && root.matches(INLINE_STYLE_SELECTOR)) {\n results.push(root);\n }\n if (\n root instanceof Element ||\n (isShadowDomSupported && root instanceof ShadowRoot) ||\n root instanceof Document\n ) {\n push(results, root.querySelectorAll(INLINE_STYLE_SELECTOR));\n }\n return results;\n }\n\n var treeObservers = new Map();\n var attrObservers = new Map();\n\n function watchForInlineStyles(elementStyleDidChange, shadowRootDiscovered) {\n deepWatchForInlineStyles(\n document,\n elementStyleDidChange,\n shadowRootDiscovered\n );\n iterateShadowHosts(document.documentElement, function (host) {\n deepWatchForInlineStyles(\n host.shadowRoot,\n elementStyleDidChange,\n shadowRootDiscovered\n );\n });\n }\n\n function deepWatchForInlineStyles(\n root,\n elementStyleDidChange,\n shadowRootDiscovered\n ) {\n if (treeObservers.has(root)) {\n treeObservers.get(root).disconnect();\n attrObservers.get(root).disconnect();\n }\n var discoveredNodes = new WeakSet();\n\n function discoverNodes(node) {\n getInlineStyleElements(node).forEach(function (el) {\n if (discoveredNodes.has(el)) {\n return;\n }\n discoveredNodes.add(el);\n elementStyleDidChange(el);\n });\n iterateShadowHosts(node, function (n) {\n if (discoveredNodes.has(node)) {\n return;\n }\n discoveredNodes.add(node);\n shadowRootDiscovered(n.shadowRoot);\n deepWatchForInlineStyles(\n n.shadowRoot,\n elementStyleDidChange,\n shadowRootDiscovered\n );\n });\n }\n\n var treeObserver = createOptimizedTreeObserver(root, {\n onMinorMutations: function (_a) {\n var additions = _a.additions;\n additions.forEach(function (added) {\n return discoverNodes(added);\n });\n },\n onHugeMutations: function () {\n discoverNodes(root);\n },\n });\n treeObservers.set(root, treeObserver);\n var attemptCount = 0;\n var start = null;\n var ATTEMPTS_INTERVAL = getDuration({ seconds: 10 });\n var RETRY_TIMEOUT = getDuration({ seconds: 2 });\n var MAX_ATTEMPTS_COUNT = 50;\n var cache = [];\n var timeoutId = null;\n var handleAttributeMutations = throttle(function (mutations) {\n mutations.forEach(function (m) {\n if (INLINE_STYLE_ATTRS.includes(m.attributeName)) {\n elementStyleDidChange(m.target);\n }\n });\n });\n var attrObserver = new MutationObserver(function (mutations) {\n if (timeoutId) {\n cache.push.apply(cache, __spread(mutations));\n return;\n }\n attemptCount++;\n var now = Date.now();\n if (start == null) {\n start = now;\n } else if (attemptCount >= MAX_ATTEMPTS_COUNT) {\n if (now - start < ATTEMPTS_INTERVAL) {\n timeoutId = setTimeout(function () {\n start = null;\n attemptCount = 0;\n timeoutId = null;\n var attributeCache = cache;\n cache = [];\n handleAttributeMutations(attributeCache);\n }, RETRY_TIMEOUT);\n cache.push.apply(cache, __spread(mutations));\n return;\n }\n start = now;\n attemptCount = 1;\n }\n handleAttributeMutations(mutations);\n });\n attrObserver.observe(root, {\n attributes: true,\n attributeFilter: INLINE_STYLE_ATTRS.concat(\n overridesList.map(function (_a) {\n var dataAttr = _a.dataAttr;\n return dataAttr;\n })\n ),\n subtree: true,\n });\n attrObservers.set(root, attrObserver);\n }\n\n function stopWatchingForInlineStyles() {\n treeObservers.forEach(function (o) {\n return o.disconnect();\n });\n attrObservers.forEach(function (o) {\n return o.disconnect();\n });\n treeObservers.clear();\n attrObservers.clear();\n }\n\n var inlineStyleCache = new WeakMap();\n var filterProps = [\"brightness\", \"contrast\", \"grayscale\", \"sepia\", \"mode\"];\n\n function getInlineStyleCacheKey(el, theme) {\n return INLINE_STYLE_ATTRS.map(function (attr) {\n return attr + '=\"' + el.getAttribute(attr) + '\"';\n })\n .concat(\n filterProps.map(function (prop) {\n return prop + '=\"' + theme[prop] + '\"';\n })\n )\n .join(\" \");\n }\n\n function shouldIgnoreInlineStyle(element, selectors) {\n for (var i = 0, len = selectors.length; i < len; i++) {\n var ingnoredSelector = selectors[i];\n if (element.matches(ingnoredSelector)) {\n return true;\n }\n }\n return false;\n }\n\n function overrideInlineStyle(\n element,\n theme,\n ignoreInlineSelectors,\n ignoreImageSelectors\n ) {\n var cacheKey = getInlineStyleCacheKey(element, theme);\n if (cacheKey === inlineStyleCache.get(element)) {\n return;\n }\n var unsetProps = new Set(Object.keys(overrides));\n\n function setCustomProp(targetCSSProp, modifierCSSProp, cssVal) {\n var _a = overrides[targetCSSProp],\n customProp = _a.customProp,\n dataAttr = _a.dataAttr;\n var mod = getModifiableCSSDeclaration(\n modifierCSSProp,\n cssVal,\n null,\n ignoreImageSelectors,\n null\n );\n if (!mod) {\n return;\n }\n var value = mod.value;\n if (typeof value === \"function\") {\n value = value(theme);\n }\n element.style.setProperty(customProp, value);\n if (!element.hasAttribute(dataAttr)) {\n element.setAttribute(dataAttr, \"\");\n }\n unsetProps.delete(targetCSSProp);\n }\n\n if (ignoreInlineSelectors.length > 0) {\n if (shouldIgnoreInlineStyle(element, ignoreInlineSelectors)) {\n unsetProps.forEach(function (cssProp) {\n element.removeAttribute(overrides[cssProp].dataAttr);\n });\n return;\n }\n }\n if (element.hasAttribute(\"bgcolor\")) {\n var value = element.getAttribute(\"bgcolor\");\n if (value.match(/^[0-9a-f]{3}$/i) || value.match(/^[0-9a-f]{6}$/i)) {\n value = \"#\" + value;\n }\n setCustomProp(\"background-color\", \"background-color\", value);\n }\n if (element.hasAttribute(\"color\")) {\n var value = element.getAttribute(\"color\");\n if (value.match(/^[0-9a-f]{3}$/i) || value.match(/^[0-9a-f]{6}$/i)) {\n value = \"#\" + value;\n }\n setCustomProp(\"color\", \"color\", value);\n }\n if (element instanceof SVGElement) {\n if (element.hasAttribute(\"fill\")) {\n var SMALL_SVG_LIMIT = 32;\n var value = element.getAttribute(\"fill\");\n var isBg = false;\n if (!(element instanceof SVGTextElement)) {\n var _a = element.getBoundingClientRect(),\n width = _a.width,\n height = _a.height;\n isBg = width > SMALL_SVG_LIMIT || height > SMALL_SVG_LIMIT;\n }\n setCustomProp(\"fill\", isBg ? \"background-color\" : \"color\", value);\n }\n if (element.hasAttribute(\"stop-color\")) {\n setCustomProp(\n \"stop-color\",\n \"background-color\",\n element.getAttribute(\"stop-color\")\n );\n }\n }\n if (element.hasAttribute(\"stroke\")) {\n var value = element.getAttribute(\"stroke\");\n setCustomProp(\n \"stroke\",\n element instanceof SVGLineElement || element instanceof SVGTextElement\n ? \"border-color\"\n : \"color\",\n value\n );\n }\n element.style &&\n iterateCSSDeclarations(element.style, function (property, value) {\n if (property === \"background-image\" && value.indexOf(\"url\") >= 0) {\n return;\n }\n if (overrides.hasOwnProperty(property)) {\n setCustomProp(property, property, value);\n }\n });\n if (\n element.style &&\n element instanceof SVGTextElement &&\n element.style.fill\n ) {\n setCustomProp(\"fill\", \"color\", element.style.getPropertyValue(\"fill\"));\n }\n forEach(unsetProps, function (cssProp) {\n element.removeAttribute(overrides[cssProp].dataAttr);\n });\n inlineStyleCache.set(element, getInlineStyleCacheKey(element, theme));\n }\n\n var metaThemeColorName = \"theme-color\";\n var metaThemeColorSelector = 'meta[name=\"' + metaThemeColorName + '\"]';\n var srcMetaThemeColor = null;\n var observer = null;\n\n function changeMetaThemeColor(meta, theme) {\n srcMetaThemeColor = srcMetaThemeColor || meta.content;\n try {\n var color = parse(srcMetaThemeColor);\n meta.content = modifyBackgroundColor(color, theme);\n } catch (err) {\n logWarn(err);\n }\n }\n\n function changeMetaThemeColorWhenAvailable(theme) {\n var meta = document.querySelector(metaThemeColorSelector);\n if (meta) {\n changeMetaThemeColor(meta, theme);\n } else {\n if (observer) {\n observer.disconnect();\n }\n observer = new MutationObserver(function (mutations) {\n loop: for (var i = 0; i < mutations.length; i++) {\n var addedNodes = mutations[i].addedNodes;\n for (var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n if (\n node instanceof HTMLMetaElement &&\n node.name === metaThemeColorName\n ) {\n observer.disconnect();\n observer = null;\n changeMetaThemeColor(node, theme);\n break loop;\n }\n }\n }\n });\n observer.observe(document.head, { childList: true });\n }\n }\n\n function restoreMetaThemeColor() {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n var meta = document.querySelector(metaThemeColorSelector);\n if (meta && srcMetaThemeColor) {\n meta.content = srcMetaThemeColor;\n }\n }\n\n var themeCacheKeys$1 = [\n \"mode\",\n \"brightness\",\n \"contrast\",\n \"grayscale\",\n \"sepia\",\n \"darkSchemeBackgroundColor\",\n \"darkSchemeTextColor\",\n \"lightSchemeBackgroundColor\",\n \"lightSchemeTextColor\",\n ];\n\n function getThemeKey(theme) {\n return themeCacheKeys$1\n .map(function (p) {\n return p + \":\" + theme[p];\n })\n .join(\";\");\n }\n\n var asyncQueue = createAsyncTasksQueue();\n\n function createStyleSheetModifier() {\n var renderId = 0;\n var rulesTextCache = new Map();\n var rulesModCache = new Map();\n var prevFilterKey = null;\n\n function modifySheet(options) {\n var newRules = options.sourceCSSRules;\n\n var theme = options.theme,\n variables = options.variables,\n ignoreImageAnalysis = options.ignoreImageAnalysis,\n force = options.force,\n prepareSheet = options.prepareSheet,\n isAsyncCancelled = options.isAsyncCancelled;\n var rulesChanged = rulesModCache.size === 0;\n var notFoundCacheKeys = new Set(rulesModCache.keys());\n var themeKey = getThemeKey(theme);\n var themeChanged = themeKey !== prevFilterKey;\n var modRules = [];\n iterateCSSRules(newRules, function (rule) {\n if (\n rule.parentStyleSheet.ownerNode && \n \"wp-dark-mode-custom-css\" ===\n rule.parentStyleSheet.ownerNode.getAttribute(\"id\")\n ) {\n return;\n }\n\n var cssText = rule.cssText;\n var textDiffersFromPrev = false;\n notFoundCacheKeys.delete(cssText);\n if (!rulesTextCache.has(cssText)) {\n rulesTextCache.set(cssText, cssText);\n textDiffersFromPrev = true;\n }\n var vars;\n var varsRule = null;\n if (variables.size > 0 || cssText.includes(\"var(\")) {\n var cssTextWithVariables = replaceCSSVariables(cssText, variables);\n if (rulesTextCache.get(cssText) !== cssTextWithVariables) {\n rulesTextCache.set(cssText, cssTextWithVariables);\n textDiffersFromPrev = true;\n vars = getTempCSSStyleSheet();\n vars.insertRule(cssTextWithVariables);\n varsRule = vars.cssRules[0];\n }\n }\n if (textDiffersFromPrev) {\n rulesChanged = true;\n } else {\n modRules.push(rulesModCache.get(cssText));\n return;\n }\n var modDecs = [];\n var targetRule = varsRule || rule;\n targetRule &&\n targetRule.style &&\n iterateCSSDeclarations(targetRule.style, function (property, value) {\n var mod = getModifiableCSSDeclaration(\n property,\n value,\n rule,\n ignoreImageAnalysis,\n isAsyncCancelled\n );\n if (mod) {\n modDecs.push(mod);\n }\n });\n var modRule = null;\n if (modDecs.length > 0) {\n var parentRule = rule.parentRule;\n modRule = {\n selector: rule.selectorText,\n declarations: modDecs,\n parentRule: parentRule,\n };\n modRules.push(modRule);\n }\n rulesModCache.set(cssText, modRule);\n vars && vars.deleteRule(0);\n });\n notFoundCacheKeys.forEach(function (key) {\n rulesTextCache.delete(key);\n rulesModCache.delete(key);\n });\n prevFilterKey = themeKey;\n if (!force && !rulesChanged && !themeChanged) {\n return;\n }\n renderId++;\n\n function setRule(target, index, rule) {\n var selector = rule.selector,\n declarations = rule.declarations;\n\n if (!selector) {\n return;\n }\n\n // const queryCheck = (s) =>\n // document.createDocumentFragment().querySelector(s);\n\n // const isSelectorValid = (selector) => {\n // try {\n // queryCheck(selector);\n // } catch {\n // return false;\n // }\n // return true;\n // };\n\n // //return if the selector is not valid\n // if (!isSelectorValid(selector)) return;\n\n const element = document.querySelector(selector);\n\n if (typeof element === \"undefined\" || !element) {\n return;\n }\n\n // Check if includes section is activated\n if (typeof wp_dark_mode_json !== \"undefined\" && \"\" !== wp_dark_mode_json.options.excludes_elements_includes ) {\n // Return if not included element\n if (!element.classList.contains(\"wp-dark-mode-include\")) {\n return;\n }\n }\n\n // Return if element is excluded\n if (element.classList.contains(\"wp-dark-mode-ignore\")) {\n return;\n }\n\n\n target.insertRule(selector + \" {}\", index);\n var style = target.cssRules[index].style;\n\n declarations.forEach(function (_a) {\n \n var property = _a.property,\n value = _a.value,\n important = _a.important,\n sourceValue = _a.sourceValue;\n\n if (\"background-image\" === property) {\n return;\n }\n\n style.setProperty(\n property,\n value == null ? sourceValue : value,\n important ? \"important\" : \"\"\n );\n });\n }\n\n var asyncDeclarations = new Map();\n var asyncDeclarationCounter = 0;\n var rootReadyGroup = { rule: null, rules: [], isGroup: true };\n var groupRefs = new WeakMap();\n\n function getGroup(rule) {\n if (rule == null) {\n return rootReadyGroup;\n }\n if (groupRefs.has(rule)) {\n return groupRefs.get(rule);\n }\n var group = { rule: rule, rules: [], isGroup: true };\n groupRefs.set(rule, group);\n var parentGroup = getGroup(rule.parentRule);\n parentGroup.rules.push(group);\n return group;\n }\n\n modRules\n .filter(function (r) {\n return r;\n })\n .forEach(function (_a) {\n var selector = _a.selector,\n declarations = _a.declarations,\n parentRule = _a.parentRule;\n var group = getGroup(parentRule);\n var readyStyleRule = {\n selector: selector,\n declarations: [],\n isGroup: false,\n };\n var readyDeclarations = readyStyleRule.declarations;\n group.rules.push(readyStyleRule);\n declarations.forEach(function (_a) {\n var property = _a.property,\n value = _a.value,\n important = _a.important,\n sourceValue = _a.sourceValue;\n if (typeof value === \"function\") {\n var modified = value(theme);\n if (modified instanceof Promise) {\n var asyncKey_1 = asyncDeclarationCounter++;\n var asyncDeclaration_1 = {\n property: property,\n value: null,\n important: important,\n asyncKey: asyncKey_1,\n sourceValue: sourceValue,\n };\n readyDeclarations.push(asyncDeclaration_1);\n var promise = modified;\n var currentRenderId_1 = renderId;\n promise.then(function (asyncValue) {\n if (\n !asyncValue ||\n isAsyncCancelled() ||\n currentRenderId_1 !== renderId\n ) {\n return;\n }\n asyncDeclaration_1.value = asyncValue;\n asyncQueue.add(function () {\n if (isAsyncCancelled() || currentRenderId_1 !== renderId) {\n return;\n }\n rebuildAsyncRule(asyncKey_1);\n });\n });\n } else {\n readyDeclarations.push({\n property: property,\n value: modified,\n important: important,\n sourceValue: sourceValue,\n });\n }\n } else {\n readyDeclarations.push({\n property: property,\n value: value,\n important: important,\n sourceValue: sourceValue,\n });\n }\n });\n });\n var sheet = prepareSheet();\n\n function buildStyleSheet() {\n function createTarget(group, parent) {\n var rule = group.rule;\n\n if (rule instanceof CSSMediaRule) {\n var media = rule.media;\n var index = parent.cssRules.length;\n parent.insertRule(\"@media \" + media.mediaText + \" {}\", index);\n return parent.cssRules[index];\n }\n return parent;\n }\n\n function iterateReadyRules(group, target, styleIterator) {\n group.rules.forEach(function (r) {\n if (r.isGroup) {\n var t = createTarget(r, target);\n iterateReadyRules(r, t, styleIterator);\n } else {\n styleIterator(r, target);\n }\n });\n }\n\n iterateReadyRules(rootReadyGroup, sheet, function (rule, target) {\n var index = target.cssRules.length;\n rule.declarations\n .filter(function (_a) {\n var value = _a.value;\n return value == null;\n })\n .forEach(function (_a) {\n var asyncKey = _a.asyncKey;\n return asyncDeclarations.set(asyncKey, {\n rule: rule,\n target: target,\n index: index,\n });\n });\n setRule(target, index, rule);\n });\n }\n\n function rebuildAsyncRule(key) {\n var _a = asyncDeclarations.get(key);\n\n if (typeof _a === \"undefined\") {\n return;\n }\n\n var rule = _a.rule,\n target = _a.target,\n index = _a.index;\n target.deleteRule(index);\n setRule(target, index, rule);\n asyncDeclarations.delete(key);\n }\n\n buildStyleSheet();\n }\n\n return { modifySheet: modifySheet };\n }\n\n var STYLE_SELECTOR = 'style, link[rel*=\"stylesheet\" i]:not([disabled])';\n\n function shouldManageStyle(element) {\n return (\n (element instanceof HTMLStyleElement ||\n element instanceof SVGStyleElement ||\n (element instanceof HTMLLinkElement &&\n element.rel &&\n element.rel.toLowerCase().includes(\"stylesheet\") &&\n !element.disabled)) &&\n !element.classList.contains(\"darkmoder\") &&\n element.media !== \"print\" &&\n !element.classList.contains(\"stylus\")\n );\n }\n\n function getManageableStyles(node, results, deep) {\n if (results === void 0) {\n results = [];\n }\n if (deep === void 0) {\n deep = true;\n }\n if (shouldManageStyle(node)) {\n results.push(node);\n } else if (\n node instanceof Element ||\n (isShadowDomSupported && node instanceof ShadowRoot) ||\n node === document\n ) {\n forEach(node.querySelectorAll(STYLE_SELECTOR), function (style) {\n return getManageableStyles(style, results, false);\n });\n if (deep) {\n iterateShadowHosts(node, function (host) {\n return getManageableStyles(host.shadowRoot, results, false);\n });\n }\n }\n return results;\n }\n\n var syncStyleSet = new WeakSet();\n var corsStyleSet = new WeakSet();\n var canOptimizeUsingProxy = false;\n document.addEventListener(\"__darkmoder__inlineScriptsAllowed\", function () {\n canOptimizeUsingProxy = true;\n });\n\n function manageStyle(element, _a) {\n var update = _a.update,\n loadingStart = _a.loadingStart,\n loadingEnd = _a.loadingEnd;\n var prevStyles = [];\n var next = element;\n while ((next = next.nextElementSibling) && next.matches(\".darkmoder\")) {\n prevStyles.push(next);\n }\n var corsCopy =\n prevStyles.find(function (el) {\n return el.matches(\".darkmoder--cors\") && !corsStyleSet.has(el);\n }) || null;\n var syncStyle =\n prevStyles.find(function (el) {\n return el.matches(\".darkmoder--sync\") && !syncStyleSet.has(el);\n }) || null;\n var corsCopyPositionWatcher = null;\n var syncStylePositionWatcher = null;\n var cancelAsyncOperations = false;\n var sheetModifier = createStyleSheetModifier();\n var observer = new MutationObserver(function () {\n update();\n });\n var observerOptions = {\n attributes: true,\n childList: true,\n characterData: true,\n };\n\n function containsCSSImport() {\n return (\n element instanceof HTMLStyleElement &&\n element.textContent.trim().match(cssImportRegex)\n );\n }\n\n function getRulesSync() {\n if (corsCopy) {\n return corsCopy.sheet.cssRules;\n }\n if (containsCSSImport()) {\n return null;\n }\n return safeGetSheetRules();\n }\n\n function insertStyle() {\n if (corsCopy) {\n if (element.nextSibling !== corsCopy) {\n element.parentNode.insertBefore(corsCopy, element.nextSibling);\n }\n if (corsCopy.nextSibling !== syncStyle) {\n element.parentNode.insertBefore(syncStyle, corsCopy.nextSibling);\n }\n } else if (element.nextSibling !== syncStyle) {\n element.parentNode.insertBefore(syncStyle, element.nextSibling);\n }\n }\n\n function createSyncStyle() {\n syncStyle =\n element instanceof SVGStyleElement\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"style\")\n : document.createElement(\"style\");\n syncStyle.classList.add(\"darkmoder\");\n syncStyle.classList.add(\"darkmoder--sync\");\n syncStyle.media = \"screen\";\n syncStyleSet.add(syncStyle);\n }\n\n var isLoadingRules = false;\n var wasLoadingError = false;\n\n function getRulesAsync() {\n return __awaiter(this, void 0, void 0, function () {\n var cssText,\n cssBasePath,\n _a,\n cssRules,\n accessError,\n err_1,\n fullCSSText,\n err_2;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(element instanceof HTMLLinkElement)) return [3, 7];\n (_a = __read(getRulesOrError(), 2)),\n (cssRules = _a[0]),\n (accessError = _a[1]);\n if (accessError) {\n logWarn(accessError);\n }\n if (\n !(\n (!cssRules && !accessError && !isSafari) ||\n (isSafari && !element.sheet) ||\n isStillLoadingError(accessError)\n )\n )\n return [3, 5];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4, linkLoading(element)];\n case 2:\n _c.sent();\n return [3, 4];\n case 3:\n err_1 = _c.sent();\n logWarn(err_1);\n wasLoadingError = true;\n return [3, 4];\n case 4:\n if (cancelAsyncOperations) {\n return [2, null];\n }\n (_b = __read(getRulesOrError(), 2)),\n (cssRules = _b[0]),\n (accessError = _b[1]);\n if (accessError) {\n logWarn(accessError);\n }\n _c.label = 5;\n case 5:\n if (cssRules != null) {\n return [2, cssRules];\n }\n return [4, loadText(element.href)];\n case 6:\n cssText = _c.sent();\n cssBasePath = getCSSBaseBath(element.href);\n if (cancelAsyncOperations) {\n return [2, null];\n }\n return [3, 8];\n case 7:\n if (containsCSSImport()) {\n cssText = element.textContent.trim();\n cssBasePath = getCSSBaseBath(location.href);\n } else {\n return [2, null];\n }\n _c.label = 8;\n case 8:\n if (!cssText) return [3, 13];\n _c.label = 9;\n case 9:\n _c.trys.push([9, 11, , 12]);\n return [4, replaceCSSImports(cssText, cssBasePath)];\n case 10:\n fullCSSText = _c.sent();\n corsCopy = createCORSCopy(element, fullCSSText);\n return [3, 12];\n case 11:\n err_2 = _c.sent();\n logWarn(err_2);\n return [3, 12];\n case 12:\n if (corsCopy) {\n corsCopyPositionWatcher = watchForNodePosition(\n corsCopy,\n \"prev-sibling\"\n );\n return [2, corsCopy.sheet.cssRules];\n }\n _c.label = 13;\n case 13:\n return [2, null];\n }\n });\n });\n }\n\n function details() {\n var rules = getRulesSync();\n if (!rules) {\n if (isLoadingRules || wasLoadingError) {\n return null;\n }\n isLoadingRules = true;\n loadingStart();\n getRulesAsync()\n .then(function (results) {\n isLoadingRules = false;\n loadingEnd();\n if (results) {\n update();\n }\n })\n .catch(function (err) {\n logWarn(err);\n isLoadingRules = false;\n loadingEnd();\n });\n return null;\n }\n var variables = getCSSVariables(rules);\n return { variables: variables };\n }\n\n var forceRenderStyle = false;\n\n function render(theme, variables, ignoreImageAnalysis) {\n var rules = getRulesSync();\n if (!rules) {\n return;\n }\n cancelAsyncOperations = false;\n\n function prepareOverridesSheet() {\n if (!syncStyle) {\n createSyncStyle();\n }\n syncStylePositionWatcher && syncStylePositionWatcher.stop();\n insertStyle();\n if (syncStyle.sheet == null) {\n syncStyle.textContent = \"\";\n }\n var sheet = syncStyle.sheet;\n for (var i = sheet.cssRules.length - 1; i >= 0; i--) {\n sheet.deleteRule(i);\n }\n if (syncStylePositionWatcher) {\n syncStylePositionWatcher.run();\n } else {\n syncStylePositionWatcher = watchForNodePosition(\n syncStyle,\n \"prev-sibling\",\n function () {\n forceRenderStyle = true;\n buildOverrides();\n }\n );\n }\n return syncStyle.sheet;\n }\n\n function buildOverrides() {\n var force = forceRenderStyle;\n forceRenderStyle = false;\n sheetModifier.modifySheet({\n prepareSheet: prepareOverridesSheet,\n sourceCSSRules: rules,\n theme: theme,\n variables: variables,\n ignoreImageAnalysis: ignoreImageAnalysis,\n force: force,\n isAsyncCancelled: function () {\n return cancelAsyncOperations;\n },\n });\n }\n\n buildOverrides();\n }\n\n function getRulesOrError() {\n try {\n if (element.sheet == null) {\n return [null, null];\n }\n return [element.sheet.cssRules, null];\n } catch (err) {\n return [null, err];\n }\n }\n\n function isStillLoadingError(error) {\n return error && error.message && error.message.includes(\"loading\");\n }\n\n function safeGetSheetRules() {\n var _a = __read(getRulesOrError(), 2),\n cssRules = _a[0],\n err = _a[1];\n if (err) {\n logWarn(err);\n return null;\n }\n return cssRules;\n }\n\n function watchForSheetChanges() {\n watchForSheetChangesUsingProxy();\n if (!(canOptimizeUsingProxy && element.sheet)) {\n watchForSheetChangesUsingRAF();\n }\n }\n\n var rulesChangeKey = null;\n var rulesCheckFrameId = null;\n\n function getRulesChangeKey() {\n var rules = safeGetSheetRules();\n return rules ? rules.length : null;\n }\n\n function didRulesKeyChange() {\n return getRulesChangeKey() !== rulesChangeKey;\n }\n\n function watchForSheetChangesUsingRAF() {\n rulesChangeKey = getRulesChangeKey();\n stopWatchingForSheetChangesUsingRAF();\n var checkForUpdate = function () {\n if (didRulesKeyChange()) {\n rulesChangeKey = getRulesChangeKey();\n update();\n }\n if (canOptimizeUsingProxy && element.sheet) {\n stopWatchingForSheetChangesUsingRAF();\n return;\n }\n rulesCheckFrameId = requestAnimationFrame(checkForUpdate);\n };\n checkForUpdate();\n }\n\n function stopWatchingForSheetChangesUsingRAF() {\n cancelAnimationFrame(rulesCheckFrameId);\n }\n\n var areSheetChangesPending = false;\n\n function onSheetChange() {\n canOptimizeUsingProxy = true;\n stopWatchingForSheetChangesUsingRAF();\n if (areSheetChangesPending) {\n return;\n }\n\n function handleSheetChanges() {\n areSheetChangesPending = false;\n if (cancelAsyncOperations) {\n return;\n }\n update();\n }\n\n areSheetChangesPending = true;\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(handleSheetChanges);\n } else {\n requestAnimationFrame(handleSheetChanges);\n }\n }\n\n function watchForSheetChangesUsingProxy() {\n element.addEventListener(\"__darkmoder__updateSheet\", onSheetChange);\n }\n\n function stopWatchingForSheetChangesUsingProxy() {\n element.removeEventListener(\"__darkmoder__updateSheet\", onSheetChange);\n }\n\n function stopWatchingForSheetChanges() {\n stopWatchingForSheetChangesUsingProxy();\n stopWatchingForSheetChangesUsingRAF();\n }\n\n function pause() {\n observer.disconnect();\n cancelAsyncOperations = true;\n corsCopyPositionWatcher && corsCopyPositionWatcher.stop();\n syncStylePositionWatcher && syncStylePositionWatcher.stop();\n stopWatchingForSheetChanges();\n }\n\n function destroy() {\n pause();\n removeNode(corsCopy);\n removeNode(syncStyle);\n }\n\n function watch() {\n observer.observe(element, observerOptions);\n if (element instanceof HTMLStyleElement) {\n watchForSheetChanges();\n }\n }\n\n var maxMoveCount = 10;\n var moveCount = 0;\n\n function restore() {\n if (!syncStyle) {\n return;\n }\n moveCount++;\n if (moveCount > maxMoveCount) {\n logWarn(\"Style sheet was moved multiple times\", element);\n return;\n }\n logWarn(\"Restore style\", syncStyle, element);\n var shouldForceRender =\n syncStyle.sheet == null || syncStyle.sheet.cssRules.length > 0;\n insertStyle();\n corsCopyPositionWatcher && corsCopyPositionWatcher.skip();\n syncStylePositionWatcher && syncStylePositionWatcher.skip();\n if (shouldForceRender) {\n forceRenderStyle = true;\n update();\n }\n }\n\n return {\n details: details,\n render: render,\n pause: pause,\n destroy: destroy,\n watch: watch,\n restore: restore,\n };\n }\n\n function linkLoading(link) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n new Promise(function (resolve, reject) {\n var cleanUp = function () {\n link.removeEventListener(\"load\", onLoad);\n link.removeEventListener(\"error\", onError);\n };\n var onLoad = function () {\n cleanUp();\n resolve();\n };\n var onError = function () {\n cleanUp();\n reject(\"Link loading failed \" + link.href);\n };\n link.addEventListener(\"load\", onLoad);\n link.addEventListener(\"error\", onError);\n }),\n ];\n });\n });\n }\n\n function getCSSImportURL(importDeclaration) {\n return getCSSURLValue(importDeclaration.substring(8).replace(/;$/, \"\"));\n }\n\n function loadText(url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!url.startsWith(\"data:\")) return [3, 3];\n return [4, fetch(url)];\n case 1:\n return [4, _a.sent().text()];\n case 2:\n return [2, _a.sent()];\n case 3:\n return [\n 4,\n bgFetch({ url: url, responseType: \"text\", mimeType: \"text/css\" }),\n ];\n case 4:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n function replaceCSSImports(cssText, basePath, cache) {\n if (cache === void 0) {\n cache = new Map();\n }\n return __awaiter(this, void 0, void 0, function () {\n var importMatches,\n importMatches_1,\n importMatches_1_1,\n match,\n importURL,\n absoluteURL,\n importedCSS,\n err_3,\n e_1_1;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n cssText = removeCSSComments(cssText);\n cssText = replaceCSSFontFace(cssText);\n cssText = replaceCSSRelativeURLsWithAbsolute(cssText, basePath);\n importMatches = getMatches(cssImportRegex, cssText);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 10, 11, 12]);\n (importMatches_1 = __values(importMatches)),\n (importMatches_1_1 = importMatches_1.next());\n _b.label = 2;\n case 2:\n if (!!importMatches_1_1.done) return [3, 9];\n match = importMatches_1_1.value;\n importURL = getCSSImportURL(match);\n absoluteURL = getAbsoluteURL(basePath, importURL);\n importedCSS = void 0;\n if (!cache.has(absoluteURL)) return [3, 3];\n importedCSS = cache.get(absoluteURL);\n return [3, 7];\n case 3:\n _b.trys.push([3, 6, , 7]);\n return [4, loadText(absoluteURL)];\n case 4:\n importedCSS = _b.sent();\n cache.set(absoluteURL, importedCSS);\n return [\n 4,\n replaceCSSImports(\n importedCSS,\n getCSSBaseBath(absoluteURL),\n cache\n ),\n ];\n case 5:\n importedCSS = _b.sent();\n return [3, 7];\n case 6:\n err_3 = _b.sent();\n logWarn(err_3);\n importedCSS = \"\";\n return [3, 7];\n case 7:\n cssText = cssText.split(match).join(importedCSS);\n _b.label = 8;\n case 8:\n importMatches_1_1 = importMatches_1.next();\n return [3, 2];\n case 9:\n return [3, 12];\n case 10:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3, 12];\n case 11:\n try {\n if (\n importMatches_1_1 &&\n !importMatches_1_1.done &&\n (_a = importMatches_1.return)\n )\n _a.call(importMatches_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n return [7];\n case 12:\n cssText = cssText.trim();\n return [2, cssText];\n }\n });\n });\n }\n\n function createCORSCopy(srcElement, cssText) {\n if (!cssText) {\n return null;\n }\n var cors = document.createElement(\"style\");\n cors.classList.add(\"darkmoder\");\n cors.classList.add(\"darkmoder--cors\");\n cors.media = \"screen\";\n cors.textContent = cssText;\n srcElement.parentNode.insertBefore(cors, srcElement.nextSibling);\n cors.sheet.disabled = true;\n corsStyleSet.add(cors);\n return cors;\n }\n\n var observers = [];\n var observedRoots;\n var undefinedGroups = new Map();\n var elementsDefinitionCallback;\n\n function collectUndefinedElements(root) {\n if (!isDefinedSelectorSupported) {\n return;\n }\n forEach(root.querySelectorAll(\":not(:defined)\"), function (el) {\n var tag = el.tagName.toLowerCase();\n if (!undefinedGroups.has(tag)) {\n undefinedGroups.set(tag, new Set());\n customElementsWhenDefined(tag).then(function () {\n if (elementsDefinitionCallback) {\n var elements = undefinedGroups.get(tag);\n undefinedGroups.delete(tag);\n elementsDefinitionCallback(Array.from(elements));\n }\n });\n }\n undefinedGroups.get(tag).add(el);\n });\n }\n\n var canOptimizeUsingProxy$1 = false;\n document.addEventListener(\"__darkmoder__inlineScriptsAllowed\", function () {\n canOptimizeUsingProxy$1 = true;\n });\n var resolvers$1 = new Map();\n\n function handleIsDefined(e) {\n canOptimizeUsingProxy$1 = true;\n if (resolvers$1.has(e.detail.tag)) {\n var resolve = resolvers$1.get(e.detail.tag);\n resolve();\n }\n }\n\n function customElementsWhenDefined(tag) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n new Promise(function (resolve) {\n if (\n window.customElements &&\n typeof customElements.whenDefined === \"function\"\n ) {\n customElements.whenDefined(tag).then(resolve);\n } else if (canOptimizeUsingProxy$1) {\n resolvers$1.set(tag, resolve);\n document.dispatchEvent(\n new CustomEvent(\"__darkmoder__addUndefinedResolver\", {\n detail: { tag: tag },\n })\n );\n } else {\n var checkIfDefined_1 = function () {\n var elements = undefinedGroups.get(tag);\n if (elements && elements.size > 0) {\n if (elements.values().next().value.matches(\":defined\")) {\n resolve();\n } else {\n requestAnimationFrame(checkIfDefined_1);\n }\n }\n };\n requestAnimationFrame(checkIfDefined_1);\n }\n }),\n ];\n });\n });\n }\n\n function watchWhenCustomElementsDefined(callback) {\n elementsDefinitionCallback = callback;\n }\n\n function unsubscribeFromDefineCustomElements() {\n elementsDefinitionCallback = null;\n undefinedGroups.clear();\n document.removeEventListener(\"__darkmoder__isDefined\", handleIsDefined);\n }\n\n function watchForStyleChanges(currentStyles, update, shadowRootDiscovered) {\n stopWatchingForStyleChanges();\n var prevStyles = new Set(currentStyles);\n var prevStyleSiblings = new WeakMap();\n var nextStyleSiblings = new WeakMap();\n\n function saveStylePosition(style) {\n prevStyleSiblings.set(style, style.previousElementSibling);\n nextStyleSiblings.set(style, style.nextElementSibling);\n }\n\n function forgetStylePosition(style) {\n prevStyleSiblings.delete(style);\n nextStyleSiblings.delete(style);\n }\n\n function didStylePositionChange(style) {\n return (\n style.previousElementSibling !== prevStyleSiblings.get(style) ||\n style.nextElementSibling !== nextStyleSiblings.get(style)\n );\n }\n\n currentStyles.forEach(saveStylePosition);\n\n function handleStyleOperations(operations) {\n var createdStyles = operations.createdStyles,\n removedStyles = operations.removedStyles,\n movedStyles = operations.movedStyles;\n createdStyles.forEach(function (s) {\n return saveStylePosition(s);\n });\n movedStyles.forEach(function (s) {\n return saveStylePosition(s);\n });\n removedStyles.forEach(function (s) {\n return forgetStylePosition(s);\n });\n createdStyles.forEach(function (s) {\n return prevStyles.add(s);\n });\n removedStyles.forEach(function (s) {\n return prevStyles.delete(s);\n });\n if (createdStyles.size + removedStyles.size + movedStyles.size > 0) {\n update({\n created: Array.from(createdStyles),\n removed: Array.from(removedStyles),\n moved: Array.from(movedStyles),\n updated: [],\n });\n }\n }\n\n function handleMinorTreeMutations(_a) {\n var additions = _a.additions,\n moves = _a.moves,\n deletions = _a.deletions;\n var createdStyles = new Set();\n var removedStyles = new Set();\n var movedStyles = new Set();\n additions.forEach(function (node) {\n return getManageableStyles(node).forEach(function (style) {\n return createdStyles.add(style);\n });\n });\n deletions.forEach(function (node) {\n return getManageableStyles(node).forEach(function (style) {\n return removedStyles.add(style);\n });\n });\n moves.forEach(function (node) {\n return getManageableStyles(node).forEach(function (style) {\n return movedStyles.add(style);\n });\n });\n handleStyleOperations({\n createdStyles: createdStyles,\n removedStyles: removedStyles,\n movedStyles: movedStyles,\n });\n additions.forEach(function (n) {\n iterateShadowHosts(n, subscribeForShadowRootChanges);\n collectUndefinedElements(n);\n });\n }\n\n function handleHugeTreeMutations(root) {\n var styles = new Set(getManageableStyles(root));\n var createdStyles = new Set();\n var removedStyles = new Set();\n var movedStyles = new Set();\n styles.forEach(function (s) {\n if (!prevStyles.has(s)) {\n createdStyles.add(s);\n }\n });\n prevStyles.forEach(function (s) {\n if (!styles.has(s)) {\n removedStyles.add(s);\n }\n });\n styles.forEach(function (s) {\n if (\n !createdStyles.has(s) &&\n !removedStyles.has(s) &&\n didStylePositionChange(s)\n ) {\n movedStyles.add(s);\n }\n });\n handleStyleOperations({\n createdStyles: createdStyles,\n removedStyles: removedStyles,\n movedStyles: movedStyles,\n });\n iterateShadowHosts(root, subscribeForShadowRootChanges);\n collectUndefinedElements(root);\n }\n\n function handleAttributeMutations(mutations) {\n var updatedStyles = new Set();\n var removedStyles = new Set();\n mutations.forEach(function (m) {\n var target = m.target;\n if (target.isConnected) {\n if (shouldManageStyle(target)) {\n updatedStyles.add(target);\n } else if (target instanceof HTMLLinkElement && target.disabled) {\n removedStyles.add(target);\n }\n }\n });\n if (updatedStyles.size + removedStyles.size > 0) {\n update({\n updated: Array.from(updatedStyles),\n created: [],\n removed: Array.from(removedStyles),\n moved: [],\n });\n }\n }\n\n function observe(root) {\n var treeObserver = createOptimizedTreeObserver(root, {\n onMinorMutations: handleMinorTreeMutations,\n onHugeMutations: handleHugeTreeMutations,\n });\n var attrObserver = new MutationObserver(handleAttributeMutations);\n attrObserver.observe(root, {\n attributes: true,\n attributeFilter: [\"rel\", \"disabled\", \"media\"],\n subtree: true,\n });\n observers.push(treeObserver, attrObserver);\n observedRoots.add(root);\n }\n\n function subscribeForShadowRootChanges(node) {\n var shadowRoot = node.shadowRoot;\n if (shadowRoot == null || observedRoots.has(shadowRoot)) {\n return;\n }\n observe(shadowRoot);\n shadowRootDiscovered(shadowRoot);\n }\n\n observe(document);\n iterateShadowHosts(document.documentElement, subscribeForShadowRootChanges);\n watchWhenCustomElementsDefined(function (hosts) {\n var newStyles = [];\n hosts.forEach(function (host) {\n return push(newStyles, getManageableStyles(host.shadowRoot));\n });\n update({ created: newStyles, updated: [], removed: [], moved: [] });\n hosts.forEach(function (host) {\n var shadowRoot = host.shadowRoot;\n if (shadowRoot == null) {\n return;\n }\n subscribeForShadowRootChanges(host);\n iterateShadowHosts(shadowRoot, subscribeForShadowRootChanges);\n collectUndefinedElements(shadowRoot);\n });\n });\n document.addEventListener(\"__darkmoder__isDefined\", handleIsDefined);\n collectUndefinedElements(document);\n }\n\n function resetObservers() {\n observers.forEach(function (o) {\n return o.disconnect();\n });\n observers.splice(0, observers.length);\n observedRoots = new WeakSet();\n }\n\n function stopWatchingForStyleChanges() {\n resetObservers();\n unsubscribeFromDefineCustomElements();\n }\n\n function hexify(number) {\n return (number < 16 ? \"0\" : \"\") + number.toString(16);\n }\n\n function generateUID() {\n return Array.from(crypto.getRandomValues(new Uint8Array(16)))\n .map(function (x) {\n return hexify(x);\n })\n .join(\"\");\n }\n\n var adoptedStyleOverrides = new WeakMap();\n var overrideList = new WeakSet();\n\n function createAdoptedStyleSheetOverride(node) {\n var cancelAsyncOperations = false;\n\n function injectSheet(sheet, override) {\n var newSheets = __spread(node.adoptedStyleSheets);\n var sheetIndex = newSheets.indexOf(sheet);\n var existingIndex = newSheets.indexOf(override);\n if (sheetIndex === existingIndex - 1) {\n return;\n }\n if (existingIndex >= 0) {\n newSheets.splice(existingIndex, 1);\n }\n newSheets.splice(sheetIndex + 1, 0, override);\n node.adoptedStyleSheets = newSheets;\n }\n\n function destroy() {\n cancelAsyncOperations = true;\n var newSheets = __spread(node.adoptedStyleSheets);\n node.adoptedStyleSheets.forEach(function (adoptedStyleSheet) {\n if (overrideList.has(adoptedStyleSheet)) {\n var existingIndex = newSheets.indexOf(adoptedStyleSheet);\n if (existingIndex >= 0) {\n newSheets.splice(existingIndex, 1);\n }\n adoptedStyleOverrides.delete(adoptedStyleSheet);\n overrideList.delete(adoptedStyleSheet);\n }\n });\n node.adoptedStyleSheets = newSheets;\n }\n\n function render(theme, globalVariables, ignoreImageAnalysis) {\n node.adoptedStyleSheets.forEach(function (sheet) {\n if (overrideList.has(sheet)) {\n return;\n }\n var rules = sheet.rules;\n var override = new CSSStyleSheet();\n\n function prepareOverridesSheet() {\n for (var i = override.cssRules.length - 1; i >= 0; i--) {\n override.deleteRule(i);\n }\n injectSheet(sheet, override);\n adoptedStyleOverrides.set(sheet, override);\n overrideList.add(override);\n return override;\n }\n\n var variables = globalVariables;\n getCSSVariables(sheet.cssRules).forEach(function (value, key) {\n return variables.set(key, value);\n });\n var sheetModifier = createStyleSheetModifier();\n sheetModifier.modifySheet({\n prepareSheet: prepareOverridesSheet,\n sourceCSSRules: rules,\n theme: theme,\n variables: variables,\n ignoreImageAnalysis: ignoreImageAnalysis,\n force: false,\n isAsyncCancelled: function () {\n return cancelAsyncOperations;\n },\n });\n });\n }\n\n return {\n render: render,\n destroy: destroy,\n };\n }\n\n function injectProxy() {\n document.dispatchEvent(\n new CustomEvent(\"__darkmoder__inlineScriptsAllowed\")\n );\n var addRuleDescriptor = Object.getOwnPropertyDescriptor(\n CSSStyleSheet.prototype,\n \"addRule\"\n );\n var insertRuleDescriptor = Object.getOwnPropertyDescriptor(\n CSSStyleSheet.prototype,\n \"insertRule\"\n );\n var deleteRuleDescriptor = Object.getOwnPropertyDescriptor(\n CSSStyleSheet.prototype,\n \"deleteRule\"\n );\n var removeRuleDescriptor = Object.getOwnPropertyDescriptor(\n CSSStyleSheet.prototype,\n \"removeRule\"\n );\n var cleanUp = function () {\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"addRule\",\n addRuleDescriptor\n );\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"insertRule\",\n insertRuleDescriptor\n );\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"deleteRule\",\n deleteRuleDescriptor\n );\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"removeRule\",\n removeRuleDescriptor\n );\n document.removeEventListener(\"__darkmoder__cleanUp\", cleanUp);\n document.removeEventListener(\n \"__darkmoder__addUndefinedResolver\",\n function (e) {\n return addUndefinedResolver(e);\n }\n );\n };\n var addUndefinedResolver = function (e) {\n customElements.whenDefined(e.detail.tag).then(function () {\n document.dispatchEvent(\n new CustomEvent(\"__darkmoder__isDefined\", {\n detail: { tag: e.detail.tag },\n })\n );\n });\n };\n document.addEventListener(\"__darkmoder__cleanUp\", cleanUp);\n document.addEventListener(\n \"__darkmoder__addUndefinedResolver\",\n function (e) {\n return addUndefinedResolver(e);\n }\n );\n var updateSheetEvent = new Event(\"__darkmoder__updateSheet\");\n\n function proxyAddRule(selector, style, index) {\n addRuleDescriptor.value.call(this, selector, style, index);\n if (this.ownerNode && !this.ownerNode.classList.contains(\"darkmoder\")) {\n this.ownerNode.dispatchEvent(updateSheetEvent);\n }\n return -1;\n }\n\n function proxyInsertRule(rule, index) {\n var returnValue = insertRuleDescriptor.value.call(this, rule, index);\n if (this.ownerNode && !this.ownerNode.classList.contains(\"darkmoder\")) {\n this.ownerNode.dispatchEvent(updateSheetEvent);\n }\n return returnValue;\n }\n\n function proxyDeleteRule(index) {\n try {\n deleteRuleDescriptor.value.call(this, index);\n } catch (e) {}\n if (this.ownerNode && !this.ownerNode.classList.contains(\"darkmoder\")) {\n this.ownerNode.dispatchEvent(updateSheetEvent);\n }\n }\n\n function proxyRemoveRule(index) {\n removeRuleDescriptor.value.call(this, index);\n if (this.ownerNode && !this.ownerNode.classList.contains(\"darkmoder\")) {\n this.ownerNode.dispatchEvent(updateSheetEvent);\n }\n }\n\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"addRule\",\n Object.assign({}, addRuleDescriptor, { value: proxyAddRule })\n );\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"insertRule\",\n Object.assign({}, insertRuleDescriptor, { value: proxyInsertRule })\n );\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"deleteRule\",\n Object.assign({}, deleteRuleDescriptor, { value: proxyDeleteRule })\n );\n Object.defineProperty(\n CSSStyleSheet.prototype,\n \"removeRule\",\n Object.assign({}, removeRuleDescriptor, { value: proxyRemoveRule })\n );\n }\n\n var variables = new Map();\n var INSTANCE_ID = generateUID();\n var styleManagers = new Map();\n var adoptedStyleManagers = [];\n var filter = null;\n var fixes = null;\n var isIFrame = null;\n\n function createOrUpdateStyle(className, root) {\n if (root === void 0) {\n root = document.head || document;\n }\n var element = root.querySelector(\".\" + className);\n if (!element) {\n element = document.createElement(\"style\");\n element.classList.add(\"darkmoder\");\n element.classList.add(className);\n element.media = \"screen\";\n }\n return element;\n }\n\n function createOrUpdateScript(className, root) {\n if (root === void 0) {\n root = document.head || document;\n }\n var element = root.querySelector(\".\" + className);\n if (!element) {\n element = document.createElement(\"script\");\n element.classList.add(\"darkmoder\");\n element.classList.add(className);\n }\n return element;\n }\n\n var nodePositionWatchers = new Map();\n\n function setupNodePositionWatcher(node, alias) {\n nodePositionWatchers.has(alias) && nodePositionWatchers.get(alias).stop();\n nodePositionWatchers.set(alias, watchForNodePosition(node, \"parent\"));\n }\n\n function stopStylePositionWatchers() {\n forEach(nodePositionWatchers.values(), function (watcher) {\n return watcher.stop();\n });\n nodePositionWatchers.clear();\n }\n\n function createStaticStyleOverrides() {\n var fallbackStyle = createOrUpdateStyle(\"darkmoder--fallback\", document);\n fallbackStyle.textContent = getModifiedFallbackStyle(filter, {\n strict: true,\n });\n document.head.insertBefore(fallbackStyle, document.head.firstChild);\n setupNodePositionWatcher(fallbackStyle, \"fallback\");\n var userAgentStyle = createOrUpdateStyle(\"darkmoder--user-agent\");\n userAgentStyle.textContent = getModifiedUserAgentStyle(\n filter,\n isIFrame,\n filter.styleSystemControls\n );\n document.head.insertBefore(userAgentStyle, fallbackStyle.nextSibling);\n setupNodePositionWatcher(userAgentStyle, \"user-agent\");\n var textStyle = createOrUpdateStyle(\"darkmoder--text\");\n if (filter.useFont || filter.textStroke > 0) {\n textStyle.textContent = createTextStyle(filter);\n } else {\n textStyle.textContent = \"\";\n }\n document.head.insertBefore(textStyle, fallbackStyle.nextSibling);\n setupNodePositionWatcher(textStyle, \"text\");\n var invertStyle = createOrUpdateStyle(\"darkmoder--invert\");\n if (fixes && Array.isArray(fixes.invert) && fixes.invert.length > 0) {\n invertStyle.textContent = [\n fixes.invert.join(\", \") + \" {\",\n \" filter: \" +\n getCSSFilterValue(\n __assign(__assign({}, filter), {\n contrast:\n filter.mode === 0\n ? filter.contrast\n : clamp(filter.contrast - 10, 0, 100),\n })\n ) +\n \" !important;\",\n \"}\",\n ].join(\"\\n\");\n } else {\n invertStyle.textContent = \"\";\n }\n document.head.insertBefore(invertStyle, textStyle.nextSibling);\n setupNodePositionWatcher(invertStyle, \"invert\");\n var inlineStyle = createOrUpdateStyle(\"darkmoder--inline\");\n inlineStyle.textContent = getInlineOverrideStyle();\n document.head.insertBefore(inlineStyle, invertStyle.nextSibling);\n setupNodePositionWatcher(inlineStyle, \"inline\");\n var overrideStyle = createOrUpdateStyle(\"darkmoder--override\");\n overrideStyle.textContent =\n fixes && fixes.css ? replaceCSSTemplates(fixes.css) : \"\";\n document.head.appendChild(overrideStyle);\n setupNodePositionWatcher(overrideStyle, \"override\");\n var variableStyle = createOrUpdateStyle(\"darkmoder--variables\");\n var selectionColors = getSelectionColor(filter);\n var darkSchemeBackgroundColor = filter.darkSchemeBackgroundColor,\n darkSchemeTextColor = filter.darkSchemeTextColor,\n lightSchemeBackgroundColor = filter.lightSchemeBackgroundColor,\n lightSchemeTextColor = filter.lightSchemeTextColor,\n mode = filter.mode;\n var schemeBackgroundColor =\n mode === 0 ? lightSchemeBackgroundColor : darkSchemeBackgroundColor;\n var schemeTextColor =\n mode === 0 ? lightSchemeTextColor : darkSchemeTextColor;\n schemeBackgroundColor = modifyBackgroundColor(\n parse(schemeBackgroundColor),\n filter\n );\n schemeTextColor = modifyForegroundColor(parse(schemeTextColor), filter);\n variableStyle.textContent = [\n \":root {\",\n \" --wp-dark-mode-neutral-background: \" + schemeBackgroundColor + \";\",\n \" --wp-dark-mode-neutral-text: \" + schemeTextColor + \";\",\n \" --wp-dark-mode-selection-background: \" +\n selectionColors.backgroundColorSelection +\n \";\",\n \" --wp-dark-mode-selection-text: \" +\n selectionColors.foregroundColorSelection +\n \";\",\n \"}\",\n ].join(\"\\n\");\n document.head.insertBefore(variableStyle, inlineStyle.nextSibling);\n setupNodePositionWatcher(variableStyle, \"variables\");\n var proxyScript = createOrUpdateScript(\"darkmoder--proxy\");\n proxyScript.textContent = \"(\" + injectProxy + \")()\";\n document.head.insertBefore(proxyScript, variableStyle.nextSibling);\n }\n\n var shadowRootsWithOverrides = new Set();\n\n function createShadowStaticStyleOverrides(root) {\n var inlineStyle = createOrUpdateStyle(\"darkmoder--inline\", root);\n inlineStyle.textContent = getInlineOverrideStyle();\n root.insertBefore(inlineStyle, root.firstChild);\n var overrideStyle = createOrUpdateStyle(\"darkmoder--override\", root);\n overrideStyle.textContent =\n fixes && fixes.css ? replaceCSSTemplates(fixes.css) : \"\";\n root.insertBefore(overrideStyle, inlineStyle.nextSibling);\n shadowRootsWithOverrides.add(root);\n }\n\n function replaceCSSTemplates($cssText) {\n return $cssText.replace(/\\${(.+?)}/g, function (m0, $color) {\n try {\n var color = parseColorWithCache($color);\n return modifyColor(color, filter);\n } catch (err) {\n logWarn(err);\n return $color;\n }\n });\n }\n\n function cleanFallbackStyle() {\n var fallback = document.querySelector(\".darkmoder--fallback\");\n if (fallback) {\n fallback.textContent = \"\";\n }\n }\n\n function getIgnoreImageAnalysisSelectors() {\n return fixes && Array.isArray(fixes.ignoreImageAnalysis)\n ? fixes.ignoreImageAnalysis\n : [];\n }\n\n function createDynamicStyleOverrides() {\n cancelRendering();\n updateVariables(getElementCSSVariables(document.documentElement));\n var allStyles = getManageableStyles(document);\n var newManagers = allStyles\n .filter(function (style) {\n return !styleManagers.has(style);\n })\n .map(function (style) {\n return createManager(style);\n });\n var newVariables = newManagers\n .map(function (manager) {\n return manager.details();\n })\n .filter(function (details) {\n return details && details.variables.size > 0;\n })\n .map(function (_a) {\n var variables = _a.variables;\n return variables;\n });\n if (newVariables.length === 0) {\n styleManagers.forEach(function (manager) {\n return manager.render(\n filter,\n variables,\n getIgnoreImageAnalysisSelectors()\n );\n });\n if (loadingStyles.size === 0) {\n cleanFallbackStyle();\n }\n } else {\n newVariables.forEach(function (variables) {\n return updateVariables(variables);\n });\n throttledRenderAllStyles(function () {\n if (loadingStyles.size === 0) {\n cleanFallbackStyle();\n }\n });\n }\n newManagers.forEach(function (manager) {\n return manager.watch();\n });\n var inlineStyleElements = toArray(\n document.querySelectorAll(INLINE_STYLE_SELECTOR)\n );\n iterateShadowHosts(document.documentElement, function (host) {\n createShadowStaticStyleOverrides(host.shadowRoot);\n var elements = host.shadowRoot.querySelectorAll(INLINE_STYLE_SELECTOR);\n if (elements.length > 0) {\n push(inlineStyleElements, elements);\n }\n });\n var ignoredInlineSelectors =\n fixes && Array.isArray(fixes.ignoreInlineStyle)\n ? fixes.ignoreInlineStyle\n : [];\n inlineStyleElements.forEach(function (el) {\n return overrideInlineStyle(\n el,\n filter,\n getIgnoreImageAnalysisSelectors(),\n ignoredInlineSelectors\n );\n });\n handleAdoptedStyleSheets(document);\n }\n\n var loadingStylesCounter = 0;\n var loadingStyles = new Set();\n\n function createManager(element) {\n var loadingStyleId = ++loadingStylesCounter;\n\n function loadingStart() {\n if (!isDOMReady() || !didDocumentShowUp) {\n loadingStyles.add(loadingStyleId);\n var fallbackStyle = document.querySelector(\".darkmoder--fallback\");\n if (!fallbackStyle.textContent) {\n fallbackStyle.textContent = getModifiedFallbackStyle(filter, {\n strict: false,\n });\n }\n }\n }\n\n function loadingEnd() {\n loadingStyles.delete(loadingStyleId);\n if (loadingStyles.size === 0 && isDOMReady()) {\n cleanFallbackStyle();\n }\n }\n\n function update() {\n var details = manager.details();\n if (!details) {\n return;\n }\n if (details.variables.size === 0) {\n manager.render(filter, variables, getIgnoreImageAnalysisSelectors());\n } else {\n updateVariables(details.variables);\n throttledRenderAllStyles();\n }\n }\n\n var manager = manageStyle(element, {\n update: update,\n loadingStart: loadingStart,\n loadingEnd: loadingEnd,\n });\n styleManagers.set(element, manager);\n return manager;\n }\n\n function updateVariables(newVars) {\n if (newVars.size === 0) {\n return;\n }\n newVars.forEach(function (value, key) {\n variables.set(key, value);\n });\n variables.forEach(function (value, key) {\n variables.set(key, replaceCSSVariables(value, variables));\n });\n }\n\n function removeManager(element) {\n var manager = styleManagers.get(element);\n if (manager) {\n manager.destroy();\n styleManagers.delete(element);\n }\n }\n\n var throttledRenderAllStyles = throttle(function (callback) {\n styleManagers.forEach(function (manager) {\n return manager.render(\n filter,\n variables,\n getIgnoreImageAnalysisSelectors()\n );\n });\n adoptedStyleManagers.forEach(function (manager) {\n return manager.render(\n filter,\n variables,\n getIgnoreImageAnalysisSelectors()\n );\n });\n callback && callback();\n });\n var cancelRendering = function () {\n throttledRenderAllStyles.cancel();\n };\n\n function onDOMReady() {\n if (loadingStyles.size === 0) {\n cleanFallbackStyle();\n }\n }\n\n var documentVisibilityListener = null;\n var didDocumentShowUp = !document.hidden;\n\n function watchForDocumentVisibility(callback) {\n var alreadyWatching = Boolean(documentVisibilityListener);\n documentVisibilityListener = function () {\n if (!document.hidden) {\n stopWatchingForDocumentVisibility();\n callback();\n didDocumentShowUp = true;\n }\n };\n if (!alreadyWatching) {\n document.addEventListener(\"visibilitychange\", documentVisibilityListener);\n }\n }\n\n function stopWatchingForDocumentVisibility() {\n document.removeEventListener(\n \"visibilitychange\",\n documentVisibilityListener\n );\n documentVisibilityListener = null;\n }\n\n function createThemeAndWatchForUpdates() {\n createStaticStyleOverrides();\n\n function runDynamicStyle() {\n createDynamicStyleOverrides();\n watchForUpdates();\n }\n\n if (document.hidden) {\n watchForDocumentVisibility(runDynamicStyle);\n } else {\n runDynamicStyle();\n }\n changeMetaThemeColorWhenAvailable(filter);\n }\n\n function handleAdoptedStyleSheets(node) {\n if (Array.isArray(node.adoptedStyleSheets)) {\n if (node.adoptedStyleSheets.length > 0) {\n var newManger = createAdoptedStyleSheetOverride(node);\n adoptedStyleManagers.push(newManger);\n newManger.render(filter, variables, getIgnoreImageAnalysisSelectors());\n }\n }\n }\n\n function watchForUpdates() {\n var managedStyles = Array.from(styleManagers.keys());\n watchForStyleChanges(\n managedStyles,\n function (_a) {\n var created = _a.created,\n updated = _a.updated,\n removed = _a.removed,\n moved = _a.moved;\n var stylesToRemove = removed;\n var stylesToManage = created\n .concat(updated)\n .concat(moved)\n .filter(function (style) {\n return !styleManagers.has(style);\n });\n var stylesToRestore = moved.filter(function (style) {\n return styleManagers.has(style);\n });\n stylesToRemove.forEach(function (style) {\n return removeManager(style);\n });\n var newManagers = stylesToManage.map(function (style) {\n return createManager(style);\n });\n var newVariables = newManagers\n .map(function (manager) {\n return manager.details();\n })\n .filter(function (details) {\n return details && details.variables.size > 0;\n })\n .map(function (_a) {\n var variables = _a.variables;\n return variables;\n });\n if (newVariables.length === 0) {\n newManagers.forEach(function (manager) {\n return manager.render(\n filter,\n variables,\n getIgnoreImageAnalysisSelectors()\n );\n });\n } else {\n newVariables.forEach(function (variables) {\n return updateVariables(variables);\n });\n throttledRenderAllStyles();\n }\n newManagers.forEach(function (manager) {\n return manager.watch();\n });\n stylesToRestore.forEach(function (style) {\n return styleManagers.get(style).restore();\n });\n },\n function (shadowRoot) {\n createShadowStaticStyleOverrides(shadowRoot);\n handleAdoptedStyleSheets(shadowRoot);\n }\n );\n var ignoredInlineSelectors =\n fixes && Array.isArray(fixes.ignoreInlineStyle)\n ? fixes.ignoreInlineStyle\n : [];\n watchForInlineStyles(\n function (element) {\n overrideInlineStyle(\n element,\n filter,\n ignoredInlineSelectors,\n getIgnoreImageAnalysisSelectors()\n );\n if (element === document.documentElement) {\n var rootVariables = getElementCSSVariables(document.documentElement);\n if (rootVariables.size > 0) {\n updateVariables(rootVariables);\n throttledRenderAllStyles();\n }\n }\n },\n function (root) {\n createShadowStaticStyleOverrides(root);\n var inlineStyleElements = root.querySelectorAll(INLINE_STYLE_SELECTOR);\n if (inlineStyleElements.length > 0) {\n forEach(inlineStyleElements, function (el) {\n return overrideInlineStyle(\n el,\n filter,\n getIgnoreImageAnalysisSelectors(),\n ignoredInlineSelectors\n );\n });\n }\n }\n );\n addDOMReadyListener(onDOMReady);\n }\n\n function stopWatchingForUpdates() {\n styleManagers.forEach(function (manager) {\n return manager.pause();\n });\n stopStylePositionWatchers();\n stopWatchingForStyleChanges();\n stopWatchingForInlineStyles();\n removeDOMReadyListener(onDOMReady);\n }\n\n function createDarkModeInstanceMarker() {\n var metaElement = document.createElement(\"meta\");\n metaElement.name = \"darkmoder\";\n metaElement.content = INSTANCE_ID;\n document.head.appendChild(metaElement);\n }\n\n function isAnotherDarkModeInstanceActive() {\n var meta = document.querySelector('meta[name=\"darkmoder\"]');\n if (meta) {\n if (meta.content !== INSTANCE_ID) {\n return true;\n }\n return false;\n } else {\n createDarkModeInstanceMarker();\n return false;\n }\n }\n\n function createOrUpdateDynamicTheme(filterConfig, dynamicThemeFixes, iframe) {\n filter = filterConfig;\n fixes = dynamicThemeFixes;\n isIFrame = iframe;\n if (document.head) {\n if (isAnotherDarkModeInstanceActive()) {\n return;\n }\n createThemeAndWatchForUpdates();\n } else {\n if (!isFirefox) {\n var fallbackStyle = createOrUpdateStyle(\"darkmoder--fallback\");\n document.documentElement.appendChild(fallbackStyle);\n fallbackStyle.textContent = getModifiedFallbackStyle(filter, {\n strict: true,\n });\n }\n var headObserver_1 = new MutationObserver(function () {\n if (document.head) {\n headObserver_1.disconnect();\n if (isAnotherDarkModeInstanceActive()) {\n removeDynamicTheme();\n return;\n }\n createThemeAndWatchForUpdates();\n }\n });\n headObserver_1.observe(document, { childList: true, subtree: true });\n }\n }\n\n function removeProxy() {\n document.dispatchEvent(new CustomEvent(\"__darkmoder__cleanUp\"));\n removeNode(document.head.querySelector(\".darkmoder--proxy\"));\n }\n\n function removeDynamicTheme() {\n cleanDynamicThemeCache();\n removeNode(document.querySelector(\".darkmoder--fallback\"));\n if (document.head) {\n restoreMetaThemeColor();\n removeNode(document.head.querySelector(\".darkmoder--user-agent\"));\n removeNode(document.head.querySelector(\".darkmoder--text\"));\n removeNode(document.head.querySelector(\".darkmoder--invert\"));\n removeNode(document.head.querySelector(\".darkmoder--inline\"));\n removeNode(document.head.querySelector(\".darkmoder--override\"));\n removeNode(document.head.querySelector('meta[name=\"darkmoder\"]'));\n removeProxy();\n }\n shadowRootsWithOverrides.forEach(function (root) {\n removeNode(root.querySelector(\".darkmoder--inline\"));\n removeNode(root.querySelector(\".darkmoder--override\"));\n });\n shadowRootsWithOverrides.clear();\n forEach(styleManagers.keys(), function (el) {\n return removeManager(el);\n });\n forEach(document.querySelectorAll(\".darkmoder\"), removeNode);\n adoptedStyleManagers.forEach(function (manager) {\n manager.destroy();\n });\n adoptedStyleManagers.splice(0);\n }\n\n function cleanDynamicThemeCache() {\n stopWatchingForDocumentVisibility();\n cancelRendering();\n stopWatchingForUpdates();\n cleanModificationCache();\n }\n\n var blobRegex = /url\\(\\\"(blob\\:.*?)\\\"\\)/g;\n\n function replaceBlobs(text) {\n return __awaiter(this, void 0, void 0, function () {\n var promises, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = [];\n getMatches(blobRegex, text, 1).forEach(function (url) {\n var promise = loadAsDataURL(url);\n promises.push(promise);\n });\n return [4, Promise.all(promises)];\n case 1:\n data = _a.sent();\n return [\n 2,\n text.replace(blobRegex, function () {\n return 'url(\"' + data.shift() + '\")';\n }),\n ];\n }\n });\n });\n }\n\n var banner =\n '/*\\n _______\\n / \\\\\\n .==. .==.\\n (( ))==(( ))\\n / \"==\" \"==\"\\\\\\n /____|| || ||___\\\\\\n ________ ____ ________ ___ ___\\n | ___ \\\\ / \\\\ | ___ \\\\ | | / /\\n | | \\\\ \\\\ / /\\\\ \\\\ | | \\\\ \\\\| |_/ /\\n | | ) / /__\\\\ \\\\ | |__/ /| ___ \\\\\\n | |__/ / ______ \\\\| ____ \\\\| | \\\\ \\\\\\n_______|_______/__/ ____ \\\\__\\\\__|___\\\\__\\\\__|___\\\\__\\\\____\\n| ___ \\\\ | ____/ / \\\\ | ___ \\\\ | ____| ___ \\\\\\n| | \\\\ \\\\| |___ / /\\\\ \\\\ | | \\\\ \\\\| |___| | \\\\ \\\\\\n| |__/ /| ____/ /__\\\\ \\\\ | | ) | ____| |__/ /\\n| ____ \\\\| |__/ ______ \\\\| |__/ /| |___| ____ \\\\\\n|__| \\\\__\\\\____/__/ \\\\__\\\\_______/ |______|__| \\\\__\\\\\\n https://darkmoder.org\\n*/';\n\n function collectCSS() {\n return __awaiter(this, void 0, void 0, function () {\n function addStaticCSS(selector, comment) {\n var staticStyle = document.querySelector(selector);\n if (staticStyle && staticStyle.textContent) {\n css.push(\"/* \" + comment + \" */\");\n css.push(staticStyle.textContent);\n css.push(\"\");\n }\n }\n\n var css, modifiedCSS, formattedCSS, _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n css = [banner];\n addStaticCSS(\".darkmoder--fallback\", \"Fallback Style\");\n addStaticCSS(\".darkmoder--user-agent\", \"User-Agent Style\");\n addStaticCSS(\".darkmoder--text\", \"Text Style\");\n addStaticCSS(\".darkmoder--invert\", \"Invert Style\");\n addStaticCSS(\".darkmoder--variables\", \"Variables Style\");\n modifiedCSS = [];\n document\n .querySelectorAll(\".darkmoder--sync\")\n .forEach(function (element) {\n forEach(element.sheet.cssRules, function (rule) {\n rule && rule.cssText && modifiedCSS.push(rule.cssText);\n });\n });\n if (!(modifiedCSS.length != 0)) return [3, 2];\n formattedCSS = formatCSS(modifiedCSS.join(\"\\n\"));\n css.push(\"/* Modified CSS */\");\n _b = (_a = css).push;\n return [4, replaceBlobs(formattedCSS)];\n case 1:\n _b.apply(_a, [_c.sent()]);\n css.push(\"\");\n _c.label = 2;\n case 2:\n addStaticCSS(\".darkmoder--override\", \"Override Style\");\n return [2, css.join(\"\\n\")];\n }\n });\n });\n }\n\n var isIFrame$1 = (function () {\n try {\n return window.self !== window.top;\n } catch (err) {\n console.warn(err);\n return true;\n }\n })();\n\n function enable(themeOptions, fixes) {\n if (themeOptions === void 0) {\n themeOptions = {};\n }\n if (fixes === void 0) {\n fixes = null;\n }\n var theme = __assign(__assign({}, DEFAULT_THEME), themeOptions);\n if (theme.engine !== ThemeEngines.dynamicTheme) {\n throw new Error(\"Theme engine is not supported.\");\n }\n createOrUpdateDynamicTheme(theme, fixes, isIFrame$1);\n\n exports.enabled = true;\n }\n\n function disable() {\n removeDynamicTheme();\n\n exports.enabled = false;\n }\n\n var darkScheme = matchMedia(\"(prefers-color-scheme: dark)\");\n var store = {\n themeOptions: null,\n fixes: null,\n };\n\n function handleColorScheme() {\n if (darkScheme.matches) {\n enable(store.themeOptions, store.fixes);\n } else {\n disable();\n }\n }\n\n function auto(themeOptions, fixes) {\n if (themeOptions === void 0) {\n themeOptions = {};\n }\n if (fixes === void 0) {\n fixes = null;\n }\n if (themeOptions) {\n store = { themeOptions: themeOptions, fixes: fixes };\n handleColorScheme();\n darkScheme.addEventListener(\"change\", handleColorScheme);\n } else {\n darkScheme.removeEventListener(\"change\", handleColorScheme);\n disable();\n }\n }\n\n function exportGeneratedCSS() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, collectCSS()];\n case 1:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n var setFetchMethod$1 = setFetchMethod;\n\n exports.auto = auto;\n exports.disable = disable;\n exports.enable = enable;\n exports.exportGeneratedCSS = exportGeneratedCSS;\n exports.setFetchMethod = setFetchMethod$1;\n\n Object.defineProperty(exports, \"__esModule\", { value: true });\n});","import Base from './Base';\nimport WPDarkMode from \"./WPDarkMode\";\nimport './DarkModeAuto'\n\nclass Color extends Base {\n\n // Fires when the DOM is ready\n ready() {\n // console.log('Color Ready');\n this.always();\n\n // When automatic mode is enabled\n if ( this.isAutoColor ) {\n const html = document.querySelector('html');\n\n html?.setAttribute('data-wp-dark-mode-loading', true);\n this.applyAutoDark();\n html?.removeAttribute('data-wp-dark-mode-loading');\n } else {\n // Colors need to be fixed when Automatic Mode is disabled\n this.applyPreset();\n }\n }\n\n /**\n * Do always\n */\n always() {\n // Removed loading attribute from html tag\n const html = document.querySelector('html');\n\n html?.removeAttribute('data-wp-dark-mode-loading');\n\n this.handleIncludes();\n this.HandleExcludes();\n }\n\n /**\n * When Automatic Mode is enabled\n *\n * @return {void}\n */\n async applyAutoDark(){\n const FiltersConfig = {\n brightness: wp_dark_mode_json.options.color_filter_brightness || 100,\n contrast: wp_dark_mode_json.options.color_filter_contrast || 90,\n sepia: wp_dark_mode_json.options.color_filter_sepia || 10,\n grayscale: wp_dark_mode_json.options.color_filter_grayscale || 0,\n }\n\n if ( WPDarkMode.isActive ) {\n DarkModeAuto.enable(FiltersConfig, {\n ignoreInlineStyle: '.wp-dark-mode-ignore'\n });\n }\n\n WPDarkMode.onChange(() => {\n // console.log('Dark Mode Changed');\n if ( WPDarkMode.isActive ) {\n DarkModeAuto.enable(FiltersConfig, {\n ignoreInlineStyle: '.wp-dark-mode-ignore'\n });\n } else {\n DarkModeAuto.disable();\n }\n })\n }\n\n\n\n // Get preset id\n get presetId() {\n const target = typeof wp_dark_mode_admin_json !== 'undefined' ? wp_dark_mode_admin_json : wp_dark_mode_json;\n return target?.options?.color_preset_id || false;\n }\n\n /**\n * Is Automatic Color.\n *\n * @return {boolean}\n */\n get isAutoColor() {\n return Number(this.presetId) === 0;\n }\n\n \n /**\n * Apply colors to the elements\n * \n * @param {boolean} isDark \n * @returns \n */\n initHandlers() {\n }\n\n /**\n * Fix colors\n *\n */\n applyPreset(){\n const all = document.querySelectorAll(`body *:not(.wp-dark-mode-ignore), body *:not(.wp-dark-mode-ignore *)`);\n // window.Log('all', all)\n\n if ( ! all || ! all.length) return;\n\n all.forEach(element => {\n\n // Add class .wp-dark-mode-background\n element.classList.add('wp-dark-mode-transparent');\n\n // Is excludable.\n if ( this.shouldIgnore(element) ) {\n\n const backgroundColor = window.getComputedStyle(element).backgroundColor || 'rgba(0, 0, 0, 0)';\n\n // Log('Background Color', backgroundColor) \n\n if ( ! this.isTransparent( backgroundColor ) ) {\n element.classList.add('wp-dark-mode-ignore');\n }\n\n // Log('Should Ignore', element, backgroundColor)\n element.classList.add('wp-dark-mode-transparent');\n\n } else {\n element.classList.remove('wp-dark-mode-transparent');\n }\n })\n }\n\n\t/**\n\t * Handle excludes\n\t */\n\tHandleExcludes() {\n const excludes = (\n wp_dark_mode_json.options.excludes_elements ? wp_dark_mode_json.options.excludes_elements + ',.wp-dark-mode-ignore' : '.wp-dark-mode-ignore'\n ) + ( wp_dark_mode_json.excluded_elements ? ', ' + wp_dark_mode_json.excluded_elements : '' );\n\t\tconst ignorableElements = document.querySelectorAll( excludes );\n\n\t\tif ( ! ignorableElements || ! ignorableElements.length) return;\n\n\t\tignorableElements.forEach(element => {\n\t\t\tconst ignoreRecursively = el => {\n\n\t\t\t\t// Bail, if element is not valid.\n\t\t\t\tif ( ! el ) return;\n\n\t\t\t\t// If el not intance of html.\n\t\t\t\tif ( ! (el instanceof HTMLElement) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n // If element has class .wp-dark-mode-include, return;\n if ( el.classList.contains('wp-dark-mode-include') ) return;\n\n\t\t\t\t// Add class.\n\t\t\t\tel.classList.add('wp-dark-mode-ignore');\n\n\t\t\t\t// if has background color, make it important.\n\t\t\t\tconst { color, borderColor } = window.getComputedStyle(el) || {};\n\n\t\t\t\t// Log('backgroundColor', backgroundColor, color, borderColor);\n\t\t\t\t\n\t\t\t\t// If has color, border color, make it important.\n\t\t\t\tif ( color !== 'rgba(0, 0, 0, 0)' ) {\n\t\t\t\t\tel.style.color = `${color} !important`;\n\t\t\t\t}\n\n\t\t\t\t// If has border color, make it important.\n\t\t\t\tif ( borderColor !== 'rgba(0, 0, 0, 0)' ) {\n\t\t\t\t\tel.style.borderColor = `${borderColor} !important`;\n\t\t\t\t}\n\n\t\t\t\t// if has children, apply recursively.\n\t\t\t\tif ( el.childNodes && el.childNodes.length ) {\n\t\t\t\t\tel.childNodes.forEach(child => {\n\t\t\t\t\t\tignoreRecursively(child);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tignoreRecursively(element);\n\t\t});\n\n\t\treturn this;\n\t}\n\n /**\n * Handle includes\n */\n handleIncludes(){\n const includedElements = document.querySelectorAll( wp_dark_mode_json.options.excludes_elements_includes || '.wp_dark_mode_include' );\n\n\t\tif ( ! includedElements || ! includedElements.length) return;\n\n includedElements.forEach(element => {\n // Add class .wp-dark-mode-include recursively\n const includeRecursively = el => {\n\n // Bail, if element is not valid.\n if ( ! el ) return;\n\n // If el not intance of html.\n if ( ! (el instanceof HTMLElement) ) {\n return;\n }\n\n // Add class.\n el.classList.add('wp-dark-mode-include');\n // Remove class.\n el.classList.remove('wp-dark-mode-ignore');\n\n // if has children, apply recursively.\n if ( el.childNodes && el.childNodes.length ) {\n el.childNodes.forEach(child => {\n includeRecursively(child);\n });\n }\n }\n\n includeRecursively(element);\n });\n }\n\n\n /**\n * isRGB\n *\n * @param {string} color\n * @return {boolean}\n */\n isRGB = color => {\n return color.indexOf('rgb') !== -1;\n }\n\n /**\n * Hex to RGB\n *\n * @param {string} colorString\n * @param {number} alpha\n * @return {string}\n */\n hexToRGB = (colorString, alpha = 1) => {\n\n if ( this.isRGB (colorString) ) return colorString\n\n // Create a temporary div element to apply the color as a style\n const tempDiv = document.createElement(\"div\");\n tempDiv.style.color = colorString;\n\n // Get the computed RGBA value\n const computedColor = window.getComputedStyle(tempDiv).color;\n\n // Parse the RGBA values\n const rgbaValues = computedColor.match(/(\\d+), (\\d+), (\\d+), (\\d+(\\.\\d+)?)\\)/);\n\n if (rgbaValues && rgbaValues.length === 6) {\n const red = parseInt(rgbaValues[1]);\n const green = parseInt(rgbaValues[2]);\n const blue = parseInt(rgbaValues[3]);\n const opacity = alpha !== undefined ? alpha : parseFloat(rgbaValues[4]);\n\n return `rgba(${red}, ${green}, ${blue}, ${opacity})`;\n } else {\n // console.error(`Invalid color string: ${colorString}`);\n return null;\n }\n }\n\n\n /**\n * Get White Percentage\n *\n * @param {string} color\n * @return {boolean}\n */\n luminance = color => {\n // Convert hex to RGB if the color is hex\n if (!this.isRGB(color)) {\n color = this.hexToRgb(color);\n }\n\n // Remove spaces from the color\n color = color.replace(/ /g, '');\n\n // Split the color into array\n color = color.split(',');\n const r = color[0];\n const g = color[1];\n const b = color[2];\n\n // Calculate the luminance\n return (0.299 * r + 0.587 * g + 0.114 * b);\n }\n\n /**\n * Is Dark Color\n * \n *\n * @param {string} color\n * @return {boolean}\n */\n isDarkColor = color => {\n // Log('luminance', this.luminance(color))\n return this.luminance(color) < 190;\n }\n\n /**\n * Get White Percentage\n *\n * @param {string} color\n * @return {number}\n */\n getWhitePercentage = color => {\n // Convert hex to RGB if the color is hex\n if (!this.isRGB(color)) {\n color = this.hexToRgb(color);\n }\n\n // Remove spaces from the color\n color = color.replace(/ /g, '');\n\n // Split the color into array\n color = color.split(',');\n const r = color[0];\n const g = color[1];\n const b = color[2];\n\n // Calculate the white percentage\n return Math.round(((255 - r) + (255 - g) + (255 - b)) / 7.65);\n }\n\n /**\n * Is Transparent\n *\n * @param {string} color\n * @return {boolean}\n */\n isTransparent = color => {\n\n // Bail, if color not set\n if (!color) return true\n\n let rgb = this.hexToRGB(color)\n\n if (!rgb) return true\n\n // Bail, if color is transparent\n if (rgb == 'rgba(0, 0, 0, 0)') return true;\n\n if (rgb == 'rgb(0, 0, 0)') return true;\n\n if (rgb == 'none') return true;\n\n // Remove spaces from the color\n rgb = rgb.replace(/ /g, '');\n\n // Split the color into array\n rgb = rgb.split(',');\n\n // Get the alpha value\n const alpha = parseFloat(rgb[3]);\n\n // Return true if the alpha value is 0\n if (alpha == 0) return true;\n \n\n return false\n }\n\n /**\n * Should Ignore.\n *\n * @param element \n * @return bool\n */\n shouldIgnore = element => {\n // Return true is element is null\n if (!element) return true;\n\n const backgroundColor = window.getComputedStyle(element).backgroundColor || 'rgba(0, 0, 0, 0)';\n\n // Return true if the element has class wp-dark-mode-ignore\n if (element.classList.contains('wp-dark-mode-ignore')) return true;\n\n // Return true if the element has class wp-dark-mode-switch\n if (element.classList.contains('wp-dark-mode-switch')) return true;\n\n // Return true if the element has class wp-dark-mode-background\n if (element.classList.contains('wp-dark-mode-background')) return true;\n\n // Return true if the background color is transparent\n if (this.isTransparent(backgroundColor)) {\n element.classList.add('wp-dark-mode-transparent');\n return true;\n }\n\n // Has background image.\n if (window.getComputedStyle(element).backgroundImage !== 'none') return true;\n\n // Is color darkish, return true.\n if (this.isDarkColor(backgroundColor)) return true;\n\n return false;\n }\n\n}\n\nexport default new Color();","import Base from './Base.js';\n\nclass Images extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.initImages();\n\t}\n\t/**\n\t * Replace images\n\t */\n\tinitImages() {\n\t\t// Set global CSS img opacity inherit\n\t\tdocument.body.style.setProperty('--wp-dark-mode-img-opacity', 1);\n\n\t\tthis.replaceImages();\n\t\tthis.replaceBackgroundImages();\n\t\tthis.excludeFilterImages();\n\n\t\tWPDarkMode.onChange(() => {\n\t\t\tthis.replaceImages();\n\t\t\tthis.replaceBackgroundImages();\n\t\t\tthis.excludeFilterImages();\n\t\t});\n\t}\n\n\treplaceImages() {\n\t\tconst images = document.querySelectorAll('img');\n\t\tif (!images || !images.length) return;\n\n\t\t// Replace images.\n\t\timages.forEach((image) => {\n\t\t\t// Bail, if image src is not set.\n\t\t\tif (!image.src) return;\n\n\t\t\tlet currentSrc = image.dataset.lightSrc || image.src;\n\n\t\t\tif (WPDarkMode.isActive) {\n\t\t\t\tconst darkSrc = this.getDarkSrc(currentSrc);\n\t\t\t\tif (darkSrc) {\n\t\t\t\t\timage.dataset.lightSrc = currentSrc;\n\t\t\t\t\timage.dataset.darkSrc = darkSrc;\n\t\t\t\t\timage.src = darkSrc;\n\t\t\t\t\timage.srcset = darkSrc;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lightSrc = image.dataset.lightSrc;\n\t\t\t\tif (lightSrc) {\n\t\t\t\t\timage.src = lightSrc;\n\t\t\t\t\timage.srcset = lightSrc;\n\t\t\t\t}\n\t\t\t}\n\n\t\t});\n\t}\n\n\t// Background images\n\treplaceBackgroundImages() {\n\t\t// element having background image.\n\t\tvar elementsWithBackground = document.querySelectorAll('*');\n\n\t\t// Iterate through the selected elements\n\t\telementsWithBackground.forEach((element) => {\n\t\t\t// Check if the element has a background image\n\t\t\tvar backgroundImage = window.getComputedStyle(element).getPropertyValue('background-image');\n\t\t\t\n\t\t\tif (backgroundImage !== 'none') {\n\n\t\t\t\tbackgroundImage = backgroundImage.replace(/url\\((['\"])?(.*?)\\1\\)/gi, '$2').split(',')[0];\n\t\t\t\t// console.log(\"Found backgroundImage\", element);\n\n\t\t\t\t// Add wp-dark-mode-ignore class.\n\t\t\t\telement.classList.add('wp-dark-mode-ignore');\n\n\t\t\t\t// Log('backgroundImage', backgroundImage)\n\t\t\t\t// change the background image to dark mode if dark mode is enabled\n\t\t\t\tif (WPDarkMode.isActive) {\n\t\t\t\t\tconst darkSrc = this.getDarkSrc(backgroundImage);\n\n\t\t\t\t\t// console.log('darkSrc', darkSrc);\n\n\t\t\t\t\tif (darkSrc) {\n\t\t\t\t\t\telement.style.background = `url(${darkSrc})`;\n\t\t\t\t\t\telement.style.backgroundImage = `url(${darkSrc})`;\n\n\t\t\t\t\t\t// Set light src.\n\t\t\t\t\t\telement.dataset.lightSrc = baPckgroundImage;\n\t\t\t\t\t\telement.dataset.darkSrc = darkSrc;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// change the background image to light mode if dark mode is disabled\n\t\t\t\t\tconst lightSrc = element.dataset.lightSrc;\n\t\t\t\t\tif (lightSrc) {\n\t\t\t\t\t\telement.style.background = `url(${lightSrc})`;\n\t\t\t\t\t\telement.style.backgroundImage = `url(${lightSrc})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Get dark src\n\t * \n\t * @param {string} src \n\t * @returns \n\t */\n\tgetDarkSrc(src) {\n\t\t// Bail, if src is not set.\n\t\tif (!src) return;\n\n\t\tconst replaceable_images = wp_dark_mode_json.options.image_replaces || false;\n\t\tif (!replaceable_images) return false\n\n\t\tconst imagePair = replaceable_images.find((img) => {\n\t\t\t// remove query string from image src\n\t\t\tconst srcWithoutQuery = src.split('?')[0];\n\n\t\t\treturn img.light === srcWithoutQuery\n\t\t});\n\n\t\tif (!imagePair) return false\n\n\t\treturn imagePair.dark;\n\t}\n\n\t/**\n\t * Exclude low brightness images\n\t */\n\texcludeFilterImages() {\n\t\tconst lowBrightnessExcludes = wp_dark_mode_json.options.image_enabled_low_brightness ? wp_dark_mode_json.options.image_low_brightness_excludes : false;\n\t\tconst lowGrayscaleExcludes = wp_dark_mode_json.options.image_enabled_low_grayscale ? wp_dark_mode_json.options.image_low_grayscale_excludes : false\n\n\t\tconst images = document.querySelectorAll('img');\n\n\t\tif( images && images.length ) {\n\t\t\timages.forEach((image) => {\n\t\t\t\tconst src = image.src;\n\t\n\t\t\t\tif( lowBrightnessExcludes && lowBrightnessExcludes.includes(src) ) {\n\t\t\t\t\t// Set filter to 0.\n\t\t\t\t\timage.style.setProperty('--wp-dark-mode-img-brightness', '100%');\n\t\t\t\t}\n\t\n\t\t\t\tif( lowGrayscaleExcludes && lowGrayscaleExcludes.includes(src) ) {\n\t\t\t\t\t// Set filter to 0.\n\t\t\t\t\timage.style.setProperty('--wp-dark-mode-img-grayscale', '0%');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t}\n\n}\n\nexport default new Images();","import Base from './Base';\n\nclass Videos extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.initVideos();\n\t}\n\n\t// Detect video host\n\tgetVideoHost = url => {\n\t\t// Regular expression for YouTube URLs\n\t\tconst youtubeRegex = /^(https?:\\/\\/)?(www\\.)?(youtube\\.com\\/(watch\\?v=|embed\\/)|youtu\\.be\\/)[\\w-]+/;\n\t\t// Regular expression for Vimeo URLs\n\t\tconst vimeoRegex = /^(https?:\\/\\/)?(www\\.)?(player\\.)?vimeo\\.com\\/(video\\/)?\\d+/;\n\t\t// Regular expression for common video file extensions\n\t\tconst videoFileRegex = /\\.(mp4|avi|mov|flv|wmv|webm|m4v|mkv|mpg|mpeg|vob|asf|divx|ogv|3gp)$/i;\n\n\n\t\tif (youtubeRegex.test(url)) {\n\t\t\treturn 'youtube';\n\t\t} else if (vimeoRegex.test(url)) {\n\t\t\treturn 'vimeo';\n\t\t} else if (videoFileRegex.test(url)) {\n\t\t\treturn 'file';\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\t/**\n\t * Get YouTube video ID\n\t*/\n\tgetYouTubeVideoID = url => {\n\t\t// Regular expression for extracting the YouTube video ID\n\t\tconst regex = /(?:youtube\\.com\\/(?:[^\\/\\n\\s]+\\/\\S+\\/|(?:v|e(?:mbed)?)\\/|.*[?&]v=)|youtu\\.be\\/)([^\"&?\\/\\s]{11})/i;\n\n\t\tconst match = url.match(regex);\n\t\treturn match ? match[1] : null;\n\t}\n\n\t// Get Vimeo video ID\n\tgetVimeoVideoID = url => {\n\t\t// Regular expression for extracting the Vimeo video ID\n\t\tconst regex = /(?:vimeo\\.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/[^\\/]+\\/videos\\/|album\\/\\d+\\/video\\/|video\\/|)(\\d+)|vimeo\\.com\\/(?:\\w*\\/)?(\\d+))/i;\n\n\t\tconst match = url.match(regex);\n\t\treturn match ? match[1] || match[2] : null;\n\t}\n\n\t/**\n\t * Replace videos\n\t */\n\tinitVideos() {\n\t\t// Bail, if no videos are replaceable.\n\t\tif (!wp_dark_mode_json.options.video_replaces) return false\n\n\t\t// Manipulate wp_dark_mode_json.options.video_replaces\n\t\twp_dark_mode_json.options.video_replaces = wp_dark_mode_json.options.video_replaces.map((vid) => {\n\n\t\t\t['light', 'dark'].forEach((mode) => {\n\t\t\t\t// Get video host.\n\t\t\t\tconst host = this.getVideoHost(vid[mode]);\n\n\t\t\t\t// If YouTube, get video ID and construct dark mode video src correctly.\n\t\t\t\tif ('youtube' === host) {\n\t\t\t\t\tconst videoID = this.getYouTubeVideoID(vid[mode]);\n\t\t\t\t\tif (!videoID) return;\n\n\t\t\t\t\tvid[mode] = `https://www.youtube.com/embed/${videoID}`;\n\t\t\t\t}\n\n\t\t\t\t// If Vimeo, get video ID and construct dark mode video src correctly.\n\t\t\t\tif ('vimeo' === host) {\n\t\t\t\t\tconst videoID = this.getVimeoVideoID(vid[mode]);\n\t\t\t\t\tif (!videoID) return;\n\n\t\t\t\t\tvid[mode] = `https://player.vimeo.com/video/${videoID}`;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn vid;\n\t\t});\n\n\t\t// Set global CSS vid opacity inherit\n\t\tdocument.body.style.setProperty('--wp-dark-mode-vid-opacity', 1);\n\n\t\t// Get all embedded video files.\n\t\tthis.replaceVideos();\n\t\tthis.adjustEmbeds();\n\t\tthis.setVideoFilters();\n\n\t\t// Replace external hosted videos.\n\t\t// this.\n\n\n\t\tWPDarkMode.onChange(() => {\n\t\t\tthis.replaceVideos();\n\t\t\tthis.setVideoFilters();\n\t\t});\n\t}\n\n\t/**\n\t * Replaces Direct Videos from URL\n\t */\n\treplaceVideos() {\n\t\tconst videos = document.querySelectorAll('video, iframe, video source');\n\n\t\t// Bail, if videos are not set.\n\t\tif (!videos || !videos.length) return;\n\n\t\t// Replace videos.\n\t\tvideos.forEach((video) => {\n\t\t\t// Bail, if video src is not set.\n\t\t\tif (!video.src) return;\n\n\t\t\tlet currentSrc = video.dataset.lightSrc || video.src;\n\n\n\t\t\t// Add wp-dark-mode-ignore class.\n\t\t\tvideo.classList.add('wp-dark-mode-ignore');\n\n\t\t\tif (WPDarkMode.isActive) {\n\t\t\t\tconst darkSrc = this.getDarkSrc(currentSrc);\n\t\t\t\tif (darkSrc) {\n\t\t\t\t\tvideo.dataset.lightSrc = currentSrc;\n\t\t\t\t\tvideo.dataset.darkSrc = darkSrc;\n\t\t\t\t\tvideo.src = darkSrc;\n\t\t\t\t\tvideo.srcset = darkSrc;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst lightSrc = video.dataset.lightSrc;\n\t\t\t\tif (lightSrc) {\n\t\t\t\t\tvideo.src = lightSrc;\n\t\t\t\t\tvideo.srcset = lightSrc;\n\t\t\t\t}\n\t\t\t}\n\n\t\t});\n\t}\n\n\t/**\n\t * Get dark src\n\t * \n\t * @param {string} src \n\t * @returns \n\t */\n\tgetDarkSrc(src = null) {\n\t\t// Bail, if src is not set.\n\t\tif (!src) return;\n\n\t\tconst replaceable_videos = wp_dark_mode_json.options.video_replaces || false;\n\t\tif (!replaceable_videos) return false\n\n\t\tconst videoPair = replaceable_videos.find((vid) => {\n\t\t\t// remove query string from video src\n\t\t\tconst srcWithoutQuery = src.split('?')[0];\n\n\t\t\treturn vid.light === srcWithoutQuery\n\t\t});\n\n\t\tif (!videoPair) return false\n\n\t\treturn videoPair.dark;\n\t}\n\n\t/**\n\t * Adjust embeds\n\t * \n\t */\n\tadjustEmbeds(){\n\t\t// detect all the embeds iframe videos from YouTube and Vimeo\n\t\tconst embeds = document.querySelectorAll('iframe');\n\n\t\t// Bail, if embeds are not set.\n\t\tif (!embeds || !embeds.length) return;\n\n\t\t// Filter embeds.\n\t\tconst embeddedVideos = Array.from(embeds).filter((embed) => {\n\t\t\t// Bail, if embed src is not set.\n\t\t\tif (!embed.src) return false;\n\n\t\t\t// Get video host.\n\t\t\tconst host = this.getVideoHost(embed.src);\n\n\t\t\t// If YouTube or Vimeo, return embed.\n\t\t\tif ('youtube' === host || 'vimeo' === host || 'file' === host) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t});\n\n\t\t// Bail, if no embeds are found.\n\t\tif (!embeddedVideos || !embeddedVideos.length) return;\n\n\t\tembeddedVideos.forEach((embed) => {\n\t\t\tif ( !embed || !embed.style ) return;\n\t\t\tembed.style.filter = 'brightness(var(--wp-dark-mode-video-brightness, 100%)) grayscale(var(--wp-dark-mode-video-grayscale, 0%))';\n\t\t});\n\t}\n\n\n\t/**\n\t * Exclude low brightness videos\n\t */\n\tsetVideoFilters() {\n\t\t// Log('Filtering');\n\t\tconst lowBrightnessExcludes = wp_dark_mode_json.options.video_enabled_low_brightness ? wp_dark_mode_json.options.video_low_brightness_excludes : [];\n\t\tconst lowGrayscaleExcludes = wp_dark_mode_json.options.video_enabled_low_grayscale ? wp_dark_mode_json.options.video_low_grayscale_excludes : []\n\n\t\tconst videos = document.querySelectorAll('video, iframe, video source');\n\n\t\tif(videos && videos.length) {\n\t\t\tvideos.forEach((video) => {\n\t\t\t\tconst src = video.src;\n\n\t\t\t\t// Log('video src', src);\n\t\n\t\t\t\tif( lowBrightnessExcludes && lowBrightnessExcludes.includes(src) ) {\n\t\t\t\t\tvideo?.style.setProperty('--wp-dark-mode-video-brightness', '100%');\n\t\t\t\t}\n\t\n\t\t\t\tif( lowGrayscaleExcludes && lowGrayscaleExcludes.includes(src) ) {\n\t\t\t\t\tvideo?.style.setProperty('--wp-dark-mode-video-grayscale', '0');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t}\n\n}\n\nexport default new Videos();","/*\n (c) 2011-2015, Vladimir Agafonkin\n SunCalc is a JavaScript library for calculating sun/moon position and light phases.\n https://github.com/mourner/suncalc\n*/\n\n(function () { 'use strict';\n\n// shortcuts for easier to read formulas\n\nvar PI = Math.PI,\n sin = Math.sin,\n cos = Math.cos,\n tan = Math.tan,\n asin = Math.asin,\n atan = Math.atan2,\n acos = Math.acos,\n rad = PI / 180;\n\n// sun calculations are based on http://aa.quae.nl/en/reken/zonpositie.html formulas\n\n\n// date/time constants and conversions\n\nvar dayMs = 1000 * 60 * 60 * 24,\n J1970 = 2440588,\n J2000 = 2451545;\n\nfunction toJulian(date) { return date.valueOf() / dayMs - 0.5 + J1970; }\nfunction fromJulian(j) { return new Date((j + 0.5 - J1970) * dayMs); }\nfunction toDays(date) { return toJulian(date) - J2000; }\n\n\n// general calculations for position\n\nvar e = rad * 23.4397; // obliquity of the Earth\n\nfunction rightAscension(l, b) { return atan(sin(l) * cos(e) - tan(b) * sin(e), cos(l)); }\nfunction declination(l, b) { return asin(sin(b) * cos(e) + cos(b) * sin(e) * sin(l)); }\n\nfunction azimuth(H, phi, dec) { return atan(sin(H), cos(H) * sin(phi) - tan(dec) * cos(phi)); }\nfunction altitude(H, phi, dec) { return asin(sin(phi) * sin(dec) + cos(phi) * cos(dec) * cos(H)); }\n\nfunction siderealTime(d, lw) { return rad * (280.16 + 360.9856235 * d) - lw; }\n\nfunction astroRefraction(h) {\n if (h < 0) // the following formula works for positive altitudes only.\n h = 0; // if h = -0.08901179 a div/0 would occur.\n\n // formula 16.4 of \"Astronomical Algorithms\" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.\n // 1.02 / tan(h + 10.26 / (h + 5.10)) h in degrees, result in arc minutes -> converted to rad:\n return 0.0002967 / Math.tan(h + 0.00312536 / (h + 0.08901179));\n}\n\n// general sun calculations\n\nfunction solarMeanAnomaly(d) { return rad * (357.5291 + 0.98560028 * d); }\n\nfunction eclipticLongitude(M) {\n\n var C = rad * (1.9148 * sin(M) + 0.02 * sin(2 * M) + 0.0003 * sin(3 * M)), // equation of center\n P = rad * 102.9372; // perihelion of the Earth\n\n return M + C + P + PI;\n}\n\nfunction sunCoords(d) {\n\n var M = solarMeanAnomaly(d),\n L = eclipticLongitude(M);\n\n return {\n dec: declination(L, 0),\n ra: rightAscension(L, 0)\n };\n}\n\n\nvar SunCalc = {};\n\n\n// calculates sun position for a given date and latitude/longitude\n\nSunCalc.getPosition = function (date, lat, lng) {\n\n var lw = rad * -lng,\n phi = rad * lat,\n d = toDays(date),\n\n c = sunCoords(d),\n H = siderealTime(d, lw) - c.ra;\n\n return {\n azimuth: azimuth(H, phi, c.dec),\n altitude: altitude(H, phi, c.dec)\n };\n};\n\n\n// sun times configuration (angle, morning name, evening name)\n\nvar times = SunCalc.times = [\n [-0.833, 'sunrise', 'sunset' ],\n [ -0.3, 'sunriseEnd', 'sunsetStart' ],\n [ -6, 'dawn', 'dusk' ],\n [ -12, 'nauticalDawn', 'nauticalDusk'],\n [ -18, 'nightEnd', 'night' ],\n [ 6, 'goldenHourEnd', 'goldenHour' ]\n];\n\n// adds a custom time to the times config\n\nSunCalc.addTime = function (angle, riseName, setName) {\n times.push([angle, riseName, setName]);\n};\n\n\n// calculations for sun times\n\nvar J0 = 0.0009;\n\nfunction julianCycle(d, lw) { return Math.round(d - J0 - lw / (2 * PI)); }\n\nfunction approxTransit(Ht, lw, n) { return J0 + (Ht + lw) / (2 * PI) + n; }\nfunction solarTransitJ(ds, M, L) { return J2000 + ds + 0.0053 * sin(M) - 0.0069 * sin(2 * L); }\n\nfunction hourAngle(h, phi, d) { return acos((sin(h) - sin(phi) * sin(d)) / (cos(phi) * cos(d))); }\nfunction observerAngle(height) { return -2.076 * Math.sqrt(height) / 60; }\n\n// returns set time for the given sun altitude\nfunction getSetJ(h, lw, phi, dec, n, M, L) {\n\n var w = hourAngle(h, phi, dec),\n a = approxTransit(w, lw, n);\n return solarTransitJ(a, M, L);\n}\n\n\n// calculates sun times for a given date, latitude/longitude, and, optionally,\n// the observer height (in meters) relative to the horizon\n\nSunCalc.getTimes = function (date, lat, lng, height) {\n\n height = height || 0;\n\n var lw = rad * -lng,\n phi = rad * lat,\n\n dh = observerAngle(height),\n\n d = toDays(date),\n n = julianCycle(d, lw),\n ds = approxTransit(0, lw, n),\n\n M = solarMeanAnomaly(ds),\n L = eclipticLongitude(M),\n dec = declination(L, 0),\n\n Jnoon = solarTransitJ(ds, M, L),\n\n i, len, time, h0, Jset, Jrise;\n\n\n var result = {\n solarNoon: fromJulian(Jnoon),\n nadir: fromJulian(Jnoon - 0.5)\n };\n\n for (i = 0, len = times.length; i < len; i += 1) {\n time = times[i];\n h0 = (time[0] + dh) * rad;\n\n Jset = getSetJ(h0, lw, phi, dec, n, M, L);\n Jrise = Jnoon - (Jset - Jnoon);\n\n result[time[1]] = fromJulian(Jrise);\n result[time[2]] = fromJulian(Jset);\n }\n\n return result;\n};\n\n\n// moon calculations, based on http://aa.quae.nl/en/reken/hemelpositie.html formulas\n\nfunction moonCoords(d) { // geocentric ecliptic coordinates of the moon\n\n var L = rad * (218.316 + 13.176396 * d), // ecliptic longitude\n M = rad * (134.963 + 13.064993 * d), // mean anomaly\n F = rad * (93.272 + 13.229350 * d), // mean distance\n\n l = L + rad * 6.289 * sin(M), // longitude\n b = rad * 5.128 * sin(F), // latitude\n dt = 385001 - 20905 * cos(M); // distance to the moon in km\n\n return {\n ra: rightAscension(l, b),\n dec: declination(l, b),\n dist: dt\n };\n}\n\nSunCalc.getMoonPosition = function (date, lat, lng) {\n\n var lw = rad * -lng,\n phi = rad * lat,\n d = toDays(date),\n\n c = moonCoords(d),\n H = siderealTime(d, lw) - c.ra,\n h = altitude(H, phi, c.dec),\n // formula 14.1 of \"Astronomical Algorithms\" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.\n pa = atan(sin(H), tan(phi) * cos(c.dec) - sin(c.dec) * cos(H));\n\n h = h + astroRefraction(h); // altitude correction for refraction\n\n return {\n azimuth: azimuth(H, phi, c.dec),\n altitude: h,\n distance: c.dist,\n parallacticAngle: pa\n };\n};\n\n\n// calculations for illumination parameters of the moon,\n// based on http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mphase.pro formulas and\n// Chapter 48 of \"Astronomical Algorithms\" 2nd edition by Jean Meeus (Willmann-Bell, Richmond) 1998.\n\nSunCalc.getMoonIllumination = function (date) {\n\n var d = toDays(date || new Date()),\n s = sunCoords(d),\n m = moonCoords(d),\n\n sdist = 149598000, // distance from Earth to Sun in km\n\n phi = acos(sin(s.dec) * sin(m.dec) + cos(s.dec) * cos(m.dec) * cos(s.ra - m.ra)),\n inc = atan(sdist * sin(phi), m.dist - sdist * cos(phi)),\n angle = atan(cos(s.dec) * sin(s.ra - m.ra), sin(s.dec) * cos(m.dec) -\n cos(s.dec) * sin(m.dec) * cos(s.ra - m.ra));\n\n return {\n fraction: (1 + cos(inc)) / 2,\n phase: 0.5 + 0.5 * inc * (angle < 0 ? -1 : 1) / Math.PI,\n angle: angle\n };\n};\n\n\nfunction hoursLater(date, h) {\n return new Date(date.valueOf() + h * dayMs / 24);\n}\n\n// calculations for moon rise/set times are based on http://www.stargazing.net/kepler/moonrise.html article\n\nSunCalc.getMoonTimes = function (date, lat, lng, inUTC) {\n var t = new Date(date);\n if (inUTC) t.setUTCHours(0, 0, 0, 0);\n else t.setHours(0, 0, 0, 0);\n\n var hc = 0.133 * rad,\n h0 = SunCalc.getMoonPosition(t, lat, lng).altitude - hc,\n h1, h2, rise, set, a, b, xe, ye, d, roots, x1, x2, dx;\n\n // go in 2-hour chunks, each time seeing if a 3-point quadratic curve crosses zero (which means rise or set)\n for (var i = 1; i <= 24; i += 2) {\n h1 = SunCalc.getMoonPosition(hoursLater(t, i), lat, lng).altitude - hc;\n h2 = SunCalc.getMoonPosition(hoursLater(t, i + 1), lat, lng).altitude - hc;\n\n a = (h0 + h2) / 2 - h1;\n b = (h2 - h0) / 2;\n xe = -b / (2 * a);\n ye = (a * xe + b) * xe + h1;\n d = b * b - 4 * a * h1;\n roots = 0;\n\n if (d >= 0) {\n dx = Math.sqrt(d) / (Math.abs(a) * 2);\n x1 = xe - dx;\n x2 = xe + dx;\n if (Math.abs(x1) <= 1) roots++;\n if (Math.abs(x2) <= 1) roots++;\n if (x1 < -1) x1 = x2;\n }\n\n if (roots === 1) {\n if (h0 < 0) rise = i + x1;\n else set = i + x1;\n\n } else if (roots === 2) {\n rise = i + (ye < 0 ? x2 : x1);\n set = i + (ye < 0 ? x1 : x2);\n }\n\n if (rise && set) break;\n\n h0 = h2;\n }\n\n var result = {};\n\n if (rise) result.rise = hoursLater(t, rise);\n if (set) result.set = hoursLater(t, set);\n\n if (!rise && !set) result[ye > 0 ? 'alwaysUp' : 'alwaysDown'] = true;\n\n return result;\n};\n\n\n// export as Node module / AMD module / browser variable\nif (typeof exports === 'object' && typeof module !== 'undefined') module.exports = SunCalc;\nelse if (typeof define === 'function' && define.amd) define(SunCalc);\nelse window.SunCalc = SunCalc;\n\n}());\n","import WPDarkMode from \"./WPDarkMode\";\nimport Store from \"./Store\";\nimport Accessibility from \"./Accessibility\";\nimport Color from \"./Color\";\nimport Base from \"./Base\";\nimport Image from \"./Images\";\nimport Video from \"./Videos\";\nimport SunCalc from \"suncalc\";\n\nclass DarkModeApp extends Base {\n\n\t/**\n\t * Events\n\t */\n\tasync events() {\n\t\t// Sync storages.\n\t\tthis.syncStorage();\n\n\t\t// Try applying dark mode.\n\t\tthis.tryApplyingDarkMode();\n\n\t\t// Register event listeners.\n\t\tthis.registerEvents();\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Get user choice.\n\t *\n\t * @return {string}\n\t */\n\tget hasUserChoice() {\n\t\treturn null !== Store.get('choice');\n\t}\n\n\t/**\n\t * Sync storages\n\t */\n\tsyncStorage() {\n\t\t/**\n\t\t * Device preference for dark mode\n\t\t */\n\t\tStore.set('device', WPDarkMode.isDeviceDark ? 'dark' : 'light');\n\n\t\t/**\n\t\t * These are premium features\n\t\t */\n\t\tif (!this.isPremium) return;\n\n\t\t/**\n\t\t * Timezone of device, used for Time based dark mode\n\t\t */\n\t\tlet timeZoneOffset = (new Date().getTimezoneOffset() / 60);\n\n\t\t// Add + sign if offset is negative. Add - sign if offset is positive.\n\t\tif (timeZoneOffset > 0) {\n\t\t\ttimeZoneOffset = '-' + timeZoneOffset;\n\t\t} else {\n\t\t\ttimeZoneOffset = '+' + Math.abs(Number(timeZoneOffset));\n\t\t}\n\n\t\tStore.set('timezone', timeZoneOffset);\n\n\t\t/**\n\t\t * Location of device, used for sunset based dark mode\n\t\t * Ask, only if sunset mode is enabled.\n\t\t */\n\t\tif (wp_dark_mode_json.options.frontend_mode === 'sunset') {\n\t\t\tthis.syncDeviceLocation()\n\t\t}\n\t}\n\n\t/**\n\t * Update device location\n\t */\n\tasync syncDeviceLocation() {\n\n\t\t// Check if location was updated in last 24 hours.\n\t\tconst locationUpdated = Store.get('location-updated');\n\n\t\t// Bail if location was updated in last 24 hours.\n\t\tif (locationUpdated) {\n\t\t\tif (((new Date()) - (new Date().setTime(locationUpdated))) < (24 * 60 * 60 * 1000)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Bail, if navigator is not available or geolocation is not supported.\n\t\tif (!navigator || !navigator.geolocation) {\n\t\t\treturn;\n\t\t}\n\n\t\tnavigator.geolocation.getCurrentPosition((position) => {\n\t\t\t// Save location for dark mode.\n\t\t\tStore.set('location', position.coords.latitude + ',' + position.coords.longitude);\n\n\t\t\t// Save location update time.\n\t\t\tStore.set('location-updated', new Date().getTime());\n\n\t\t\t// Apply sunset mode if it is enabled.\n\t\t\tif ( wp_dark_mode_json.options.frontend_mode === 'sunset' && this.isPremium ) {\n\t\t\t\tthis.applySunsetMode();\n\t\t\t}\n\t\t});\n\n\t}\n\n\t/**\n\t * Register event listeners\n\t */\n\tregisterEvents() {\n\n\t\t// Adjust presets, colors, exclude elements, etc.\n\t\tColor.init();\n\n\t\tAccessibility.init();\n\n\t\t// Replace images.\n\t\tImage.init();\n\n\t\t// Replace videos.\n\t\tVideo.init();\n\n\t\t// Track device settings.\n\t\tthis.followDevice();\n\t}\n\n\t/**\n\t * Listen for device dark mode change\n\t */\n\tfollowDevice() {\n\t\t// Bail, if dark mode is not following device mode.\n\t\tif (wp_dark_mode_json.options.frontend_mode !== 'device') return;\n\n\t\t// Bail, if device mode change is not supported.\n\t\tif (!window || !window.matchMedia) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaQuery = matchMedia('(prefers-color-scheme: dark)');\n\n\t\tif (!mediaQuery) return false;\n\n\t\tconst checkSystemMode = () => {\n\t\t\t// React to device preference change.\n\t\t\tif (mediaQuery.matches) {\n\t\t\t\tWPDarkMode.activate();\n\t\t\t} else {\n\t\t\t\tWPDarkMode.deactivate();\n\t\t\t}\n\t\t}\n\n\t\tmediaQuery.addEventListener('change', function () {\n\n\t\t\t// Update user device preference.\n\t\t\tStore.set('device', mediaQuery.matches ? 'dark' : 'light');\n\n\t\t\t// React to device preference change.\n\n\t\t\t// Bail, if user choice is set.\n\t\t\tif (Store.get('choice') !== null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcheckSystemMode()\n\t\t});\n\n\t\t// Check system mode on load.\n\t\tif (!WPDarkMode.isActive && !this.hasUserChoice) {\n\t\t\tcheckSystemMode()\n\t\t}\n\t}\n\n\t/**\n\t * Try applying dark mode.\n\t *\n\t * @return {Promise}\n\t * @private\n\t */\n\tasync tryApplyingDarkMode() {\n\n\t\treturn new Promise(async (resolve) => {\n\n\t\t\t// Bail, if caching is not excluded.\n\t\t\tconst res = await fetch( wp_dark_mode_json.url.ajax + '?action=wp_dark_mode_options&nonce=' + wp_dark_mode_json.nonce)\n\t\t\tconst data = await res.json()\n\n\t\t\tif ( ! this.isTrue( data.data.performance_exclude_cache ) ) {\n\t\t\t\tresolve(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Bail, if current page is excluded from dark mode.\n\t\t\tif ( ! this.isTrue( wp_dark_mode_json.options.frontend_enabled ) ) {\n\t\t\t\tresolve(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\t// Apply dark mode, if user choice is set.\n\t\t\tif (this.hasUserChoice) {\n\t\t\t\tif ( 'dark' == Store.get('choice') ) {\n\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t} else {\n\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t}\n\n\t\t\t\tresolve(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check and apply selected mode.\n\t\t\tswitch (wp_dark_mode_json.options.frontend_mode) {\n\t\t\t\tcase 'default_light':\n\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\tcase 'default':\n\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'device':\n\n\t\t\t\t\tif (WPDarkMode.isDeviceDark) {\n\t\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'time':\n\n\t\t\t\t\t// Bail, if user is not premium.\n\t\t\t\t\tif (!this.isPremium) {\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst starts = wp_dark_mode_json.options.frontend_time_starts;\n\t\t\t\t\tconst ends = wp_dark_mode_json.options.frontend_time_ends;\n\n\t\t\t\t\t// Helper function to convert \"hh:mm AA\" format to minutes since midnight\n\t\t\t\t\tfunction timeToMinutes(time) {\n\t\t\t\t\t\tconst [timePart, period] = time.split(' ');\n\t\t\t\t\t\tlet [hours, minutes] = timePart.split(':').map(Number);\n\n\t\t\t\t\t\t// Convert to 24-hour format\n\t\t\t\t\t\tif (period === 'PM' && hours !== 12) {\n\t\t\t\t\t\t\thours += 12;\n\t\t\t\t\t\t} else if (period === 'AM' && hours === 12) {\n\t\t\t\t\t\t\thours = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn hours * 60 + minutes;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the current time in minutes since midnight\n\t\t\t\t\tconst now = new Date();\n\t\t\t\t\tconst currentMinutes = now.getHours() * 60 + now.getMinutes();\n\n\t\t\t\t\tconst startMinutes = timeToMinutes(starts);\n\t\t\t\t\tconst endMinutes = timeToMinutes(ends);\n\n\t\t\t\t\tlet isDarkMode = false;\n\n\t\t\t\t\t// Check if current time is between start and end time\n\t\t\t\t\tif (startMinutes < endMinutes) {\n\t\t\t\t\t\t// Time range is within the same day\n\t\t\t\t\t\tif (currentMinutes >= startMinutes && currentMinutes < endMinutes) {\n\t\t\t\t\t\t\tisDarkMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Time range spans across midnight\n\t\t\t\t\t\tif (currentMinutes >= startMinutes || currentMinutes < endMinutes) {\n\t\t\t\t\t\t\tisDarkMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isDarkMode) {\n\t\t\t\t\t\tWPDarkMode.activate();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tWPDarkMode.deactivate();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'sunset':\n\n\t\t\t\t\t// Bail, if user is not premium.\n\t\t\t\t\tif (!this.isPremium) {\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait this.applySunsetMode();\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tresolve(true)\n\n\t\t});\n\t}\n\n\tasync applySunsetMode() {\n\t\t// Get sunset time.\n\t\tconst loc = Store.get('location').split(',').map(Number);\n\t\tlet { sunrise, sunset } = SunCalc.getTimes(new Date(), loc[0], loc[1]);\n\t\t\n\t\t// Get current time.\n\t\tconst now = new Date();\n\n\t\t// Check if it is night time.\n\t\tconst isNight = now > sunset || now < sunrise;\n\n\t\t// Apply dark mode, if it is night time.\n\t\tif (isNight) {\n\t\t\tWPDarkMode.activate();\n\t\t} else {\n\t\t\tWPDarkMode.deactivate();\n\t\t}\n\t}\n\n}\n\nexport default new DarkModeApp();","export const HalfMoonFilled = ``\n\nexport const HalfMoonOutlined = `\n\n`\n\nexport const StarMoonFilled = `\n\n`\n\nexport const StarMoonOutlined = `\n\n\n\n\n`\n\nexport const FullMoonFilled = `\n\n`\n\nexport const RichSunOutlined = ` `\n\nexport const RichSunFilled = `\n\n`\n\nexport const RichMoonFilled = `\n\n`\n\nexport const CurvedMoonOutlined = ` `\n\nexport const SunFilled = `\n\n\n\n\n\n\n\n\n\n`\n\nexport const SunOutlined = `\n\n`\n\n\nexport const DoubleUpperT = `\n\n`\n\nexport const LowerA = ``\n\nexport const DoubleT = `\n\n`\n\nexport const UpperA = `\n\n\n`\n\nexport default {}","import { HalfMoonFilled } from \"./SVG\"; \nexport default (config = {}) => { \n \nLog('Found Icons', config.iconLight, config.iconDark);\n return `
${config.iconLight || HalfMoonFilled}
${config.iconDark || HalfMoonFilled}
` }","import { SunFilled, StarMoonFilled } from './SVG'; export default ((config = {}) => { return `
${config.iconLight || SunFilled}
${config.iconLight || SunFilled}
${config.iconDark || StarMoonFilled}
` })","import { SunFilled, HalfMoonFilled } from './SVG'; export default ((config = {}) => { return `
${config.iconLight || SunFilled}
${config.iconDark || HalfMoonFilled}
` })","import { SunFilled, HalfMoonFilled } from './SVG'; export default ((config = {}) => { return `
${config.iconLight || SunFilled}
${config.iconDark || HalfMoonFilled}
` })","import { SunOutlined } from \"./SVG\"; export default (config = {}) => { return `
${ config.iconLight || SunOutlined }
${ config.iconDark || SunOutlined }
` }","import { FullMoonFilled, DoubleUpperT } from './SVG'; export default (config = {}) => { return `
${ config.iconLight || FullMoonFilled }
${config.iconDark || FullMoonFilled}
${config.fontIcon || DoubleUpperT }
${config.fontIconActive || DoubleUpperT}
` }","import { SunFilled, HalfMoonFilled } from './SVG'; export default (config = {}) => { const fontIcon = config.fontIcon ? `` : `a`; const fontIconActive = config.fontIconActive ? `` : 'A'; return `
${ config.iconLight || SunFilled }
${config.iconDark || HalfMoonFilled }
${fontIcon}
${fontIconActive}
` }","import { SunOutlined, StarMoonOutlined, DoubleT } from './SVG'; export default (config = {}) => { return `
${ config.iconLight || SunOutlined }
${ config.iconDark || StarMoonOutlined }
${config.fontIcon ? `` : DoubleT}
${config.fontIconActive ? `` : DoubleT}
` }","import { RichSunFilled, RichMoonFilled, UpperA } from './SVG'; export default (config = {}) => { return `
${ config.iconLight || RichSunFilled }
${ config.iconDark || RichMoonFilled }
${ config.fontIcon || UpperA}
${ config.fontIconActive || UpperA}
` }","import { FullMoonFilled, UpperA } from './SVG'; export default (config = {}) => { return `
${ config.fontIcon || UpperA }
${ config.fontIconActive || UpperA }
${ config.iconLight || FullMoonFilled }
${ config.iconDark || FullMoonFilled }
` }","import { SunOutlined, StarMoonFilled, UpperA } from './SVG'; export default (config = {}) => { return `
${ config.fontIcon || UpperA }
${ config.fontIconActive || UpperA }
${ config.iconLight || SunOutlined }
${ config.iconDark || StarMoonFilled }
` }","export default (config = {}) => { return `
${config.textLight || 'Light'}
${config.textDark || 'Dark'}
` }","import { SunOutlined, HalfMoonOutlined } from \"./SVG\"; export default ((config = {}) => { return `
${config.iconLight || SunOutlined}
${config.iconDark || HalfMoonOutlined}
` })","import { SunOutlined, HalfMoonOutlined } from \"./SVG\"; export default ((config = {}) => { return `
${config.iconLight || SunOutlined}
${config.iconDark || HalfMoonOutlined}
` })","import { RichSunOutlined, CurvedMoonOutlined } from './SVG'\n\nexport default (config = {}) => {\n\treturn `
${config.iconLight || RichSunOutlined}
${config.iconDark || CurvedMoonOutlined}
`\n}","import { RichSunOutlined, CurvedMoonOutlined } from './SVG'\n\nexport default ((config = {}) => {\n\treturn `${config.textLight || 'Light'}
${config.iconLight || RichSunOutlined}
${config.iconDark || CurvedMoonOutlined}
${config.textDark || 'Dark'}`\n})","import { RichSunOutlined, CurvedMoonOutlined } from './SVG'; export default ((config = {}) => { return `
${config.iconLight || RichSunOutlined}
${config.iconDark || CurvedMoonOutlined}
`; })","import { SunOutlined, HalfMoonOutlined } from './SVG'; export default ((config = {}) => { return `
${config.iconLight || SunOutlined}
${config.iconDark || HalfMoonOutlined}
`; })","import { SunOutlined } from './SVG'; export default ((config = {}) => { return `
${config.iconLight || SunOutlined}
`; })","import Base from './Base'\nimport WPDarkMode from './WPDarkMode'\nimport * as Switches from '../switches';\nimport Accessibility from './Accessibility'\n\nclass DarkModeSwitch extends Base {\n\n\t/**\n\t * Get switch elements\n\t */\n\tgetSwitches(exclude = '') {\n\n\t\tif (exclude !== '') {\n\t\t\treturn document.querySelectorAll(`.wp-dark-mode-switch:not(${exclude})`);\n\t\t}\n\n\t\treturn document.querySelectorAll('.wp-dark-mode-switch');\n\t}\n\n\t/**\n\t * init\n\t */\n\tready() {\n\n\t\tconst source = typeof wp_dark_mode_admin_json !== 'undefined' ? wp_dark_mode_admin_json : wp_dark_mode_json;\n\n\t\t// Bail, if not enabled.\n\t\tif (source && source.is_excluded) return;\n\n\t\tthis.injectSwitches();\n\n\t\tthis.listenSwitches();\n\t\tthis.reactiveSwitches();\n\n\t\tthis.throttle = false;\n\n\t\tif ( source.options.performance_track_dynamic_content ) {\n\t\t\t// Inject switches when mutation occurs in BODY.\n\t\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\t\tmutations.forEach((mutation) => {\n\t\t\t\t\tif (this.throttle) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t// Log('ClassList changed!');\n\n\t\t\t\t\tthis.throttle = true;\n\t\t\t\t\tsetTimeout(this.injectSwitches, 200);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.throttle = false;\n\t\t\t\t\t}, 500);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tobserver.observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: false,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Inject switches to DOM\n\t */\n\tinjectSwitches = () => {\n\t\tconst switches = this.getSwitches('.ignore');\n\n\t\tif (!switches || !switches.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst THIS = this;\n\t\t// Log('injectSwitches', switches);\n\n\t\tswitches.forEach((switchEl) => {\n\n\t\t\t// Bail, if already injected.\n\t\t\tif (switchEl.querySelector('.wp-dark-mode-switch-styled')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data_keys = ['style', 'size', 'reactive', 'textLight', 'textDark', 'iconLight', 'iconDark'];\n\n\t\t\tconst config = {}\n\t\t\tdata_keys.forEach((key) => {\n\t\t\t\tconfig[key] = switchEl.dataset[key] || null;\n\t\t\t})\n\n\t\t\t// Return if style is not defined.\n\t\t\tif (!config.style) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Log('config', config);\n\t\t\tconst switchHtml = THIS.buildSwitch(config);\n\t\t\tswitchEl.innerHTML = switchHtml;\n\t\t});\n\n\t\t// Event to update switches.\n\t\t// this.emit('injected');\n\t}\n\n\t/**\n\t * Listen switch clicks\n\t */\n\tlistenSwitches() {\n\t\tdocument.addEventListener('click', (event) => {\n\n\n\t\t\t// Check if the clicked element is a Dark Mode switch\n\t\t\tconst isSwitch = event.target.closest('.wp-dark-mode-switch') || event.target.matches('.wp-dark-mode-switch');\n\t\t\t// Bail, if not a Dark Mode switch\n\t\t\tif (!isSwitch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Bail, if element contains .dummy class.\n\t\t\tif (event.target.closest('.dummy')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// this.emit('click', event);\n\n\t\t\t// Prevent default action\n\t\t\tevent.preventDefault();\n\n\t\t\t// Log('event.target', event.target);\n\t\t\t// if target has _font in parent or self\n\t\t\tif (event.target.closest('._font') || event.target.matches('._font')) {\n\t\t\t\t// Log('font toggle');\n\t\t\t\tAccessibility.toggleFontSize( event.target.closest('.wp-dark-mode-switch ._font') );\n\n\t\t\t\tthis.emit('font-toggled', event);\n\t\t\t} else {\n\t\t\t\tWPDarkMode.toggle().remember();\n\n\t\t\t\t// this.emit('toggled', event);\n\t\t\t}\n\n\t\t});\n\t}\n\n\t/**\n\t * Reactive switches\n\t */\n\treactiveSwitches() {\n\n\t\t// Initial update switches.\n\t\tthis.updateSwitches();\n\n\t\t// Update switches on change dark mode.\n\t\tWPDarkMode.onChange(this.updateSwitches);\n\t}\n\n\t/**\n\t * Update Switches\n\t */\n\tupdateSwitches = () => {\n\t\tconst switches = this.getSwitches('.dummy');\n\n\t\tif (!switches || !switches.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitches.forEach((switchEl) => {\n\t\t\tconst _scheme = switchEl.querySelector('._scheme')\n\t\t\tif (_scheme) {\n\t\t\t\t// for Accessibility \n\t\t\t\t_scheme.classList[WPDarkMode.isActive ? 'add' : 'remove']('active');\n\t\t\t} else if (switchEl.querySelector('.switch')) {\n\t\t\t\t// For admin\n\t\t\t\tconst switchChild = switchEl.querySelector('.switch')\n\t\t\t\tswitchChild.classList[WPDarkMode.isActive ? 'add' : 'remove']('active');\n\t\t\t} else {\n\t\t\t\t// for normal \n\t\t\t\tlet instantChild = switchEl.querySelector('div:not(.light):not(.dark)');\n\t\t\t\tif( ! instantChild ) instantChild = switchEl\n\t\t\t\tinstantChild.classList[WPDarkMode.isActive ? 'add' : 'remove']('active');\n\t\t\t}\n\t\t});\n\n\t\t// Event to update switches.\n\t\t// this.emit('updated');\n\t}\n\n\t/**\n\t * Build switch\n\t *\n\t * @param {string} style\n\t * @param {string} size \n\t * @returns {string}\n\t */\n\tbuildSwitch(config = {}) {\n\t\tconst isActive = WPDarkMode.isActive;\n\t\tconst isReactive = config.reactive !== false;\n\n\t\tlet html = `
`;\n\n\t\t// Adjust switch style.\n\t\tconst switchStyle = 'Switch_' + (config.style || 1);\n\n\t\t// Wrap iconLight and iconDark inside img if exists.\n\t\tconfig.iconLight = config.iconLight ? `` : null\n\t\tconfig.iconDark = config.iconDark ? `` : null\n\n\t\thtml += Switches[switchStyle](config);\n\n\t\thtml += `
`;\n\n\t\treturn html;\n\t}\n\n\t// developer events \n\t// clicked = (callback) => {\n\t// \tthis.on('click', callback);\n\t// }\n\n}\n\nexport default new DarkModeSwitch();","export const Log = (...args) => {\n if (!wp_dark_mode_json.debug) return;\n console.log('%cWPDarkMode', 'background: #2663eb; color: #fff; padding: 2px 5px; border-radius: 3px; font-weight: 500;', ...args);\n};\n","import DarkModeApp from '@common/app.js';\nimport DarkModeSwitch from '@common/Switch.js';\nimport { Log } from '@common/Utility.js'; \n/**\n * Initialize the app\n *\n * These classes can be initialized only once to avoid conflicts\n */\n\n(() => {\n window.Log = Log;\n\n window.WPDarkModeApp = DarkModeApp.init();\n\n // Initialize the switch.\n DarkModeSwitch.init();\n})()"],"names":["_Store","key","value","daysToExpire","expires","cookies","cookie","cookieKey","cookieValue","item","__publicField","Store","_DarkMode","__privateAdd","_callbacks","_config","__privateGet","_instance","__privateSet","callback","_a","active","config","DarkMode","WPDarkMode","Base","selector","context","_events","event","args","Accessibility","elements","desiredSize","element","fontSize","newFontSize","size","by","unit","newValue","switches","switchEl","e","html","isLargeFont","isActive","Accessibility$1","global","factory","this","exports","__assign","s","i","n","p","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","rejected","result","__generator","body","_","t","f","y","g","verb","op","__values","o","m","__read","r","ar","error","__spread","userAgent","platform","isChromium","isFirefox","isSafari","isWindows","isMacOS","isShadowDomSupported","isDefinedSelectorSupported","isCSSStyleSheetConstructorSupported","getOKResponse","url","mimeType","response","loadAsDataURL","readResponseAsDataURL","blob","dataURL","reader","setFetchMethod","fetch","messageListeners","sendMessage","addMessageListener","nativeSendMessage_1","_i","nativeAddListener_1","ThemeEngines","DEFAULT_COLORS","DEFAULT_THEME","isArrayLike","items","forEach","iterator","e_1","len","items_1","items_1_1","e_1_1","push","array","addition","a","toArray","results","anchor","fixBaseURL","$url","parseURL","$base","getAbsoluteURL","$relative","b","logWarn","iterateCSSRules","rules","iterate","rule","media","err","iterateCSSDeclarations","style","property","isCSSVariable","getCSSVariables","variables","getElementCSSVariables","cssURLRegex","cssImportRegex","getCSSURLValue","cssURL","getCSSBaseBath","replaceCSSRelativeURLsWithAbsolute","$css","cssBasePath","match","pathValue","cssCommentsRegex","removeCSSComments","fontFaceRegex","replaceCSSFontFace","varRegex","replaceCSSVariables","stack","missing","unresolvable","name","fallback","value_1","v","throttle","pending","frameId","lastArgs","throttled","cancel","createAsyncTasksQueue","tasks","runTasks","task","add","getDuration","time","duration","removeNode","node","watchForNodePosition","mode","onRestore","MAX_ATTEMPTS_COUNT","RETRY_TIMEOUT","ATTEMPTS_INTERVAL","prevSibling","parent","attempts","start","timeoutId","restore","now","stop","updateParent","observer","run","skip","parentNode","iterateShadowHosts","root","walker","isDOMReady","readyStateListeners","addDOMReadyListener","listener","removeDOMReadyListener","onReadyStateChange_1","HUGE_MUTATIONS_COUNT","isHugeMutation","mutations","addedNodesCount","getElementsTreeOperations","additions","deletions","moves","duplicateAdditions","duplicateDeletions","optimizedTreeObservers","optimizedTreeCallbacks","createOptimizedTreeObserver","callbacks","observerCallbacks","domReadyListener","hadHugeMutationsBefore_1","subscribedForReadyState_1","onHugeMutations","elementsOperations_1","onMinorMutations","tempStyle","getTempCSSStyleSheet","tempStyleElement","hslToRGB","h","l","_b","_c","r_1","b_1","g_1","c","x","_d","rgbToHSL","r255","g255","b255","max","min","toFixed","digits","fixed","dot","zerosMatch","rgbToString","rgb","rgbToHexString","hslToString","hsl","rgbMatch","hslMatch","hexMatch","parse","$color","parseRGB","parseHSL","parseHex","knownColors","getColorByName","systemColors","getSystemColor","getNumbersFromString","str","splitter","range","units","raw","unitsList","numbers","u","rgbSplitter","rgbRange","rgbUnits","$rgb","hslSplitter","hslRange","hslUnits","$hsl","$hex","scale","inLow","inHigh","outLow","outHigh","clamp","multiplyMatrices","m1","m2","j","len2","sum","k","len3","getMatches","regex","input","group","matches","formatCSS","text","trimLeft","getIndent","depth","emptyRuleRegexp","css","formatted","line","createFilterMatrix","Matrix","applyColorMatrix","matrix","getBgPole","theme","isDarkScheme","prop","getFgPole","colorModificationCache","colorParseCache","parseToHSLWithCache","color","clearColorModificationCache","rgbCacheKeys","themeCacheKeys","getCacheId","modifyColorWithCache","modifyHSL","poleColor","anotherPoleColor","fnCache","id","pole","anotherPole","modified","rf","gf","bf","noopHSL","modifyColor","modifyLightSchemeColor","poleBg","poleFg","modifyLightModeHSL","isDark","isNeutral","isBlue","hx","sx","lx","MAX_BG_LIGHTNESS","modifyBgHSL","lx_1","hx_1","hx_2","isYellow","isCloserToGreen","modifyBackgroundColor","MIN_FG_LIGHTNESS","modifyBlueFgHue","hue","modifyFgHSL","isLight","lx_2","hx_3","hx_4","hx_5","lx_3","modifyForegroundColor","modifyBorderHSL","modifyBorderColor","modifyShadowColor","filter","createTextStyle","lines","FilterMode","getCSSFilterValue","filters","counter","resolvers","rejectors","bgFetch","request","type","data","objectURLs","cleanImageProcessingCache","getModifiableCSSDeclaration","ignoreImageSelectors","isCancelled","important","sourceValue","modifier","getColorModifier","getBgImageModifier","getShadowModifier","getModifiedUserAgentStyle","isIFrame","styleSystemControls","getModifiedScrollbarStyle","getModifiedSelectionStyle","getSelectionColor","backgroundColorSelection","foregroundColorSelection","modifiedSelectionColor","selection","colorTrack","colorIcons","colorThumb","colorThumbHover","colorThumbActive","colorCorner","hsl_1","lighten","lighter","darken","darker","getModifiedFallbackStyle","strict","unparsableColors","colorParseCache$1","parseColorWithCache","tryParseColor","rgb_1","imageDetailsCache","awaitingForImageLoading","index_2","colorMatches_1","modifiers_2","prefixIndex","matchIndex","matchEnd","modify","cleanModificationCache","overrides","overridesList","INLINE_STYLE_ATTRS","INLINE_STYLE_SELECTOR","attr","getInlineOverrideStyle","dataAttr","customProp","cssProp","getInlineStyleElements","treeObservers","attrObservers","watchForInlineStyles","elementStyleDidChange","shadowRootDiscovered","deepWatchForInlineStyles","host","discoveredNodes","discoverNodes","el","treeObserver","added","attemptCount","cache","handleAttributeMutations","attrObserver","attributeCache","stopWatchingForInlineStyles","inlineStyleCache","filterProps","getInlineStyleCacheKey","shouldIgnoreInlineStyle","selectors","ingnoredSelector","overrideInlineStyle","ignoreInlineSelectors","cacheKey","unsetProps","setCustomProp","targetCSSProp","modifierCSSProp","cssVal","mod","SMALL_SVG_LIMIT","isBg","width","height","metaThemeColorName","metaThemeColorSelector","srcMetaThemeColor","changeMetaThemeColor","meta","changeMetaThemeColorWhenAvailable","loop","addedNodes","restoreMetaThemeColor","themeCacheKeys$1","getThemeKey","asyncQueue","createStyleSheetModifier","renderId","rulesTextCache","rulesModCache","prevFilterKey","modifySheet","options","newRules","force","prepareSheet","isAsyncCancelled","rulesChanged","notFoundCacheKeys","themeKey","themeChanged","modRules","cssText","textDiffersFromPrev","vars","varsRule","cssTextWithVariables","modDecs","targetRule","modRule","parentRule","setRule","target","index","declarations","asyncDeclarations","asyncDeclarationCounter","rootReadyGroup","groupRefs","getGroup","parentGroup","readyStyleRule","readyDeclarations","asyncKey_1","asyncDeclaration_1","promise","currentRenderId_1","asyncValue","rebuildAsyncRule","sheet","buildStyleSheet","createTarget","iterateReadyRules","styleIterator","asyncKey","STYLE_SELECTOR","shouldManageStyle","getManageableStyles","deep","syncStyleSet","corsStyleSet","canOptimizeUsingProxy","manageStyle","update","loadingStart","loadingEnd","prevStyles","next","corsCopy","syncStyle","corsCopyPositionWatcher","syncStylePositionWatcher","cancelAsyncOperations","sheetModifier","observerOptions","containsCSSImport","getRulesSync","safeGetSheetRules","insertStyle","createSyncStyle","isLoadingRules","wasLoadingError","getRulesAsync","cssRules","accessError","fullCSSText","getRulesOrError","isStillLoadingError","linkLoading","loadText","replaceCSSImports","createCORSCopy","details","forceRenderStyle","render","ignoreImageAnalysis","prepareOverridesSheet","buildOverrides","watchForSheetChanges","watchForSheetChangesUsingProxy","watchForSheetChangesUsingRAF","rulesChangeKey","rulesCheckFrameId","getRulesChangeKey","didRulesKeyChange","stopWatchingForSheetChangesUsingRAF","checkForUpdate","areSheetChangesPending","onSheetChange","handleSheetChanges","stopWatchingForSheetChangesUsingProxy","stopWatchingForSheetChanges","pause","destroy","watch","maxMoveCount","moveCount","shouldForceRender","link","cleanUp","onLoad","onError","getCSSImportURL","importDeclaration","basePath","importMatches","importMatches_1","importMatches_1_1","importURL","absoluteURL","importedCSS","srcElement","cors","observers","observedRoots","undefinedGroups","elementsDefinitionCallback","collectUndefinedElements","tag","customElementsWhenDefined","canOptimizeUsingProxy$1","resolvers$1","handleIsDefined","checkIfDefined_1","watchWhenCustomElementsDefined","unsubscribeFromDefineCustomElements","watchForStyleChanges","currentStyles","stopWatchingForStyleChanges","prevStyleSiblings","nextStyleSiblings","saveStylePosition","forgetStylePosition","didStylePositionChange","handleStyleOperations","operations","createdStyles","removedStyles","movedStyles","handleMinorTreeMutations","subscribeForShadowRootChanges","handleHugeTreeMutations","styles","updatedStyles","observe","shadowRoot","hosts","newStyles","resetObservers","hexify","number","generateUID","adoptedStyleOverrides","overrideList","createAdoptedStyleSheetOverride","injectSheet","override","newSheets","sheetIndex","existingIndex","adoptedStyleSheet","globalVariables","injectProxy","addRuleDescriptor","insertRuleDescriptor","deleteRuleDescriptor","removeRuleDescriptor","addUndefinedResolver","updateSheetEvent","proxyAddRule","proxyInsertRule","returnValue","proxyDeleteRule","proxyRemoveRule","INSTANCE_ID","styleManagers","adoptedStyleManagers","fixes","createOrUpdateStyle","className","createOrUpdateScript","nodePositionWatchers","setupNodePositionWatcher","alias","stopStylePositionWatchers","watcher","createStaticStyleOverrides","fallbackStyle","userAgentStyle","textStyle","invertStyle","inlineStyle","overrideStyle","replaceCSSTemplates","variableStyle","selectionColors","darkSchemeBackgroundColor","darkSchemeTextColor","lightSchemeBackgroundColor","lightSchemeTextColor","schemeBackgroundColor","schemeTextColor","proxyScript","shadowRootsWithOverrides","createShadowStaticStyleOverrides","$cssText","m0","cleanFallbackStyle","getIgnoreImageAnalysisSelectors","createDynamicStyleOverrides","cancelRendering","updateVariables","allStyles","newManagers","createManager","newVariables","manager","loadingStyles","throttledRenderAllStyles","inlineStyleElements","handleAdoptedStyleSheets","loadingStylesCounter","loadingStyleId","didDocumentShowUp","newVars","removeManager","onDOMReady","documentVisibilityListener","watchForDocumentVisibility","alreadyWatching","stopWatchingForDocumentVisibility","createThemeAndWatchForUpdates","runDynamicStyle","watchForUpdates","newManger","managedStyles","created","updated","removed","moved","stylesToRemove","stylesToManage","stylesToRestore","ignoredInlineSelectors","rootVariables","stopWatchingForUpdates","createDarkModeInstanceMarker","metaElement","isAnotherDarkModeInstanceActive","createOrUpdateDynamicTheme","filterConfig","dynamicThemeFixes","iframe","headObserver_1","removeDynamicTheme","removeProxy","cleanDynamicThemeCache","blobRegex","replaceBlobs","promises","banner","collectCSS","addStaticCSS","comment","staticStyle","modifiedCSS","formattedCSS","isIFrame$1","enable","themeOptions","disable","darkScheme","store","handleColorScheme","auto","exportGeneratedCSS","setFetchMethod$1","Color","colorString","alpha","tempDiv","rgbaValues","red","green","blue","opacity","backgroundColor","FiltersConfig","all","excludes","ignorableElements","ignoreRecursively","borderColor","child","includedElements","includeRecursively","Color$1","Images","images","image","currentSrc","darkSrc","lightSrc","elementsWithBackground","backgroundImage","src","replaceable_images","imagePair","img","srcWithoutQuery","lowBrightnessExcludes","lowGrayscaleExcludes","Image","Videos","youtubeRegex","vimeoRegex","videoFileRegex","vid","videoID","videos","video","replaceable_videos","videoPair","embeds","embeddedVideos","embed","Video","PI","sin","cos","tan","asin","atan","acos","rad","dayMs","J1970","J2000","toJulian","date","fromJulian","toDays","rightAscension","declination","azimuth","H","phi","dec","altitude","siderealTime","d","lw","astroRefraction","solarMeanAnomaly","eclipticLongitude","M","C","sunCoords","L","SunCalc","lat","lng","times","angle","riseName","setName","J0","julianCycle","approxTransit","Ht","solarTransitJ","ds","hourAngle","observerAngle","getSetJ","w","dh","Jnoon","h0","Jset","Jrise","moonCoords","F","dt","pa","sdist","inc","hoursLater","inUTC","hc","h1","h2","rise","set","xe","ye","roots","x1","x2","dx","module","DarkModeApp","timeZoneOffset","locationUpdated","position","mediaQuery","checkSystemMode","timeToMinutes","timePart","period","hours","minutes","starts","ends","currentMinutes","startMinutes","endMinutes","isDarkMode","loc","sunrise","sunset","DarkModeApp$1","HalfMoonFilled","HalfMoonOutlined","StarMoonFilled","StarMoonOutlined","FullMoonFilled","RichSunOutlined","RichSunFilled","RichMoonFilled","CurvedMoonOutlined","SunFilled","SunOutlined","DoubleUpperT","DoubleT","UpperA","fontIcon","fontIconActive","DarkModeSwitch","THIS","data_keys","switchHtml","_scheme","instantChild","exclude","source","mutation","isReactive","switchStyle","Switches","DarkModeSwitch$1","Log"],"mappings":"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","x_google_ignoreList":[8]}