{"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 WPDarkMode from \"./WPDarkMode\"\n\nclass Accessibility extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.trackKeyBoardPress();\n\t\tthis.handleAnimation();\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\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\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\t\t\t\t\tif (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 = backgroundImage;\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.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 ( wp_dark_mode_json.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","e","Accessibility$1","global","factory","this","exports","__assign","t","s","i","n","p","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","rejected","result","__generator","body","_","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","element","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","x","r_1","b_1","g_1","c","_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","unit","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","elements","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","html","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","switches","THIS","switchEl","data_keys","switchHtml","_scheme","instantChild","exclude","source","mutation","isActive","isReactive","switchStyle","Switches","DarkModeSwitch$1","Log"],"mappings":"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","x_google_ignoreList":[8]}