{"version":3,"file":"app.min.js","sources":["../../src/common/Store.js","../../src/common/DarkMode.js","../../src/common/Base.js","../../src/common/Images.js","../../src/common/Videos.js","../../src/common/Accessibility.js","../../src/common/DarkModeAuto.js","../../src/common/Color.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\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\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\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 this.#events[event].push(callback);\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', () => this.ready());\n\n console.log('Base init')\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.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();","import Base from \"./Base\"\nimport Store from \"./Store\"\n\nclass Accessibility extends Base {\n\t/**\n\t * Init\n\t */\n\tready() {\n\t\tthis.trackKeyBoardPress();\n\t\tthis.handleAnimation();\n\t\tthis.initLargeFont();\n\t\tthis.checkLargeFont();\n\t}\n\n\t/**\n\t * Track keyboard press\n\t */\n\ttrackKeyBoardPress() {\n\n\t\t// Bail, if accessibility is disabled.\n\t\tif ( ! wp_dark_mode_json.options.accessibility_enabled_keyboard_shortcut ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.addEventListener('keydown', (e) => {\n\t\t\t// if pressed ctrl + alt + d\n\t\t\tif (e.ctrlKey && e.altKey && e.keyCode === 68) {\n\t\t\t\tWPDarkMode.toggle().remember();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Handle animation\n\t */\n\thandleAnimation() {\n\t\t// Bail if animation_enabled is disabled.\n\t\tif ( ! wp_dark_mode_json.options.animation_enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add animation class.\n\t\tif(WPDarkMode.isActive) {\n\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-animation');\n\t\t}\n\n\t\tWPDarkMode.onChange(() => {\n\t\t\tif( !WPDarkMode.isActive ) {\n\t\t\t\tdocument.querySelector('html').classList.remove('wp-dark-mode-animation');\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-animation');\n\t\t\t}\n\t\t})\n\t\t\n\t}\n\n\t/**\n\t * Init large font\n\t */\n\tinitLargeFont = () => {\n\t\tconst elements = document.querySelectorAll('*:not(.wp-dark-mode-ignore):not(.wp-dark-mode-switch):not(script):not(style):not(link):not(meta):not(title):not(base):not(head):not(.wp-dark-mode-switch)');\n\n\t\tlet desiredSize = wp_dark_mode_json.options.typography_font_size;\n\t\tif( desiredSize === 'custom' ) {\n\t\t\tdesiredSize = wp_dark_mode_json.options.typography_font_size_custom / 100;\n\t\t}\n\n\t\telements.forEach(element => {\n\t\t\t// Bail, if any of parent has wp-dark-mode-ignore class.\n\t\t\tif(element.closest('.wp-dark-mode-ignore')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst fontSize = getComputedStyle(element).fontSize;\n\n\t\t\tif (fontSize) {\n\t\t\t\t// Calculate new font size\n\t\t\t\tconst newFontSize = this.calculateFontSize(fontSize, desiredSize);\n\n\t\t\t\t// Set property\n\t\t\t\telement.style.setProperty('--wp-dark-mode-large-font-size', newFontSize);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggle font size\n\t */\n\ttoggleFontSize( element ) {\n\n\t\tif( !wp_dark_mode_json.options.typography_enabled ) return;\n\n\t\tconst html = document.querySelector('html');\n\n\t\t// Is large font is active\n\t\tconst isLargeFont = html.classList.contains('wp-dark-mode-large-font');\n\n\t\t// Toggle large font\n\t\thtml.classList[isLargeFont ? 'remove' : 'add']('wp-dark-mode-large-font');\n\n\t\t// Is element is \n\t\tconst isActive = element.classList.contains('active');\n\n\t\t// Toggle active class\n\t\telement.classList[isActive ? 'remove' : 'add']('active');\n\n\t\t// Remember user choice\n\t\tStore.set('large-font', !isLargeFont ? 'on' : 'off');\n\n\t\t// Reactive other switches\n\t\tconst switches = document.querySelectorAll('.wp-dark-mode-switch ._font');\n\n\t\tif( !switches || !switches.length ) return;\n\n\t\tswitches.forEach( switchEl => {\n\t\t\tswitchEl.classList[isActive ? 'remove' : 'add']('active');\n\t\t} );\n\n\t}\n\n\t\n\tcalculateFontSize = ( size, by = 1 ) => {\n\t\tconst unit = size.replace(/[0-9]/g, '');\n\t\tconst value = parseFloat(size.replace(/[a-z]/g, ''));\n\n\t\tlet newValue = 0;\n\t\tnewValue = value * by;\n\t\treturn `${newValue}${unit}`;\n\t}\n\n\t/**\n\t * Check large font\n\t */\n\tcheckLargeFont = () => {\n\n\t\tconst isLargeFont = Store.get('large-font') === 'on';\n\n\t\tif( isLargeFont ) {\n\t\t\tdocument.querySelector('html').classList.add('wp-dark-mode-large-font');\n\n\t\t\t// On wp-dark-mode-switches-updated event\n\t\t\tdocument.addEventListener('wp-dark-mode-switches-updated', () => {\n\t\t\t\tconst switches = document.querySelectorAll('.wp-dark-mode-switch ._font');\n\t\t\t\tif( !switches || !switches.length ) return;\n\t\t\t\tswitches.forEach( switchEl => {\n\t\t\t\t\tswitchEl.classList.add('active');\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport default new Accessibility();","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\"\n ? factory(exports)\n : typeof define === \"function\" && define.amd\n ? define([\"exports\"], factory)\n : ((global =\n typeof globalThis !== \"undefined\" ? globalThis : global || self),\n factory((global.DarkModeAuto = {})));\n})(this, function (exports) {\n \"use strict\";\n\n var __assign = function () {\n __assign =\n Object.assign ||\n function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n\n function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P\n ? value\n : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done\n ? resolve(result.value)\n : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n }\n\n function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: [],\n },\n f,\n y,\n t,\n g;\n return (\n (g = {\n next: verb(0),\n throw: verb(1),\n return: verb(2),\n }),\n typeof Symbol === \"function\" &&\n (g[Symbol.iterator] = function () {\n return this;\n }),\n g\n );\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_)\n try {\n if (\n ((f = 1),\n y &&\n (t =\n op[0] & 2\n ? y[\"return\"]\n : op[0]\n ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0)\n : y.next) &&\n !(t = t.call(y, op[1])).done)\n )\n return t;\n if (((y = 0), t)) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (\n !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) &&\n (op[0] === 6 || op[0] === 2)\n ) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n }\n\n function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\")\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n },\n };\n throw new TypeError(\n s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\"\n );\n }\n\n function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = { error: error };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n }\n\n function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n }\n\n var userAgent =\n typeof navigator === \"undefined\"\n ? \"some useragent\"\n : navigator.userAgent.toLowerCase();\n var platform =\n typeof navigator === \"undefined\"\n ? \"some platform\"\n : navigator.platform.toLowerCase();\n var isChromium =\n userAgent.includes(\"chrome\") || userAgent.includes(\"chromium\");\n var isFirefox = userAgent.includes(\"firefox\");\n var isVivaldi = userAgent.includes(\"vivaldi\");\n var isYaBrowser = userAgent.includes(\"yabrowser\");\n var isOpera = userAgent.includes(\"opr\") || userAgent.includes(\"opera\");\n var isEdge = userAgent.includes(\"edg\");\n var isSafari = userAgent.includes(\"safari\") && !isChromium;\n var isWindows = platform.startsWith(\"win\");\n var isMacOS = platform.startsWith(\"mac\");\n var isMobile = userAgent.includes(\"mobile\");\n var isShadowDomSupported = typeof ShadowRoot === \"function\";\n var chromiumVersion = (function () {\n var m = userAgent.match(/chrom[e|ium]\\/([^ ]+)/);\n if (m && m[1]) {\n return m[1];\n } else {\n return \"\";\n }\n })();\n var isDefinedSelectorSupported = (function () {\n try {\n document.querySelector(\":defined\");\n return true;\n } catch (err) {\n return false;\n }\n })();\n var isCSSStyleSheetConstructorSupported = (function () {\n try {\n new CSSStyleSheet();\n return true;\n } catch (err) {\n return false;\n }\n })();\n\n function getOKResponse(url, mimeType) {\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [\n 4,\n fetch(url, {\n cache: \"force-cache\",\n credentials: \"omit\",\n }),\n ];\n case 1:\n response = _a.sent();\n if (\n isFirefox &&\n mimeType === \"text/css\" &&\n url.startsWith(\"moz-extension://\") &&\n url.endsWith(\".css\")\n ) {\n return [2, response];\n }\n if (\n mimeType &&\n !response.headers.get(\"Content-Type\").startsWith(mimeType)\n ) {\n throw new Error(\"Mime type mismatch when loading \" + url);\n }\n if (!response.ok) {\n throw new Error(\n \"Unable to load \" +\n url +\n \" \" +\n response.status +\n \" \" +\n response.statusText\n );\n }\n return [2, response];\n }\n });\n });\n }\n\n function loadAsDataURL(url, mimeType) {\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, getOKResponse(url, mimeType)];\n case 1:\n response = _a.sent();\n return [4, readResponseAsDataURL(response)];\n case 2:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n function readResponseAsDataURL(response) {\n return __awaiter(this, void 0, void 0, function () {\n var blob, dataURL;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, response.blob()];\n case 1:\n blob = _a.sent();\n return [\n 4,\n new Promise(function (resolve) {\n var reader = new FileReader();\n reader.onloadend = function () {\n return resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n }),\n ];\n case 2:\n dataURL = _a.sent();\n return [2, dataURL];\n }\n });\n });\n }\n\n var throwCORSError = function (url) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n Promise.reject(\n new Error(\n [\n \"Embedded DarkMode cannot access a cross-origin resource\",\n url,\n \"Overview your URLs and CORS policies or use\",\n \"`DarkMode.setFetchMethod(fetch: (url) => Promise))`.\",\n \"See if using `DarkMode.setFetchMethod(window.fetch)`\",\n \"before `DarkMode.enable()` works.\",\n ].join(\" \")\n )\n ),\n ];\n });\n });\n };\n var fetcher = throwCORSError;\n\n function setFetchMethod(fetch) {\n if (fetch) {\n fetcher = fetch;\n } else {\n fetcher = throwCORSError;\n }\n }\n\n function callFetchMethod(url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4, fetcher(url)];\n case 1:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n if (!window.chrome) {\n window.chrome = {};\n }\n if (!chrome.runtime) {\n chrome.runtime = {};\n }\n var messageListeners = new Set();\n\n function sendMessage() {\n return;\n\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var id_1, _a, url, responseType, response, text_1, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(args[0] && args[0].type === \"fetch\")) return [3, 8];\n id_1 = args[0].id;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 7, , 8]);\n (_a = args[0].data),\n (url = _a.url),\n (responseType = _a.responseType);\n return [4, callFetchMethod(url)];\n case 2:\n response = _b.sent();\n if (!(responseType === \"data-url\")) return [3, 4];\n return [4, readResponseAsDataURL(response)];\n case 3:\n text_1 = _b.sent();\n return [3, 6];\n case 4:\n return [4, response.text()];\n case 5:\n text_1 = _b.sent();\n _b.label = 6;\n case 6:\n messageListeners.forEach(function (cb) {\n return cb({\n type: \"fetch-response\",\n data: text_1,\n error: null,\n id: id_1,\n });\n });\n return [3, 8];\n case 7:\n err_1 = _b.sent();\n console.error(err_1);\n messageListeners.forEach(function (cb) {\n return cb({\n type: \"fetch-response\",\n data: null,\n err: err_1,\n id: id_1,\n });\n });\n return [3, 8];\n case 8:\n return [2];\n }\n });\n });\n }\n\n function addMessageListener(callback) {\n messageListeners.add(callback);\n }\n\n if (typeof chrome.runtime.sendMessage === \"function\") {\n var nativeSendMessage_1 = chrome.runtime.sendMessage;\n chrome.runtime.sendMessage = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n sendMessage.apply(void 0, __spread(args));\n nativeSendMessage_1.apply(chrome.runtime, args);\n };\n } else {\n chrome.runtime.sendMessage = sendMessage;\n }\n if (!chrome.runtime.onMessage) {\n chrome.runtime.onMessage = {};\n }\n if (typeof chrome.runtime.onMessage.addListener === \"function\") {\n var nativeAddListener_1 = chrome.runtime.onMessage.addListener;\n chrome.runtime.onMessage.addListener = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n addMessageListener.apply(void 0, __spread(args));\n nativeAddListener_1.apply(chrome.runtime.onMessage, args);\n };\n } else {\n chrome.runtime.onMessage.addListener = addMessageListener;\n }\n\n var ThemeEngines = {\n cssFilter: \"cssFilter\",\n svgFilter: \"svgFilter\",\n staticTheme: \"staticTheme\",\n dynamicTheme: \"dynamicTheme\",\n };\n\n var DEFAULT_COLORS = {\n darkScheme: {\n background: \"#181a1b\",\n text: \"#e8e6e3\",\n },\n lightScheme: {\n background: \"#dcdad7\",\n text: \"#181a1b\",\n },\n };\n var DEFAULT_THEME = {\n mode: 1,\n brightness: 100,\n contrast: 100,\n grayscale: 0,\n sepia: 0,\n useFont: false,\n fontFamily: isMacOS\n ? \"Helvetica Neue\"\n : isWindows\n ? \"Segoe UI\"\n : \"Open Sans\",\n textStroke: 0,\n engine: ThemeEngines.dynamicTheme,\n stylesheet: \"\",\n darkSchemeBackgroundColor: DEFAULT_COLORS.darkScheme.background,\n darkSchemeTextColor: DEFAULT_COLORS.darkScheme.text,\n lightSchemeBackgroundColor: DEFAULT_COLORS.lightScheme.background,\n lightSchemeTextColor: DEFAULT_COLORS.lightScheme.text,\n scrollbarColor: isMacOS ? \"\" : \"auto\",\n selectionColor: \"auto\",\n styleSystemControls: true,\n };\n\n function isArrayLike(items) {\n return items.length != null;\n }\n\n function forEach(items, iterator) {\n var e_1, _a;\n if (isArrayLike(items)) {\n for (var i = 0, len = items.length; i < len; i++) {\n iterator(items[i]);\n }\n } else {\n try {\n for (\n var items_1 = __values(items), items_1_1 = items_1.next();\n !items_1_1.done;\n items_1_1 = items_1.next()\n ) {\n var item = items_1_1.value;\n iterator(item);\n }\n } catch (e_1_1) {\n e_1 = { error: e_1_1 };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return))\n _a.call(items_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n }\n\n function push(array, addition) {\n forEach(addition, function (a) {\n return array.push(a);\n });\n }\n\n function toArray(items) {\n var results = [];\n for (var i = 0, len = items.length; i < len; i++) {\n results.push(items[i]);\n }\n return results;\n }\n\n var anchor;\n\n function fixBaseURL($url) {\n if (!anchor) {\n anchor = document.createElement(\"a\");\n }\n anchor.href = $url;\n return anchor.href;\n }\n\n function parseURL($url, $base) {\n if ($base === void 0) {\n $base = null;\n }\n if ($base) {\n $base = fixBaseURL($base);\n return new URL($url, $base);\n }\n $url = fixBaseURL($url);\n return new URL($url);\n }\n\n function getAbsoluteURL($base, $relative) {\n if ($relative.match(/^data\\:/)) {\n return $relative;\n }\n var b = parseURL($base);\n var a = parseURL($relative, b.href);\n return a.href;\n }\n\n function getURLHostOrProtocol($url) {\n var url = new URL($url);\n if (url.host) {\n return url.host;\n } else {\n return url.protocol;\n }\n }\n\n function logInfo() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n }\n\n function logWarn() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n }\n\n function iterateCSSRules(rules, iterate) {\n forEach(rules, function (rule) {\n if (rule instanceof CSSMediaRule) {\n var media = Array.from(rule.media);\n if (\n media.includes(\"screen\") ||\n media.includes(\"all\") ||\n !(media.includes(\"print\") || media.includes(\"speech\"))\n ) {\n iterateCSSRules(rule.cssRules, iterate);\n }\n } else if (rule instanceof CSSStyleRule) {\n iterate(rule);\n } else if (rule instanceof CSSImportRule) {\n try {\n iterateCSSRules(rule.styleSheet.cssRules, iterate);\n } catch (err) {\n logWarn(err);\n }\n } else if (rule instanceof CSSSupportsRule) {\n if (CSS.supports(rule.conditionText)) {\n iterateCSSRules(rule.cssRules, iterate);\n }\n } else {\n logWarn(\"CSSRule type not supported\", rule);\n }\n });\n }\n\n function iterateCSSDeclarations(style, iterate) {\n forEach(style, function (property) {\n var value = style.getPropertyValue(property).trim();\n if (!value) {\n return;\n }\n iterate(property, value);\n });\n }\n\n function isCSSVariable(property) {\n return property.startsWith(\"--\") && !property.startsWith(\"--wp-dark-mode\");\n }\n\n function getCSSVariables(rules) {\n var variables = new Map();\n rules &&\n iterateCSSRules(rules, function (rule) {\n rule.style &&\n iterateCSSDeclarations(rule.style, function (property, value) {\n if (isCSSVariable(property)) {\n variables.set(property, value);\n }\n });\n });\n return variables;\n }\n\n function getElementCSSVariables(element) {\n var variables = new Map();\n iterateCSSDeclarations(element.style, function (property, value) {\n if (isCSSVariable(property)) {\n variables.set(property, value);\n }\n });\n return variables;\n }\n\n var cssURLRegex = /url\\((('.+?')|(\".+?\")|([^\\)]*?))\\)/g;\n var cssImportRegex = /@import\\s*(url\\()?(('.+?')|(\".+?\")|([^\\)]*?))\\)?;?/g;\n\n function getCSSURLValue(cssURL) {\n return cssURL\n .replace(/^url\\((.*)\\)$/, \"$1\")\n .replace(/^\"(.*)\"$/, \"$1\")\n .replace(/^'(.*)'$/, \"$1\");\n }\n\n function getCSSBaseBath(url) {\n var cssURL = parseURL(url);\n return (\n \"\" +\n cssURL.origin +\n cssURL.pathname.replace(/\\?.*$/, \"\").replace(/(\\/)([^\\/]+)$/i, \"$1\")\n );\n }\n\n function replaceCSSRelativeURLsWithAbsolute($css, cssBasePath) {\n return $css.replace(cssURLRegex, function (match) {\n var pathValue = getCSSURLValue(match);\n return 'url(\"' + getAbsoluteURL(cssBasePath, pathValue) + '\")';\n });\n }\n\n var cssCommentsRegex = /\\/\\*[\\s\\S]*?\\*\\//g;\n\n function removeCSSComments($css) {\n return $css.replace(cssCommentsRegex, \"\");\n }\n\n var fontFaceRegex = /@font-face\\s*{[^}]*}/g;\n\n function replaceCSSFontFace($css) {\n return $css.replace(fontFaceRegex, \"\");\n }\n\n var varRegex =\n /var\\((--[^\\s,\\(\\)]+),?\\s*([^\\(\\)]*(\\([^\\(\\)]*\\)[^\\(\\)]*)*\\s*)\\)/g;\n\n function replaceCSSVariables(value, variables, stack) {\n if (stack === void 0) {\n stack = new Set();\n }\n var missing = false;\n var unresolvable = new Set();\n var result = value.replace(varRegex, function (match, name, fallback) {\n if (stack.has(name)) {\n logWarn(\"Circular reference to variable \" + name);\n if (fallback) {\n return fallback;\n }\n missing = true;\n return match;\n }\n if (variables.has(name)) {\n var value_1 = variables.get(name);\n if (value_1.match(varRegex)) {\n unresolvable.add(name);\n }\n return value_1;\n } else if (fallback) {\n return fallback;\n } else {\n logWarn(\"Variable \" + name + \" not found\");\n missing = true;\n }\n return match;\n });\n if (missing) {\n return result;\n }\n if (result.match(varRegex)) {\n unresolvable.forEach(function (v) {\n return stack.add(v);\n });\n return replaceCSSVariables(result, variables, stack);\n }\n return result;\n }\n\n function throttle(callback) {\n var pending = false;\n var frameId = null;\n var lastArgs;\n var throttled = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n if (frameId) {\n pending = true;\n } else {\n callback.apply(void 0, __spread(lastArgs));\n frameId = requestAnimationFrame(function () {\n frameId = null;\n if (pending) {\n callback.apply(void 0, __spread(lastArgs));\n pending = false;\n }\n });\n }\n };\n var cancel = function () {\n cancelAnimationFrame(frameId);\n pending = false;\n frameId = null;\n };\n return Object.assign(throttled, { cancel: cancel });\n }\n\n function createAsyncTasksQueue() {\n var tasks = [];\n var frameId = null;\n\n function runTasks() {\n var task;\n while ((task = tasks.shift())) {\n task();\n }\n frameId = null;\n }\n\n function add(task) {\n tasks.push(task);\n if (!frameId) {\n frameId = requestAnimationFrame(runTasks);\n }\n }\n\n function cancel() {\n tasks.splice(0);\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n\n return { add: add, cancel: cancel };\n }\n\n function getDuration(time) {\n var duration = 0;\n if (time.seconds) {\n duration += time.seconds * 1000;\n }\n if (time.minutes) {\n duration += time.minutes * 60 * 1000;\n }\n if (time.hours) {\n duration += time.hours * 60 * 60 * 1000;\n }\n if (time.days) {\n duration += time.days * 24 * 60 * 60 * 1000;\n }\n return duration;\n }\n\n function removeNode(node) {\n node && node.parentNode && node.parentNode.removeChild(node);\n }\n\n function watchForNodePosition(node, mode, onRestore) {\n if (onRestore === void 0) {\n onRestore = Function.prototype;\n }\n var MAX_ATTEMPTS_COUNT = 10;\n var RETRY_TIMEOUT = getDuration({ seconds: 2 });\n var ATTEMPTS_INTERVAL = getDuration({ seconds: 10 });\n var prevSibling = node.previousSibling;\n var parent = node.parentNode;\n if (!parent) {\n throw new Error(\n \"Unable to watch for node position: parent element not found\"\n );\n }\n if (mode === \"prev-sibling\" && !prevSibling) {\n throw new Error(\n \"Unable to watch for node position: there is no previous sibling\"\n );\n }\n var attempts = 0;\n var start = null;\n var timeoutId = null;\n var restore = throttle(function () {\n if (timeoutId) {\n return;\n }\n attempts++;\n var now = Date.now();\n if (start == null) {\n start = now;\n } else if (attempts >= MAX_ATTEMPTS_COUNT) {\n if (now - start < ATTEMPTS_INTERVAL) {\n logWarn(\n \"Node position watcher paused: retry in \" + RETRY_TIMEOUT + \"ms\",\n node,\n prevSibling\n );\n timeoutId = setTimeout(function () {\n start = null;\n attempts = 0;\n timeoutId = null;\n restore();\n }, RETRY_TIMEOUT);\n return;\n }\n start = now;\n attempts = 1;\n }\n if (mode === \"parent\") {\n if (prevSibling && prevSibling.parentNode !== parent) {\n logWarn(\n \"Unable to restore node position: sibling parent changed\",\n node,\n prevSibling,\n parent\n );\n stop();\n return;\n }\n }\n if (mode === \"prev-sibling\") {\n if (prevSibling.parentNode == null) {\n logWarn(\n \"Unable to restore node position: sibling was removed\",\n node,\n prevSibling,\n parent\n );\n stop();\n return;\n }\n if (prevSibling.parentNode !== parent) {\n logWarn(\n \"Style was moved to another parent\",\n node,\n prevSibling,\n parent\n );\n updateParent(prevSibling.parentNode);\n }\n }\n logWarn(\"Restoring node position\", node, prevSibling, parent);\n parent.insertBefore(\n node,\n prevSibling ? prevSibling.nextSibling : parent.firstChild\n );\n observer.takeRecords();\n onRestore && onRestore();\n });\n var observer = new MutationObserver(function () {\n if (\n (mode === \"parent\" && node.parentNode !== parent) ||\n (mode === \"prev-sibling\" && node.previousSibling !== prevSibling)\n ) {\n restore();\n }\n });\n var run = function () {\n observer.observe(parent, { childList: true });\n };\n var stop = function () {\n clearTimeout(timeoutId);\n observer.disconnect();\n restore.cancel();\n };\n var skip = function () {\n observer.takeRecords();\n };\n var updateParent = function (parentNode) {\n parent = parentNode;\n stop();\n run();\n };\n run();\n return { run: run, stop: stop, skip: skip };\n }\n\n function iterateShadowHosts(root, iterator) {\n if (root == null) {\n return;\n }\n var walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: function (node) {\n return node.shadowRoot == null\n ? NodeFilter.FILTER_SKIP\n : NodeFilter.FILTER_ACCEPT;\n },\n });\n for (\n var node = root.shadowRoot ? walker.currentNode : walker.nextNode();\n node != null;\n node = walker.nextNode()\n ) {\n iterator(node);\n iterateShadowHosts(node.shadowRoot, iterator);\n }\n }\n\n function isDOMReady() {\n return (\n document.readyState === \"complete\" ||\n document.readyState === \"interactive\"\n );\n }\n\n var readyStateListeners = new Set();\n\n function addDOMReadyListener(listener) {\n readyStateListeners.add(listener);\n }\n\n function removeDOMReadyListener(listener) {\n readyStateListeners.delete(listener);\n }\n\n if (!isDOMReady()) {\n var onReadyStateChange_1 = function () {\n if (isDOMReady()) {\n document.removeEventListener(\"readystatechange\", onReadyStateChange_1);\n readyStateListeners.forEach(function (listener) {\n return listener();\n });\n readyStateListeners.clear();\n }\n };\n document.addEventListener(\"readystatechange\", onReadyStateChange_1);\n }\n var HUGE_MUTATIONS_COUNT = 1000;\n\n function isHugeMutation(mutations) {\n if (mutations.length > HUGE_MUTATIONS_COUNT) {\n return true;\n }\n var addedNodesCount = 0;\n for (var i = 0; i < mutations.length; i++) {\n addedNodesCount += mutations[i].addedNodes.length;\n if (addedNodesCount > HUGE_MUTATIONS_COUNT) {\n return true;\n }\n }\n return false;\n }\n\n function getElementsTreeOperations(mutations) {\n var additions = new Set();\n var deletions = new Set();\n var moves = new Set();\n mutations.forEach(function (m) {\n forEach(m.addedNodes, function (n) {\n if (n instanceof Element && n.isConnected) {\n additions.add(n);\n }\n });\n forEach(m.removedNodes, function (n) {\n if (n instanceof Element) {\n if (n.isConnected) {\n moves.add(n);\n } else {\n deletions.add(n);\n }\n }\n });\n });\n moves.forEach(function (n) {\n return additions.delete(n);\n });\n var duplicateAdditions = [];\n var duplicateDeletions = [];\n additions.forEach(function (node) {\n if (additions.has(node.parentElement)) {\n duplicateAdditions.push(node);\n }\n });\n deletions.forEach(function (node) {\n if (deletions.has(node.parentElement)) {\n duplicateDeletions.push(node);\n }\n });\n duplicateAdditions.forEach(function (node) {\n return additions.delete(node);\n });\n duplicateDeletions.forEach(function (node) {\n return deletions.delete(node);\n });\n return { additions: additions, moves: moves, deletions: deletions };\n }\n\n var optimizedTreeObservers = new Map();\n var optimizedTreeCallbacks = new WeakMap();\n\n function createOptimizedTreeObserver(root, callbacks) {\n var observer;\n var observerCallbacks;\n var domReadyListener;\n if (optimizedTreeObservers.has(root)) {\n observer = optimizedTreeObservers.get(root);\n observerCallbacks = optimizedTreeCallbacks.get(observer);\n } else {\n var hadHugeMutationsBefore_1 = false;\n var subscribedForReadyState_1 = false;\n observer = new MutationObserver(function (mutations) {\n if (isHugeMutation(mutations)) {\n if (!hadHugeMutationsBefore_1 || isDOMReady()) {\n observerCallbacks.forEach(function (_a) {\n var onHugeMutations = _a.onHugeMutations;\n return onHugeMutations(root);\n });\n } else {\n if (!subscribedForReadyState_1) {\n domReadyListener = function () {\n return observerCallbacks.forEach(function (_a) {\n var onHugeMutations = _a.onHugeMutations;\n return onHugeMutations(root);\n });\n };\n addDOMReadyListener(domReadyListener);\n subscribedForReadyState_1 = true;\n }\n }\n hadHugeMutationsBefore_1 = true;\n } else {\n var elementsOperations_1 = getElementsTreeOperations(mutations);\n observerCallbacks.forEach(function (_a) {\n var onMinorMutations = _a.onMinorMutations;\n return onMinorMutations(elementsOperations_1);\n });\n }\n });\n observer.observe(root, { childList: true, subtree: true });\n optimizedTreeObservers.set(root, observer);\n observerCallbacks = new Set();\n optimizedTreeCallbacks.set(observer, observerCallbacks);\n }\n observerCallbacks.add(callbacks);\n return {\n disconnect: function () {\n observerCallbacks.delete(callbacks);\n if (domReadyListener) {\n removeDOMReadyListener(domReadyListener);\n }\n if (observerCallbacks.size === 0) {\n observer.disconnect();\n optimizedTreeCallbacks.delete(observer);\n optimizedTreeObservers.delete(root);\n }\n },\n };\n }\n\n var tempStyle = null;\n\n function getTempCSSStyleSheet() {\n if (tempStyle) {\n return tempStyle;\n }\n if (isCSSStyleSheetConstructorSupported) {\n tempStyle = new CSSStyleSheet();\n return tempStyle;\n } else {\n var tempStyleElement = document.createElement(\"style\");\n document.head.append(tempStyleElement);\n tempStyle = tempStyleElement.sheet;\n document.head.removeChild(tempStyleElement);\n return tempStyle;\n }\n }\n\n function hslToRGB(_a) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n _b = _a.a,\n a = _b === void 0 ? 1 : _b;\n if (s === 0) {\n var _c = __read(\n [l, l, l].map(function (x) {\n return Math.round(x * 255);\n }),\n 3\n ),\n r_1 = _c[0],\n b_1 = _c[1],\n g_1 = _c[2];\n return { r: r_1, g: g_1, b: b_1, a: a };\n }\n var c = (1 - Math.abs(2 * l - 1)) * s;\n var x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n var m = l - c / 2;\n var _d = __read(\n (h < 60\n ? [c, x, 0]\n : h < 120\n ? [x, c, 0]\n : h < 180\n ? [0, c, x]\n : h < 240\n ? [0, x, c]\n : h < 300\n ? [x, 0, c]\n : [c, 0, x]\n ).map(function (n) {\n return Math.round((n + m) * 255);\n }),\n 3\n ),\n r = _d[0],\n g = _d[1],\n b = _d[2];\n return { r: r, g: g, b: b, a: a };\n }\n\n function rgbToHSL(_a) {\n var r255 = _a.r,\n g255 = _a.g,\n b255 = _a.b,\n _b = _a.a,\n a = _b === void 0 ? 1 : _b;\n var r = r255 / 255;\n var g = g255 / 255;\n var b = b255 / 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var c = max - min;\n var l = (max + min) / 2;\n if (c === 0) {\n return { h: 0, s: 0, l: l, a: a };\n }\n var h =\n (max === r\n ? ((g - b) / c) % 6\n : max === g\n ? (b - r) / c + 2\n : (r - g) / c + 4) * 60;\n if (h < 0) {\n h += 360;\n }\n var s = c / (1 - Math.abs(2 * l - 1));\n return { h: h, s: s, l: l, a: a };\n }\n\n function toFixed(n, digits) {\n if (digits === void 0) {\n digits = 0;\n }\n var fixed = n.toFixed(digits);\n if (digits === 0) {\n return fixed;\n }\n var dot = fixed.indexOf(\".\");\n if (dot >= 0) {\n var zerosMatch = fixed.match(/0+$/);\n if (zerosMatch) {\n if (zerosMatch.index === dot + 1) {\n return fixed.substring(0, dot);\n }\n return fixed.substring(0, zerosMatch.index);\n }\n }\n return fixed;\n }\n\n function rgbToString(rgb) {\n var r = rgb.r,\n g = rgb.g,\n b = rgb.b,\n a = rgb.a;\n if (a != null && a < 1) {\n return (\n \"rgba(\" +\n toFixed(r) +\n \", \" +\n toFixed(g) +\n \", \" +\n toFixed(b) +\n \", \" +\n toFixed(a, 2) +\n \")\"\n );\n }\n return \"rgb(\" + toFixed(r) + \", \" + toFixed(g) + \", \" + toFixed(b) + \")\";\n }\n\n function rgbToHexString(_a) {\n var r = _a.r,\n g = _a.g,\n b = _a.b,\n a = _a.a;\n return (\n \"#\" +\n (a != null && a < 1 ? [r, g, b, Math.round(a * 255)] : [r, g, b])\n .map(function (x) {\n return \"\" + (x < 16 ? \"0\" : \"\") + x.toString(16);\n })\n .join(\"\")\n );\n }\n\n function hslToString(hsl) {\n var h = hsl.h,\n s = hsl.s,\n l = hsl.l,\n a = hsl.a;\n if (a != null && a < 1) {\n return (\n \"hsla(\" +\n toFixed(h) +\n \", \" +\n toFixed(s * 100) +\n \"%, \" +\n toFixed(l * 100) +\n \"%, \" +\n toFixed(a, 2) +\n \")\"\n );\n }\n return (\n \"hsl(\" +\n toFixed(h) +\n \", \" +\n toFixed(s * 100) +\n \"%, \" +\n toFixed(l * 100) +\n \"%)\"\n );\n }\n\n var rgbMatch = /^rgba?\\([^\\(\\)]+\\)$/;\n var hslMatch = /^hsla?\\([^\\(\\)]+\\)$/;\n var hexMatch = /^#[0-9a-f]+$/i;\n\n function parse($color) {\n var c = $color.trim().toLowerCase();\n if (c.match(rgbMatch)) {\n return parseRGB(c);\n }\n if (c.match(hslMatch)) {\n return parseHSL(c);\n }\n if (c.match(hexMatch)) {\n return parseHex(c);\n }\n if (knownColors.has(c)) {\n return getColorByName(c);\n }\n if (systemColors.has(c)) {\n return getSystemColor(c);\n }\n if ($color === \"transparent\") {\n return { r: 0, g: 0, b: 0, a: 0 };\n }\n throw new Error(\"Unable to parse \" + $color);\n }\n\n function getNumbersFromString(str, splitter, range, units) {\n var raw = str.split(splitter).filter(function (x) {\n return x;\n });\n var unitsList = Object.entries(units);\n var numbers = raw\n .map(function (r) {\n return r.trim();\n })\n .map(function (r, i) {\n var n;\n var unit = unitsList.find(function (_a) {\n var _b = __read(_a, 1),\n u = _b[0];\n return r.endsWith(u);\n });\n if (unit) {\n n =\n (parseFloat(r.substring(0, r.length - unit[0].length)) / unit[1]) *\n range[i];\n } else {\n n = parseFloat(r);\n }\n if (range[i] > 1) {\n return Math.round(n);\n }\n return n;\n });\n return numbers;\n }\n\n var rgbSplitter = /rgba?|\\(|\\)|\\/|,|\\s/gi;\n var rgbRange = [255, 255, 255, 1];\n var rgbUnits = { \"%\": 100 };\n\n function parseRGB($rgb) {\n var _a = __read(\n getNumbersFromString($rgb, rgbSplitter, rgbRange, rgbUnits),\n 4\n ),\n r = _a[0],\n g = _a[1],\n b = _a[2],\n _b = _a[3],\n a = _b === void 0 ? 1 : _b;\n return { r: r, g: g, b: b, a: a };\n }\n\n var hslSplitter = /hsla?|\\(|\\)|\\/|,|\\s/gi;\n var hslRange = [360, 1, 1, 1];\n var hslUnits = { \"%\": 100, deg: 360, rad: 2 * Math.PI, turn: 1 };\n\n function parseHSL($hsl) {\n var _a = __read(\n getNumbersFromString($hsl, hslSplitter, hslRange, hslUnits),\n 4\n ),\n h = _a[0],\n s = _a[1],\n l = _a[2],\n _b = _a[3],\n a = _b === void 0 ? 1 : _b;\n return hslToRGB({ h: h, s: s, l: l, a: a });\n }\n\n function parseHex($hex) {\n var h = $hex.substring(1);\n switch (h.length) {\n case 3:\n case 4: {\n var _a = __read(\n [0, 1, 2].map(function (i) {\n return parseInt(\"\" + h[i] + h[i], 16);\n }),\n 3\n ),\n r = _a[0],\n g = _a[1],\n b = _a[2];\n var a = h.length === 3 ? 1 : parseInt(\"\" + h[3] + h[3], 16) / 255;\n return { r: r, g: g, b: b, a: a };\n }\n case 6:\n case 8: {\n var _b = __read(\n [0, 2, 4].map(function (i) {\n return parseInt(h.substring(i, i + 2), 16);\n }),\n 3\n ),\n r = _b[0],\n g = _b[1],\n b = _b[2];\n var a = h.length === 6 ? 1 : parseInt(h.substring(6, 8), 16) / 255;\n return { r: r, g: g, b: b, a: a };\n }\n }\n throw new Error(\"Unable to parse \" + $hex);\n }\n\n function getColorByName($color) {\n var n = knownColors.get($color);\n return {\n r: (n >> 16) & 255,\n g: (n >> 8) & 255,\n b: (n >> 0) & 255,\n a: 1,\n };\n }\n\n function getSystemColor($color) {\n var n = systemColors.get($color);\n return {\n r: (n >> 16) & 255,\n g: (n >> 8) & 255,\n b: (n >> 0) & 255,\n a: 1,\n };\n }\n\n var knownColors = new Map(\n Object.entries({\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgrey: 0xa9a9a9,\n darkgreen: 0x006400,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n grey: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgrey: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32,\n })\n );\n var systemColors = new Map(\n Object.entries({\n ActiveBorder: 0x3b99fc,\n ActiveCaption: 0x000000,\n AppWorkspace: 0xaaaaaa,\n Background: 0x6363ce,\n ButtonFace: 0xffffff,\n ButtonHighlight: 0xe9e9e9,\n ButtonShadow: 0x9fa09f,\n ButtonText: 0x000000,\n CaptionText: 0x000000,\n GrayText: 0x7f7f7f,\n Highlight: 0xb2d7ff,\n HighlightText: 0x000000,\n InactiveBorder: 0xffffff,\n InactiveCaption: 0xffffff,\n InactiveCaptionText: 0x000000,\n InfoBackground: 0xfbfcc5,\n InfoText: 0x000000,\n Menu: 0xf6f6f6,\n MenuText: 0xffffff,\n Scrollbar: 0xaaaaaa,\n ThreeDDarkShadow: 0x000000,\n ThreeDFace: 0xc0c0c0,\n ThreeDHighlight: 0xffffff,\n ThreeDLightShadow: 0xffffff,\n ThreeDShadow: 0x000000,\n Window: 0xececec,\n WindowFrame: 0xaaaaaa,\n WindowText: 0x000000,\n \"-webkit-focus-ring-color\": 0xe59700,\n }).map(function (_a) {\n var _b = __read(_a, 2),\n key = _b[0],\n value = _b[1];\n return [key.toLowerCase(), value];\n })\n );\n\n function scale(x, inLow, inHigh, outLow, outHigh) {\n return ((x - inLow) * (outHigh - outLow)) / (inHigh - inLow) + outLow;\n }\n\n function clamp(x, min, max) {\n return Math.min(max, Math.max(min, x));\n }\n\n function multiplyMatrices(m1, m2) {\n var result = [];\n for (var i = 0, len = m1.length; i < len; i++) {\n result[i] = [];\n for (var j = 0, len2 = m2[0].length; j < len2; j++) {\n var sum = 0;\n for (var k = 0, len3 = m1[0].length; k < len3; k++) {\n sum += m1[i][k] * m2[k][j];\n }\n result[i][j] = sum;\n }\n }\n return result;\n }\n\n function getMatches(regex, input, group) {\n if (group === void 0) {\n group = 0;\n }\n var matches = [];\n var m;\n while ((m = regex.exec(input))) {\n matches.push(m[group]);\n }\n return matches;\n }\n\n function formatCSS(text) {\n function trimLeft(text) {\n return text.replace(/^\\s+/, \"\");\n }\n\n function getIndent(depth) {\n if (depth === 0) {\n return \"\";\n }\n return \" \".repeat(4 * depth);\n }\n\n var emptyRuleRegexp = /[^{}]+{\\s*}/g;\n while (emptyRuleRegexp.test(text)) {\n text = text.replace(emptyRuleRegexp, \"\");\n }\n var css = text\n .replace(/\\s{2,}/g, \" \")\n .replace(/\\{/g, \"{\\n\")\n .replace(/\\}/g, \"\\n}\\n\")\n .replace(/\\;(?![^\\(|\\\"]*(\\)|\\\"))/g, \";\\n\")\n .replace(/\\,(?![^\\(|\\\"]*(\\)|\\\"))/g, \",\\n\")\n .replace(/\\n\\s*\\n/g, \"\\n\")\n .split(\"\\n\");\n var depth = 0;\n var formatted = [];\n for (var x = 0, len = css.length; x < len; x++) {\n var line = css[x] + \"\\n\";\n if (line.match(/\\{/)) {\n formatted.push(getIndent(depth++) + trimLeft(line));\n } else if (line.match(/\\}/)) {\n formatted.push(getIndent(--depth) + trimLeft(line));\n } else {\n formatted.push(getIndent(depth) + trimLeft(line));\n }\n }\n return formatted.join(\"\").trim();\n }\n\n function createFilterMatrix(config) {\n var m = Matrix.identity();\n if (config.sepia !== 0) {\n m = multiplyMatrices(m, Matrix.sepia(config.sepia / 100));\n }\n if (config.grayscale !== 0) {\n m = multiplyMatrices(m, Matrix.grayscale(config.grayscale / 100));\n }\n if (config.contrast !== 100) {\n m = multiplyMatrices(m, Matrix.contrast(config.contrast / 100));\n }\n if (config.brightness !== 100) {\n m = multiplyMatrices(m, Matrix.brightness(config.brightness / 100));\n }\n if (config.mode === 1) {\n m = multiplyMatrices(m, Matrix.invertNHue());\n }\n return m;\n }\n\n function applyColorMatrix(_a, matrix) {\n var _b = __read(_a, 3),\n r = _b[0],\n g = _b[1],\n b = _b[2];\n var rgb = [[r / 255], [g / 255], [b / 255], [1], [1]];\n var result = multiplyMatrices(matrix, rgb);\n return [0, 1, 2].map(function (i) {\n return clamp(Math.round(result[i][0] * 255), 0, 255);\n });\n }\n\n var Matrix = {\n identity: function () {\n return [\n [1, 0, 0, 0, 0],\n [0, 1, 0, 0, 0],\n [0, 0, 1, 0, 0],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n invertNHue: function () {\n return [\n [0.333, -0.667, -0.667, 0, 1],\n [-0.667, 0.333, -0.667, 0, 1],\n [-0.667, -0.667, 0.333, 0, 1],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n brightness: function (v) {\n return [\n [v, 0, 0, 0, 0],\n [0, v, 0, 0, 0],\n [0, 0, v, 0, 0],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n contrast: function (v) {\n var t = (1 - v) / 2;\n return [\n [v, 0, 0, 0, t],\n [0, v, 0, 0, t],\n [0, 0, v, 0, t],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n sepia: function (v) {\n return [\n [\n 0.393 + 0.607 * (1 - v),\n 0.769 - 0.769 * (1 - v),\n 0.189 - 0.189 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.349 - 0.349 * (1 - v),\n 0.686 + 0.314 * (1 - v),\n 0.168 - 0.168 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.272 - 0.272 * (1 - v),\n 0.534 - 0.534 * (1 - v),\n 0.131 + 0.869 * (1 - v),\n 0,\n 0,\n ],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n grayscale: function (v) {\n return [\n [\n 0.2126 + 0.7874 * (1 - v),\n 0.7152 - 0.7152 * (1 - v),\n 0.0722 - 0.0722 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.2126 - 0.2126 * (1 - v),\n 0.7152 + 0.2848 * (1 - v),\n 0.0722 - 0.0722 * (1 - v),\n 0,\n 0,\n ],\n [\n 0.2126 - 0.2126 * (1 - v),\n 0.7152 - 0.7152 * (1 - v),\n 0.0722 + 0.9278 * (1 - v),\n 0,\n 0,\n ],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 1],\n ];\n },\n };\n\n function getBgPole(theme) {\n var isDarkScheme = theme.mode === 1;\n var prop = isDarkScheme\n ? \"darkSchemeBackgroundColor\"\n : \"lightSchemeBackgroundColor\";\n return theme[prop];\n }\n\n function getFgPole(theme) {\n var isDarkScheme = theme.mode === 1;\n var prop = isDarkScheme ? \"darkSchemeTextColor\" : \"lightSchemeTextColor\";\n return theme[prop];\n }\n\n var colorModificationCache = new Map();\n var colorParseCache = new Map();\n\n function parseToHSLWithCache(color) {\n if (colorParseCache.has(color)) {\n return colorParseCache.get(color);\n }\n var rgb = parse(color);\n var hsl = rgbToHSL(rgb);\n colorParseCache.set(color, hsl);\n return hsl;\n }\n\n function clearColorModificationCache() {\n colorModificationCache.clear();\n colorParseCache.clear();\n }\n\n var rgbCacheKeys = [\"r\", \"g\", \"b\", \"a\"];\n var themeCacheKeys = [\n \"mode\",\n \"brightness\",\n \"contrast\",\n \"grayscale\",\n \"sepia\",\n \"darkSchemeBackgroundColor\",\n \"darkSchemeTextColor\",\n \"lightSchemeBackgroundColor\",\n \"lightSchemeTextColor\",\n ];\n\n function getCacheId(rgb, theme) {\n return rgbCacheKeys\n .map(function (k) {\n return rgb[k];\n })\n .concat(\n themeCacheKeys.map(function (k) {\n return theme[k];\n })\n )\n .join(\";\");\n }\n\n function modifyColorWithCache(\n rgb,\n theme,\n modifyHSL,\n poleColor,\n anotherPoleColor\n ) {\n var fnCache;\n if (colorModificationCache.has(modifyHSL)) {\n fnCache = colorModificationCache.get(modifyHSL);\n } else {\n fnCache = new Map();\n colorModificationCache.set(modifyHSL, fnCache);\n }\n var id = getCacheId(rgb, theme);\n if (fnCache.has(id)) {\n return fnCache.get(id);\n }\n var hsl = rgbToHSL(rgb);\n var pole = poleColor == null ? null : parseToHSLWithCache(poleColor);\n var anotherPole =\n anotherPoleColor == null ? null : parseToHSLWithCache(anotherPoleColor);\n var modified = modifyHSL(hsl, pole, anotherPole);\n var _a = hslToRGB(modified),\n r = _a.r,\n g = _a.g,\n b = _a.b,\n a = _a.a;\n var matrix = createFilterMatrix(theme);\n var _b = __read(applyColorMatrix([r, g, b], matrix), 3),\n rf = _b[0],\n gf = _b[1],\n bf = _b[2];\n var color =\n a === 1\n ? rgbToHexString({ r: rf, g: gf, b: bf })\n : rgbToString({ r: rf, g: gf, b: bf, a: a });\n fnCache.set(id, color);\n return color;\n }\n\n function noopHSL(hsl) {\n return hsl;\n }\n\n function modifyColor(rgb, theme) {\n return modifyColorWithCache(rgb, theme, noopHSL);\n }\n\n function modifyLightSchemeColor(rgb, theme) {\n var poleBg = getBgPole(theme);\n var poleFg = getFgPole(theme);\n return modifyColorWithCache(rgb, theme, modifyLightModeHSL, poleFg, poleBg);\n }\n\n function modifyLightModeHSL(_a, poleFg, poleBg) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isDark = l < 0.5;\n var isNeutral;\n if (isDark) {\n isNeutral = l < 0.2 || s < 0.12;\n } else {\n var isBlue = h > 200 && h < 280;\n isNeutral = s < 0.24 || (l > 0.8 && isBlue);\n }\n var hx = h;\n var sx = l;\n if (isNeutral) {\n if (isDark) {\n hx = poleFg.h;\n sx = poleFg.s;\n } else {\n hx = poleBg.h;\n sx = poleBg.s;\n }\n }\n var lx = scale(l, 0, 1, poleFg.l, poleBg.l);\n return { h: hx, s: sx, l: lx, a: a };\n }\n\n var MAX_BG_LIGHTNESS = 0.4;\n\n function modifyBgHSL(_a, pole) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isDark = l < 0.5;\n var isBlue = h > 200 && h < 280;\n var isNeutral = s < 0.12 || (l > 0.8 && isBlue);\n if (isDark) {\n var lx_1 = scale(l, 0, 0.5, 0, MAX_BG_LIGHTNESS);\n if (isNeutral) {\n var hx_1 = pole.h;\n var sx = pole.s;\n return { h: hx_1, s: sx, l: lx_1, a: a };\n }\n return { h: h, s: s, l: lx_1, a: a };\n }\n var lx = scale(l, 0.5, 1, MAX_BG_LIGHTNESS, pole.l);\n if (isNeutral) {\n var hx_2 = pole.h;\n var sx = pole.s;\n return { h: hx_2, s: sx, l: lx, a: a };\n }\n var hx = h;\n var isYellow = h > 60 && h < 180;\n if (isYellow) {\n var isCloserToGreen = h > 120;\n if (isCloserToGreen) {\n hx = scale(h, 120, 180, 135, 180);\n } else {\n hx = scale(h, 60, 120, 60, 105);\n }\n }\n return { h: hx, s: s, l: lx, a: a };\n }\n\n function modifyBackgroundColor(rgb, theme) {\n if (theme.mode === 0) {\n return modifyLightSchemeColor(rgb, theme);\n }\n var pole = getBgPole(theme);\n return modifyColorWithCache(\n rgb,\n __assign(__assign({}, theme), { mode: 0 }),\n modifyBgHSL,\n pole\n );\n }\n\n var MIN_FG_LIGHTNESS = 0.55;\n\n function modifyBlueFgHue(hue) {\n return scale(hue, 205, 245, 205, 220);\n }\n\n function modifyFgHSL(_a, pole) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isLight = l > 0.5;\n var isNeutral = l < 0.2 || s < 0.24;\n var isBlue = !isNeutral && h > 205 && h < 245;\n if (isLight) {\n var lx_2 = scale(l, 0.5, 1, MIN_FG_LIGHTNESS, pole.l);\n if (isNeutral) {\n var hx_3 = pole.h;\n var sx = pole.s;\n return { h: hx_3, s: sx, l: lx_2, a: a };\n }\n var hx_4 = h;\n if (isBlue) {\n hx_4 = modifyBlueFgHue(h);\n }\n return { h: hx_4, s: s, l: lx_2, a: a };\n }\n if (isNeutral) {\n var hx_5 = pole.h;\n var sx = pole.s;\n var lx_3 = scale(l, 0, 0.5, pole.l, MIN_FG_LIGHTNESS);\n return { h: hx_5, s: sx, l: lx_3, a: a };\n }\n var hx = h;\n var lx;\n if (isBlue) {\n hx = modifyBlueFgHue(h);\n lx = scale(l, 0, 0.5, pole.l, Math.min(1, MIN_FG_LIGHTNESS + 0.05));\n } else {\n lx = scale(l, 0, 0.5, pole.l, MIN_FG_LIGHTNESS);\n }\n return { h: hx, s: s, l: lx, a: a };\n }\n\n function modifyForegroundColor(rgb, theme) {\n if (theme.mode === 0) {\n return modifyLightSchemeColor(rgb, theme);\n }\n var pole = getFgPole(theme);\n return modifyColorWithCache(\n rgb,\n __assign(__assign({}, theme), { mode: 0 }),\n modifyFgHSL,\n pole\n );\n }\n\n function modifyBorderHSL(_a, poleFg, poleBg) {\n var h = _a.h,\n s = _a.s,\n l = _a.l,\n a = _a.a;\n var isDark = l < 0.5;\n var isNeutral = l < 0.2 || s < 0.24;\n var hx = h;\n var sx = s;\n if (isNeutral) {\n if (isDark) {\n hx = poleFg.h;\n sx = poleFg.s;\n } else {\n hx = poleBg.h;\n sx = poleBg.s;\n }\n }\n var lx = scale(l, 0, 1, 0.5, 0.2);\n return { h: hx, s: sx, l: lx, a: a };\n }\n\n function modifyBorderColor(rgb, theme) {\n if (theme.mode === 0) {\n return modifyLightSchemeColor(rgb, theme);\n }\n var poleFg = getFgPole(theme);\n var poleBg = getBgPole(theme);\n return modifyColorWithCache(\n rgb,\n __assign(__assign({}, theme), { mode: 0 }),\n modifyBorderHSL,\n poleFg,\n poleBg\n );\n }\n\n function modifyShadowColor(rgb, filter) {\n return modifyBackgroundColor(rgb, filter);\n }\n\n function modifyGradientColor(rgb, filter) {\n return modifyBackgroundColor(rgb, filter);\n }\n\n function createTextStyle(config) {\n var lines = [];\n lines.push(\"*:not(pre) {\");\n if (config.useFont && config.fontFamily) {\n lines.push(\" font-family: \" + config.fontFamily + \" !important;\");\n }\n if (config.textStroke > 0) {\n lines.push(\n \" -webkit-text-stroke: \" + config.textStroke + \"px !important;\"\n );\n lines.push(\" text-stroke: \" + config.textStroke + \"px !important;\");\n }\n lines.push(\"}\");\n return lines.join(\"\\n\");\n }\n\n var FilterMode;\n (function (FilterMode) {\n FilterMode[(FilterMode[\"light\"] = 0)] = \"light\";\n FilterMode[(FilterMode[\"dark\"] = 1)] = \"dark\";\n })(FilterMode || (FilterMode = {}));\n\n function getCSSFilterValue(config) {\n var filters = [];\n if (config.mode === FilterMode.dark) {\n filters.push(\"invert(100%) hue-rotate(180deg)\");\n }\n if (config.brightness !== 100) {\n filters.push(\"brightness(\" + config.brightness + \"%)\");\n }\n if (config.contrast !== 100) {\n filters.push(\"contrast(\" + config.contrast + \"%)\");\n }\n if (config.grayscale !== 0) {\n filters.push(\"grayscale(\" + config.grayscale + \"%)\");\n }\n if (config.sepia !== 0) {\n filters.push(\"sepia(\" + config.sepia + \"%)\");\n }\n if (filters.length === 0) {\n return null;\n }\n return filters.join(\" \");\n }\n\n function toSVGMatrix(matrix) {\n return matrix\n .slice(0, 4)\n .map(function (m) {\n return m\n .map(function (m) {\n return m.toFixed(3);\n })\n .join(\" \");\n })\n .join(\" \");\n }\n\n function getSVGFilterMatrixValue(config) {\n return toSVGMatrix(createFilterMatrix(config));\n }\n\n var counter = 0;\n var resolvers = new Map();\n var rejectors = new Map();\n\n function bgFetch(request) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n new Promise(function (resolve, reject) {\n var id = ++counter;\n resolvers.set(id, resolve);\n rejectors.set(id, reject);\n chrome.runtime.sendMessage({\n type: \"fetch\",\n data: request,\n id: id,\n });\n }),\n ];\n });\n });\n }\n\n chrome.runtime.onMessage.addListener(function (_a) {\n var type = _a.type,\n data = _a.data,\n error = _a.error,\n id = _a.id;\n if (type === \"fetch-response\") {\n var resolve = resolvers.get(id);\n var reject = rejectors.get(id);\n resolvers.delete(id);\n rejectors.delete(id);\n if (error) {\n reject && reject(error);\n } else {\n resolve && resolve(data);\n }\n }\n });\n\n function getImageDetails(url) {\n return __awaiter(this, void 0, void 0, function () {\n var dataURL, image, info;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!url.startsWith(\"data:\")) return [3, 1];\n dataURL = url;\n return [3, 3];\n case 1:\n return [4, getImageDataURL(url)];\n case 2:\n dataURL = _a.sent();\n _a.label = 3;\n case 3:\n return [4, urlToImage(dataURL)];\n case 4:\n image = _a.sent();\n info = analyzeImage(image);\n return [\n 2,\n __assign(\n {\n src: url,\n dataURL: dataURL,\n width: image.naturalWidth,\n height: image.naturalHeight,\n },\n info\n ),\n ];\n }\n });\n });\n }\n\n function getImageDataURL(url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (\n !(\n getURLHostOrProtocol(url) ===\n (location.host || location.protocol)\n )\n )\n return [3, 2];\n return [4, loadAsDataURL(url)];\n case 1:\n return [2, _a.sent()];\n case 2:\n return [4, bgFetch({ url: url, responseType: \"data-url\" })];\n case 3:\n return [2, _a.sent()];\n }\n });\n });\n }\n\n function urlToImage(url) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [\n 2,\n new Promise(function (resolve, reject) {\n var image = new Image();\n image.onload = function () {\n return resolve(image);\n };\n image.onerror = function () {\n return reject(\"Unable to load image \" + url);\n };\n image.src = url;\n }),\n ];\n });\n });\n }\n\n var MAX_ANALIZE_PIXELS_COUNT = 32 * 32;\n var canvas;\n var context;\n\n function createCanvas() {\n var maxWidth = MAX_ANALIZE_PIXELS_COUNT;\n var maxHeight = MAX_ANALIZE_PIXELS_COUNT;\n canvas = document.createElement(\"canvas\");\n canvas.width = maxWidth;\n canvas.height = maxHeight;\n context = canvas.getContext(\"2d\");\n context.imageSmoothingEnabled = false;\n }\n\n function removeCanvas() {\n canvas = null;\n context = null;\n }\n\n function analyzeImage(image) {\n return null;\n\n if (!canvas) {\n createCanvas();\n }\n var naturalWidth = image.naturalWidth,\n naturalHeight = image.naturalHeight;\n if (naturalHeight === 0 || naturalWidth === 0) {\n logWarn(\"logWarn(Image is empty \" + image.currentSrc + \")\");\n return null;\n }\n var naturalPixelsCount = naturalWidth * naturalHeight;\n var k = Math.min(\n 1,\n Math.sqrt(MAX_ANALIZE_PIXELS_COUNT / naturalPixelsCount)\n );\n var width = Math.ceil(naturalWidth * k);\n var height = Math.ceil(naturalHeight * k);\n context.clearRect(0, 0, width, height);\n context.drawImage(\n image,\n 0,\n 0,\n naturalWidth,\n naturalHeight,\n 0,\n 0,\n width,\n height\n );\n var imageData = context.getImageData(0, 0, width, height);\n var d = imageData.data;\n var TRANSPARENT_ALPHA_THRESHOLD = 0.05;\n var DARK_LIGHTNESS_THRESHOLD = 0.4;\n var LIGHT_LIGHTNESS_THRESHOLD = 0.7;\n var transparentPixelsCount = 0;\n var darkPixelsCount = 0;\n var lightPixelsCount = 0;\n var i, x, y;\n var r, g, b, a;\n var l;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n i = 4 * (y * width + x);\n r = d[i + 0] / 255;\n g = d[i + 1] / 255;\n b = d[i + 2] / 255;\n a = d[i + 3] / 255;\n if (a < TRANSPARENT_ALPHA_THRESHOLD) {\n transparentPixelsCount++;\n } else {\n l = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n if (l < DARK_LIGHTNESS_THRESHOLD) {\n darkPixelsCount++;\n }\n if (l > LIGHT_LIGHTNESS_THRESHOLD) {\n lightPixelsCount++;\n }\n }\n }\n }\n var totalPixelsCount = width * height;\n var opaquePixelsCount = totalPixelsCount - transparentPixelsCount;\n var DARK_IMAGE_THRESHOLD = 0.7;\n var LIGHT_IMAGE_THRESHOLD = 0.7;\n var TRANSPARENT_IMAGE_THRESHOLD = 0.1;\n var LARGE_IMAGE_PIXELS_COUNT = 800 * 600;\n return {\n isDark: darkPixelsCount / opaquePixelsCount >= DARK_IMAGE_THRESHOLD,\n isLight: lightPixelsCount / opaquePixelsCount >= LIGHT_IMAGE_THRESHOLD,\n isTransparent:\n transparentPixelsCount / totalPixelsCount >=\n TRANSPARENT_IMAGE_THRESHOLD,\n isLarge: naturalPixelsCount >= LARGE_IMAGE_PIXELS_COUNT,\n };\n }\n\n var objectURLs = new Set();\n\n function getFilteredImageDataURL(_a, filter) {\n var dataURL = _a.dataURL,\n width = _a.width,\n height = _a.height;\n var matrix = getSVGFilterMatrixValue(filter);\n var svg = [\n '',\n \"\",\n '',\n '',\n \"\",\n \"\",\n '',\n \"\",\n ].join(\"\");\n var bytes = new Uint8Array(svg.length);\n for (var i = 0; i < svg.length; i++) {\n bytes[i] = svg.charCodeAt(i);\n }\n var blob = new Blob([bytes], { type: \"image/svg+xml\" });\n var objectURL = URL.createObjectURL(blob);\n objectURLs.add(objectURL);\n return objectURL;\n }\n\n function cleanImageProcessingCache() {\n removeCanvas();\n objectURLs.forEach(function (u) {\n return URL.revokeObjectURL(u);\n });\n objectURLs.clear();\n }\n\n function getModifiableCSSDeclaration(\n property,\n value,\n rule,\n ignoreImageSelectors,\n isCancelled\n ) {\n var important = Boolean(\n rule && rule.style && rule.style.getPropertyPriority(property)\n );\n var sourceValue = value;\n if (property.startsWith(\"--\")) {\n return null;\n } else if (\n (property.indexOf(\"color\") >= 0 &&\n property !== \"-webkit-print-color-adjust\") ||\n property === \"fill\" ||\n property === \"stroke\" ||\n property === \"stop-color\"\n ) {\n var modifier = getColorModifier(property, value);\n if (modifier) {\n return {\n property: property,\n value: modifier,\n important: important,\n sourceValue: sourceValue,\n };\n }\n } else if (\n property === \"background-image\" ||\n property === \"list-style-image\"\n ) {\n var modifier = getBgImageModifier(\n value,\n rule,\n ignoreImageSelectors,\n isCancelled\n );\n if (modifier) {\n return {\n property: property,\n value: modifier,\n important: important,\n sourceValue: sourceValue,\n };\n }\n } else if (property.indexOf(\"shadow\") >= 0) {\n var modifier = getShadowModifier(property, value);\n if (modifier) {\n return {\n property: property,\n value: modifier,\n important: important,\n sourceValue: sourceValue,\n };\n }\n }\n return null;\n }\n\n function getModifiedUserAgentStyle(theme, isIFrame, styleSystemControls) {\n var lines = [];\n if (!isIFrame) {\n lines.push(\"html {\");\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor(\n {\n r: 255,\n g: 255,\n b: 255,\n },\n theme\n ) +\n \" !important;\"\n );\n lines.push(\"}\");\n }\n lines.push(\n \"\" +\n (isIFrame ? \"\" : \"html, body, \") +\n (styleSystemControls ? \"input, textarea, select, button\" : \"\") +\n \" {\"\n );\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor({ r: 255, g: 255, b: 255 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\n \"html, body, \" +\n (styleSystemControls ? \"input, textarea, select, button\" : \"\") +\n \" {\"\n );\n lines.push(\n \" border-color: \" +\n modifyBorderColor({ r: 76, g: 76, b: 76 }, theme) +\n \";\"\n );\n lines.push(\n \" color: \" + modifyForegroundColor({ r: 0, g: 0, b: 0 }, theme) + \";\"\n );\n lines.push(\"}\");\n lines.push(\"a {\");\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 0, g: 64, b: 255 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\"table {\");\n lines.push(\n \" border-color: \" +\n modifyBorderColor({ r: 128, g: 128, b: 128 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\"::placeholder {\");\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 169, g: 169, b: 169 }, theme) +\n \";\"\n );\n lines.push(\"}\");\n lines.push(\"input:-webkit-autofill,\");\n lines.push(\"textarea:-webkit-autofill,\");\n lines.push(\"select:-webkit-autofill {\");\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor({ r: 250, g: 255, b: 189 }, theme) +\n \" !important;\"\n );\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 0, g: 0, b: 0 }, theme) +\n \" !important;\"\n );\n lines.push(\"}\");\n if (theme.scrollbarColor) {\n lines.push(getModifiedScrollbarStyle(theme));\n }\n if (theme.selectionColor) {\n lines.push(getModifiedSelectionStyle(theme));\n }\n return lines.join(\"\\n\");\n }\n\n function getSelectionColor(theme) {\n var backgroundColorSelection;\n var foregroundColorSelection;\n if (theme.selectionColor === \"auto\") {\n backgroundColorSelection = modifyBackgroundColor(\n {\n r: 0,\n g: 96,\n b: 212,\n },\n __assign(__assign({}, theme), { grayscale: 0 })\n );\n foregroundColorSelection = modifyForegroundColor(\n {\n r: 255,\n g: 255,\n b: 255,\n },\n __assign(__assign({}, theme), { grayscale: 0 })\n );\n } else {\n var rgb = parse(theme.selectionColor);\n var hsl = rgbToHSL(rgb);\n backgroundColorSelection = theme.selectionColor;\n if (hsl.l < 0.5) {\n foregroundColorSelection = \"#FFF\";\n } else {\n foregroundColorSelection = \"#000\";\n }\n }\n return {\n backgroundColorSelection: backgroundColorSelection,\n foregroundColorSelection: foregroundColorSelection,\n };\n }\n\n function getModifiedSelectionStyle(theme) {\n var lines = [];\n var modifiedSelectionColor = getSelectionColor(theme);\n var backgroundColorSelection =\n modifiedSelectionColor.backgroundColorSelection;\n var foregroundColorSelection =\n modifiedSelectionColor.foregroundColorSelection;\n [\"::selection\", \"::-moz-selection\"].forEach(function (selection) {\n lines.push(selection + \" {\");\n lines.push(\n \" background-color: \" + backgroundColorSelection + \" !important;\"\n );\n lines.push(\" color: \" + foregroundColorSelection + \" !important;\");\n lines.push(\"}\");\n });\n return lines.join(\"\\n\");\n }\n\n function getModifiedScrollbarStyle(theme) {\n var lines = [];\n var colorTrack;\n var colorIcons;\n var colorThumb;\n var colorThumbHover;\n var colorThumbActive;\n var colorCorner;\n if (theme.scrollbarColor === \"auto\") {\n colorTrack = modifyBackgroundColor({ r: 241, g: 241, b: 241 }, theme);\n colorIcons = modifyForegroundColor({ r: 96, g: 96, b: 96 }, theme);\n colorThumb = modifyBackgroundColor({ r: 176, g: 176, b: 176 }, theme);\n colorThumbHover = modifyBackgroundColor(\n { r: 144, g: 144, b: 144 },\n theme\n );\n colorThumbActive = modifyBackgroundColor({ r: 96, g: 96, b: 96 }, theme);\n colorCorner = modifyBackgroundColor({ r: 255, g: 255, b: 255 }, theme);\n } else {\n var rgb = parse(theme.scrollbarColor);\n var hsl_1 = rgbToHSL(rgb);\n var isLight = hsl_1.l > 0.5;\n var lighten = function (lighter) {\n return __assign(__assign({}, hsl_1), {\n l: clamp(hsl_1.l + lighter, 0, 1),\n });\n };\n var darken = function (darker) {\n return __assign(__assign({}, hsl_1), {\n l: clamp(hsl_1.l - darker, 0, 1),\n });\n };\n colorTrack = hslToString(darken(0.4));\n colorIcons = hslToString(isLight ? darken(0.4) : lighten(0.4));\n colorThumb = hslToString(hsl_1);\n colorThumbHover = hslToString(lighten(0.1));\n colorThumbActive = hslToString(lighten(0.2));\n }\n lines.push(\"::-webkit-scrollbar {\");\n lines.push(\" background-color: \" + colorTrack + \";\");\n lines.push(\" color: \" + colorIcons + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-thumb {\");\n lines.push(\" background-color: \" + colorThumb + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-thumb:hover {\");\n lines.push(\" background-color: \" + colorThumbHover + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-thumb:active {\");\n lines.push(\" background-color: \" + colorThumbActive + \";\");\n lines.push(\"}\");\n lines.push(\"::-webkit-scrollbar-corner {\");\n lines.push(\" background-color: \" + colorCorner + \";\");\n lines.push(\"}\");\n lines.push(\"* {\");\n lines.push(\" scrollbar-color: \" + colorTrack + \" \" + colorThumb + \";\");\n lines.push(\"}\");\n return lines.join(\"\\n\");\n }\n\n function getModifiedFallbackStyle(filter, _a) {\n var strict = _a.strict;\n var lines = [];\n lines.push(\n \"html, body, \" +\n (strict ? \"body :not(iframe)\" : \"body > :not(iframe)\") +\n \" {\"\n );\n lines.push(\n \" background-color: \" +\n modifyBackgroundColor({ r: 255, g: 255, b: 255 }, filter) +\n \" !important;\"\n );\n lines.push(\n \" border-color: \" +\n modifyBorderColor({ r: 64, g: 64, b: 64 }, filter) +\n \" !important;\"\n );\n lines.push(\n \" color: \" +\n modifyForegroundColor({ r: 0, g: 0, b: 0 }, filter) +\n \" !important;\"\n );\n lines.push(\"}\");\n\n return \"\";\n return lines.join(\"\\n\");\n }\n\n var unparsableColors = new Set([\n \"inherit\",\n \"transparent\",\n \"initial\",\n \"currentcolor\",\n \"none\",\n \"unset\",\n ]);\n var colorParseCache$1 = new Map();\n\n function parseColorWithCache($color) {\n $color = $color.trim();\n if (colorParseCache$1.has($color)) {\n return colorParseCache$1.get($color);\n }\n var color = parse($color);\n colorParseCache$1.set($color, color);\n return color;\n }\n\n function tryParseColor($color) {\n try {\n return parseColorWithCache($color);\n } catch (err) {\n return null;\n }\n }\n\n function getColorModifier(prop, value) {\n if (unparsableColors.has(value.toLowerCase())) {\n return value;\n }\n try {\n var rgb_1 = parseColorWithCache(value);\n if (prop.indexOf(\"background\") >= 0) {\n return function (filter) {\n return modifyBackgroundColor(rgb_1, filter);\n };\n }\n if (prop.indexOf(\"border\") >= 0 || prop.indexOf(\"outline\") >= 0) {\n return function (filter) {\n return modifyBorderColor(rgb_1, filter);\n };\n }\n return function (filter) {\n return modifyForegroundColor(rgb_1, filter);\n };\n } catch (err) {\n logWarn(\"Color parse error\", err);\n return null;\n }\n }\n\n var gradientRegex =\n /[\\-a-z]+gradient\\(([^\\(\\)]*(\\(([^\\(\\)]*(\\(.*?\\)))*[^\\(\\)]*\\))){0,15}[^\\(\\)]*\\)/g;\n var imageDetailsCache = new Map();\n var awaitingForImageLoading = new Map();\n\n function shouldIgnoreImage(rule, selectors) {\n return false;\n\n if (!rule || selectors.length === 0) {\n return false;\n }\n if (\n selectors.some(function (s) {\n return s === \"*\";\n })\n ) {\n return true;\n }\n var ruleSelectors = rule.selectorText.split(/,\\s*/g);\n var _loop_1 = function (i) {\n var ignoredSelector = selectors[i];\n if (\n ruleSelectors.some(function (s) {\n return s === ignoredSelector;\n })\n ) {\n return { value: true };\n }\n };\n for (var i = 0; i < selectors.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\") return state_1.value;\n }\n return false;\n }\n\n function getBgImageModifier(value, rule, ignoreImageSelectors, isCancelled) {\n return null;\n\n var _this = this;\n try {\n var gradients = getMatches(gradientRegex, value);\n var urls = getMatches(cssURLRegex, value);\n if (urls.length === 0 && gradients.length === 0) {\n return value;\n }\n var getIndices = function (matches) {\n var index = 0;\n return matches.map(function (match) {\n var valueIndex = value.indexOf(match, index);\n index = valueIndex + match.length;\n return { match: match, index: valueIndex };\n });\n };\n var matches_1 = getIndices(urls)\n .map(function (i) {\n return __assign({ type: \"url\" }, i);\n })\n .concat(\n getIndices(gradients).map(function (i) {\n return __assign({ type: \"gradient\" }, i);\n })\n )\n .sort(function (a, b) {\n return a.index - b.index;\n });\n var getGradientModifier_1 = function (gradient) {\n var match = gradient.match(/^(.*-gradient)\\((.*)\\)$/);\n var type = match[1];\n var content = match[2];\n var partsRegex =\n /([^\\(\\),]+(\\([^\\(\\)]*(\\([^\\(\\)]*\\)*[^\\(\\)]*)?\\))?[^\\(\\),]*),?/g;\n var colorStopRegex = /^(from|color-stop|to)\\(([^\\(\\)]*?,\\s*)?(.*?)\\)$/;\n var parts = getMatches(partsRegex, content, 1).map(function (part) {\n part = part.trim();\n var rgb = tryParseColor(part);\n if (rgb) {\n return function (filter) {\n return modifyGradientColor(rgb, filter);\n };\n }\n var space = part.lastIndexOf(\" \");\n rgb = tryParseColor(part.substring(0, space));\n if (rgb) {\n return function (filter) {\n return (\n modifyGradientColor(rgb, filter) +\n \" \" +\n part.substring(space + 1)\n );\n };\n }\n var colorStopMatch = part.match(colorStopRegex);\n if (colorStopMatch) {\n rgb = tryParseColor(colorStopMatch[3]);\n if (rgb) {\n return function (filter) {\n return (\n colorStopMatch[1] +\n \"(\" +\n (colorStopMatch[2] ? colorStopMatch[2] + \", \" : \"\") +\n modifyGradientColor(rgb, filter) +\n \")\"\n );\n };\n }\n }\n return function () {\n return part;\n };\n });\n return function (filter) {\n return (\n type +\n \"(\" +\n parts\n .map(function (modify) {\n return modify(filter);\n })\n .join(\", \") +\n \")\"\n );\n };\n };\n var getURLModifier_1 = function (urlValue) {\n var url = getCSSURLValue(urlValue);\n if (rule.parentStyleSheet.href) {\n var basePath = getCSSBaseBath(rule.parentStyleSheet.href);\n url = getAbsoluteURL(basePath, url);\n } else if (\n rule.parentStyleSheet.ownerNode &&\n rule.parentStyleSheet.ownerNode.baseURI\n ) {\n url = getAbsoluteURL(rule.parentStyleSheet.ownerNode.baseURI, url);\n } else {\n url = getAbsoluteURL(location.origin, url);\n }\n var absoluteValue = 'url(\"' + url + '\")';\n return function (filter) {\n return __awaiter(_this, void 0, void 0, function () {\n var imageDetails, awaiters_1, err_1, bgImageValue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!imageDetailsCache.has(url)) return [3, 1];\n imageDetails = imageDetailsCache.get(url);\n return [3, 7];\n case 1:\n _a.trys.push([1, 6, , 7]);\n if (shouldIgnoreImage(rule, ignoreImageSelectors)) {\n return [2, null];\n }\n if (!awaitingForImageLoading.has(url)) return [3, 3];\n awaiters_1 = awaitingForImageLoading.get(url);\n return [\n 4,\n new Promise(function (resolve) {\n return awaiters_1.push(resolve);\n }),\n ];\n case 2:\n imageDetails = _a.sent();\n if (!imageDetails) {\n return [2, null];\n }\n return [3, 5];\n case 3:\n awaitingForImageLoading.set(url, []);\n return [4, getImageDetails(url)];\n case 4:\n imageDetails = _a.sent();\n imageDetailsCache.set(url, imageDetails);\n awaitingForImageLoading.get(url).forEach(function (resolve) {\n return resolve(imageDetails);\n });\n awaitingForImageLoading.delete(url);\n _a.label = 5;\n case 5:\n if (isCancelled()) {\n return [2, null];\n }\n return [3, 7];\n case 6:\n err_1 = _a.sent();\n logWarn(err_1);\n if (awaitingForImageLoading.has(url)) {\n awaitingForImageLoading\n .get(url)\n .forEach(function (resolve) {\n return resolve(null);\n });\n awaitingForImageLoading.delete(url);\n }\n return [2, absoluteValue];\n case 7:\n bgImageValue =\n getBgImageValue_1(imageDetails, filter) || absoluteValue;\n return [2, bgImageValue];\n }\n });\n });\n };\n };\n var getBgImageValue_1 = function (imageDetails, filter) {\n var isDark = imageDetails.isDark,\n isLight = imageDetails.isLight,\n isTransparent = imageDetails.isTransparent,\n isLarge = imageDetails.isLarge,\n width = imageDetails.width;\n var result;\n if (\n isDark &&\n isTransparent &&\n filter.mode === 1 &&\n !isLarge &&\n width > 2\n ) {\n logInfo(\"Inverting dark image \" + imageDetails.src);\n var inverted = getFilteredImageDataURL(\n imageDetails,\n __assign(__assign({}, filter), {\n sepia: clamp(filter.sepia + 10, 0, 100),\n })\n );\n result = 'url(\"' + inverted + '\")';\n } else if (isLight && !isTransparent && filter.mode === 1) {\n if (isLarge) {\n result = \"none\";\n } else {\n logInfo(\"Dimming light image \" + imageDetails.src);\n var dimmed = getFilteredImageDataURL(imageDetails, filter);\n result = 'url(\"' + dimmed + '\")';\n }\n } else if (filter.mode === 0 && isLight && !isLarge) {\n logInfo(\"Applying filter to image \" + imageDetails.src);\n var filtered = getFilteredImageDataURL(\n imageDetails,\n __assign(__assign({}, filter), {\n brightness: clamp(filter.brightness - 10, 5, 200),\n sepia: clamp(filter.sepia + 10, 0, 100),\n })\n );\n result = 'url(\"' + filtered + '\")';\n } else {\n result = null;\n }\n return result;\n };\n var modifiers_1 = [];\n var index_1 = 0;\n matches_1.forEach(function (_a, i) {\n var match = _a.match,\n type = _a.type,\n matchStart = _a.index;\n var prefixStart = index_1;\n var matchEnd = matchStart + match.length;\n index_1 = matchEnd;\n modifiers_1.push(function () {\n return value.substring(prefixStart, matchStart);\n });\n modifiers_1.push(\n type === \"url\"\n ? getURLModifier_1(match)\n : getGradientModifier_1(match)\n );\n if (i === matches_1.length - 1) {\n modifiers_1.push(function () {\n return value.substring(matchEnd);\n });\n }\n });\n return function (filter) {\n var results = modifiers_1.map(function (modify) {\n return modify(filter);\n });\n if (\n results.some(function (r) {\n return r instanceof Promise;\n })\n ) {\n return Promise.all(results).then(function (asyncResults) {\n return asyncResults.join(\"\");\n });\n }\n return results.join(\"\");\n };\n } catch (err) {\n logWarn(\"Unable to parse gradient \" + value, err);\n return null;\n }\n }\n\n function getShadowModifier(prop, value) {\n try {\n var index_2 = 0;\n var colorMatches_1 = getMatches(\n /(^|\\s)([a-z]+\\(.+?\\)|#[0-9a-f]+|[a-z]+)(.*?(inset|outset)?($|,))/gi,\n value,\n 2\n );\n var modifiers_2 = colorMatches_1.map(function (match, i) {\n var prefixIndex = index_2;\n var matchIndex = value.indexOf(match, index_2);\n var matchEnd = matchIndex + match.length;\n index_2 = matchEnd;\n var rgb = tryParseColor(match);\n if (!rgb) {\n return function () {\n return value.substring(prefixIndex, matchEnd);\n };\n }\n return function (filter) {\n return (\n \"\" +\n value.substring(prefixIndex, matchIndex) +\n modifyShadowColor(rgb, filter) +\n (i === colorMatches_1.length - 1 ? value.substring(matchEnd) : \"\")\n );\n };\n });\n return function (filter) {\n return modifiers_2\n .map(function (modify) {\n return modify(filter);\n })\n .join(\"\");\n };\n } catch (err) {\n logWarn(\"Unable to parse shadow \" + value, err);\n return null;\n }\n }\n\n function cleanModificationCache() {\n colorParseCache$1.clear();\n clearColorModificationCache();\n imageDetailsCache.clear();\n cleanImageProcessingCache();\n awaitingForImageLoading.clear();\n }\n\n var overrides = {\n \"background-color\": {\n customProp: \"--wp-dark-mode-inline-bgcolor\",\n cssProp: \"background-color\",\n dataAttr: \"data-darkmoder-inline-bgcolor\",\n },\n \"background-image\": {\n customProp: \"--wp-dark-mode-inline-bgimage\",\n cssProp: \"background-image\",\n dataAttr: \"data-darkmoder-inline-bgimage\",\n },\n \"border-color\": {\n customProp: \"--wp-dark-mode-inline-border\",\n cssProp: \"border-color\",\n dataAttr: \"data-darkmoder-inline-border\",\n },\n \"border-bottom-color\": {\n customProp: \"--wp-dark-mode-inline-border-bottom\",\n cssProp: \"border-bottom-color\",\n dataAttr: \"data-darkmoder-inline-border-bottom\",\n },\n \"border-left-color\": {\n customProp: \"--wp-dark-mode-inline-border-left\",\n cssProp: \"border-left-color\",\n dataAttr: \"data-darkmoder-inline-border-left\",\n },\n \"border-right-color\": {\n customProp: \"--wp-dark-mode-inline-border-right\",\n cssProp: \"border-right-color\",\n dataAttr: \"data-darkmoder-inline-border-right\",\n },\n \"border-top-color\": {\n customProp: \"--wp-dark-mode-inline-border-top\",\n cssProp: \"border-top-color\",\n dataAttr: \"data-darkmoder-inline-border-top\",\n },\n \"box-shadow\": {\n customProp: \"--wp-dark-mode-inline-boxshadow\",\n cssProp: \"box-shadow\",\n dataAttr: \"data-darkmoder-inline-boxshadow\",\n },\n color: {\n customProp: \"--wp-dark-mode-inline-color\",\n cssProp: \"color\",\n dataAttr: \"data-darkmoder-inline-color\",\n },\n fill: {\n customProp: \"--wp-dark-mode-inline-fill\",\n cssProp: \"fill\",\n dataAttr: \"data-darkmoder-inline-fill\",\n },\n stroke: {\n customProp: \"--wp-dark-mode-inline-stroke\",\n cssProp: \"stroke\",\n dataAttr: \"data-darkmoder-inline-stroke\",\n },\n \"outline-color\": {\n customProp: \"--wp-dark-mode-inline-outline\",\n cssProp: \"outline-color\",\n dataAttr: \"data-darkmoder-inline-outline\",\n },\n \"stop-color\": {\n customProp: \"--wp-dark-mode-inline-stopcolor\",\n cssProp: \"stop-color\",\n dataAttr: \"data-darkmoder-inline-stopcolor\",\n },\n };\n var overridesList = Object.values(overrides);\n var INLINE_STYLE_ATTRS = [\n \"style\",\n \"fill\",\n \"stop-color\",\n \"stroke\",\n \"bgcolor\",\n \"color\",\n ];\n var INLINE_STYLE_SELECTOR = INLINE_STYLE_ATTRS.map(function (attr) {\n return \"[\" + attr + \"]\";\n }).join(\", \");\n\n function getInlineOverrideStyle() {\n return overridesList\n .map(function (_a) {\n var dataAttr = _a.dataAttr,\n customProp = _a.customProp,\n cssProp = _a.cssProp;\n return [\n \"[\" + dataAttr + \"] {\",\n \" \" + cssProp + \": var(\" + customProp + \") !important;\",\n \"}\",\n ].join(\"\\n\");\n })\n .join(\"\\n\");\n }\n\n function getInlineStyleElements(root) {\n var results = [];\n if (root instanceof Element && root.matches(INLINE_STYLE_SELECTOR)) {\n results.push(root);\n }\n if (\n root instanceof Element ||\n (isShadowDomSupported && root instanceof ShadowRoot) ||\n root instanceof Document\n ) {\n push(results, root.querySelectorAll(INLINE_STYLE_SELECTOR));\n }\n return results;\n }\n\n var treeObservers = new Map();\n var attrObservers = new Map();\n\n function watchForInlineStyles(elementStyleDidChange, shadowRootDiscovered) {\n deepWatchForInlineStyles(\n document,\n elementStyleDidChange,\n shadowRootDiscovered\n );\n iterateShadowHosts(document.documentElement, function (host) {\n deepWatchForInlineStyles(\n host.shadowRoot,\n elementStyleDidChange,\n shadowRootDiscovered\n );\n });\n }\n\n function deepWatchForInlineStyles(\n root,\n elementStyleDidChange,\n shadowRootDiscovered\n ) {\n if (treeObservers.has(root)) {\n treeObservers.get(root).disconnect();\n attrObservers.get(root).disconnect();\n }\n var discoveredNodes = new WeakSet();\n\n function discoverNodes(node) {\n getInlineStyleElements(node).forEach(function (el) {\n if (discoveredNodes.has(el)) {\n return;\n }\n discoveredNodes.add(el);\n elementStyleDidChange(el);\n });\n iterateShadowHosts(node, function (n) {\n if (discoveredNodes.has(node)) {\n return;\n }\n discoveredNodes.add(node);\n shadowRootDiscovered(n.shadowRoot);\n deepWatchForInlineStyles(\n n.shadowRoot,\n elementStyleDidChange,\n shadowRootDiscovered\n );\n });\n }\n\n var treeObserver = createOptimizedTreeObserver(root, {\n onMinorMutations: function (_a) {\n var additions = _a.additions;\n additions.forEach(function (added) {\n return discoverNodes(added);\n });\n },\n onHugeMutations: function () {\n discoverNodes(root);\n },\n });\n treeObservers.set(root, treeObserver);\n var attemptCount = 0;\n var start = null;\n var ATTEMPTS_INTERVAL = getDuration({ seconds: 10 });\n var RETRY_TIMEOUT = getDuration({ seconds: 2 });\n var MAX_ATTEMPTS_COUNT = 50;\n var cache = [];\n var timeoutId = null;\n var handleAttributeMutations = throttle(function (mutations) {\n mutations.forEach(function (m) {\n if (INLINE_STYLE_ATTRS.includes(m.attributeName)) {\n elementStyleDidChange(m.target);\n }\n });\n });\n var attrObserver = new MutationObserver(function (mutations) {\n if (timeoutId) {\n cache.push.apply(cache, __spread(mutations));\n return;\n }\n attemptCount++;\n var now = Date.now();\n if (start == null) {\n start = now;\n } else if (attemptCount >= MAX_ATTEMPTS_COUNT) {\n if (now - start < ATTEMPTS_INTERVAL) {\n timeoutId = setTimeout(function () {\n start = null;\n attemptCount = 0;\n timeoutId = null;\n var attributeCache = cache;\n cache = [];\n handleAttributeMutations(attributeCache);\n }, RETRY_TIMEOUT);\n cache.push.apply(cache, __spread(mutations));\n return;\n }\n start = now;\n attemptCount = 1;\n }\n handleAttributeMutations(mutations);\n });\n attrObserver.observe(root, {\n attributes: true,\n attributeFilter: INLINE_STYLE_ATTRS.concat(\n overridesList.map(function (_a) {\n var dataAttr = _a.dataAttr;\n return dataAttr;\n })\n ),\n subtree: true,\n });\n attrObservers.set(root, attrObserver);\n }\n\n function stopWatchingForInlineStyles() {\n treeObservers.forEach(function (o) {\n return o.disconnect();\n });\n attrObservers.forEach(function (o) {\n return o.disconnect();\n });\n treeObservers.clear();\n attrObservers.clear();\n }\n\n var inlineStyleCache = new WeakMap();\n var filterProps = [\"brightness\", \"contrast\", \"grayscale\", \"sepia\", \"mode\"];\n\n function getInlineStyleCacheKey(el, theme) {\n return INLINE_STYLE_ATTRS.map(function (attr) {\n return attr + '=\"' + el.getAttribute(attr) + '\"';\n })\n .concat(\n filterProps.map(function (prop) {\n return prop + '=\"' + theme[prop] + '\"';\n })\n )\n .join(\" \");\n }\n\n function shouldIgnoreInlineStyle(element, selectors) {\n for (var i = 0, len = selectors.length; i < len; i++) {\n var ingnoredSelector = selectors[i];\n if (element.matches(ingnoredSelector)) {\n return true;\n }\n }\n return false;\n }\n\n function overrideInlineStyle(\n element,\n theme,\n ignoreInlineSelectors,\n ignoreImageSelectors\n ) {\n var cacheKey = getInlineStyleCacheKey(element, theme);\n if (cacheKey === inlineStyleCache.get(element)) {\n return;\n }\n var unsetProps = new Set(Object.keys(overrides));\n\n function setCustomProp(targetCSSProp, modifierCSSProp, cssVal) {\n var _a = overrides[targetCSSProp],\n customProp = _a.customProp,\n dataAttr = _a.dataAttr;\n var mod = getModifiableCSSDeclaration(\n modifierCSSProp,\n cssVal,\n null,\n ignoreImageSelectors,\n null\n );\n if (!mod) {\n return;\n }\n var value = mod.value;\n if (typeof value === \"function\") {\n value = value(theme);\n }\n element.style.setProperty(customProp, value);\n if (!element.hasAttribute(dataAttr)) {\n element.setAttribute(dataAttr, \"\");\n }\n unsetProps.delete(targetCSSProp);\n }\n\n if (ignoreInlineSelectors.length > 0) {\n if (shouldIgnoreInlineStyle(element, ignoreInlineSelectors)) {\n unsetProps.forEach(function (cssProp) {\n element.removeAttribute(overrides[cssProp].dataAttr);\n });\n return;\n }\n }\n if (element.hasAttribute(\"bgcolor\")) {\n var value = element.getAttribute(\"bgcolor\");\n if (value.match(/^[0-9a-f]{3}$/i) || value.match(/^[0-9a-f]{6}$/i)) {\n value = \"#\" + value;\n }\n setCustomProp(\"background-color\", \"background-color\", value);\n }\n if (element.hasAttribute(\"color\")) {\n var value = element.getAttribute(\"color\");\n if (value.match(/^[0-9a-f]{3}$/i) || value.match(/^[0-9a-f]{6}$/i)) {\n value = \"#\" + value;\n }\n setCustomProp(\"color\", \"color\", value);\n }\n if (element instanceof SVGElement) {\n if (element.hasAttribute(\"fill\")) {\n var SMALL_SVG_LIMIT = 32;\n var value = element.getAttribute(\"fill\");\n var isBg = false;\n if (!(element instanceof SVGTextElement)) {\n var _a = element.getBoundingClientRect(),\n width = _a.width,\n height = _a.height;\n isBg = width > SMALL_SVG_LIMIT || height > SMALL_SVG_LIMIT;\n }\n setCustomProp(\"fill\", isBg ? \"background-color\" : \"color\", value);\n }\n if (element.hasAttribute(\"stop-color\")) {\n setCustomProp(\n \"stop-color\",\n \"background-color\",\n element.getAttribute(\"stop-color\")\n );\n }\n }\n if (element.hasAttribute(\"stroke\")) {\n var value = element.getAttribute(\"stroke\");\n setCustomProp(\n \"stroke\",\n element instanceof SVGLineElement || element instanceof SVGTextElement\n ? \"border-color\"\n : \"color\",\n value\n );\n }\n element.style &&\n iterateCSSDeclarations(element.style, function (property, value) {\n if (property === \"background-image\" && value.indexOf(\"url\") >= 0) {\n return;\n }\n if (overrides.hasOwnProperty(property)) {\n setCustomProp(property, property, value);\n }\n });\n if (\n element.style &&\n element instanceof SVGTextElement &&\n element.style.fill\n ) {\n setCustomProp(\"fill\", \"color\", element.style.getPropertyValue(\"fill\"));\n }\n forEach(unsetProps, function (cssProp) {\n element.removeAttribute(overrides[cssProp].dataAttr);\n });\n inlineStyleCache.set(element, getInlineStyleCacheKey(element, theme));\n }\n\n var metaThemeColorName = \"theme-color\";\n var metaThemeColorSelector = 'meta[name=\"' + metaThemeColorName + '\"]';\n var srcMetaThemeColor = null;\n var observer = null;\n\n function changeMetaThemeColor(meta, theme) {\n srcMetaThemeColor = srcMetaThemeColor || meta.content;\n try {\n var color = parse(srcMetaThemeColor);\n meta.content = modifyBackgroundColor(color, theme);\n } catch (err) {\n logWarn(err);\n }\n }\n\n function changeMetaThemeColorWhenAvailable(theme) {\n var meta = document.querySelector(metaThemeColorSelector);\n if (meta) {\n changeMetaThemeColor(meta, theme);\n } else {\n if (observer) {\n observer.disconnect();\n }\n observer = new MutationObserver(function (mutations) {\n loop: for (var i = 0; i < mutations.length; i++) {\n var addedNodes = mutations[i].addedNodes;\n for (var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n if (\n node instanceof HTMLMetaElement &&\n node.name === metaThemeColorName\n ) {\n observer.disconnect();\n observer = null;\n changeMetaThemeColor(node, theme);\n break loop;\n }\n }\n }\n });\n observer.observe(document.head, { childList: true });\n }\n }\n\n function restoreMetaThemeColor() {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n var meta = document.querySelector(metaThemeColorSelector);\n if (meta && srcMetaThemeColor) {\n meta.content = srcMetaThemeColor;\n }\n }\n\n var themeCacheKeys$1 = [\n \"mode\",\n \"brightness\",\n \"contrast\",\n \"grayscale\",\n \"sepia\",\n \"darkSchemeBackgroundColor\",\n \"darkSchemeTextColor\",\n \"lightSchemeBackgroundColor\",\n \"lightSchemeTextColor\",\n ];\n\n function getThemeKey(theme) {\n return themeCacheKeys$1\n .map(function (p) {\n return p + \":\" + theme[p];\n })\n .join(\";\");\n }\n\n var asyncQueue = createAsyncTasksQueue();\n\n function createStyleSheetModifier() {\n var renderId = 0;\n var rulesTextCache = new Map();\n var rulesModCache = new Map();\n var prevFilterKey = null;\n\n function modifySheet(options) {\n var newRules = options.sourceCSSRules;\n\n var theme = options.theme,\n variables = options.variables,\n ignoreImageAnalysis = options.ignoreImageAnalysis,\n force = options.force,\n prepareSheet = options.prepareSheet,\n isAsyncCancelled = options.isAsyncCancelled;\n var rulesChanged = rulesModCache.size === 0;\n var notFoundCacheKeys = new Set(rulesModCache.keys());\n var themeKey = getThemeKey(theme);\n var themeChanged = themeKey !== prevFilterKey;\n var modRules = [];\n iterateCSSRules(newRules, function (rule) {\n if (\n rule.parentStyleSheet.ownerNode && \n \"wp-dark-mode-custom-css\" ===\n rule.parentStyleSheet.ownerNode.getAttribute(\"id\")\n ) {\n return;\n }\n\n var cssText = rule.cssText;\n var textDiffersFromPrev = false;\n notFoundCacheKeys.delete(cssText);\n if (!rulesTextCache.has(cssText)) {\n rulesTextCache.set(cssText, cssText);\n textDiffersFromPrev = true;\n }\n var vars;\n var varsRule = null;\n if (variables.size > 0 || cssText.includes(\"var(\")) {\n var cssTextWithVariables = replaceCSSVariables(cssText, variables);\n if (rulesTextCache.get(cssText) !== cssTextWithVariables) {\n rulesTextCache.set(cssText, cssTextWithVariables);\n textDiffersFromPrev = true;\n vars = getTempCSSStyleSheet();\n vars.insertRule(cssTextWithVariables);\n varsRule = vars.cssRules[0];\n }\n }\n if (textDiffersFromPrev) {\n rulesChanged = true;\n } else {\n modRules.push(rulesModCache.get(cssText));\n return;\n }\n var modDecs = [];\n var targetRule = varsRule || rule;\n targetRule &&\n targetRule.style &&\n iterateCSSDeclarations(targetRule.style, function (property, value) {\n var mod = getModifiableCSSDeclaration(\n property,\n value,\n rule,\n ignoreImageAnalysis,\n isAsyncCancelled\n );\n if (mod) {\n modDecs.push(mod);\n }\n });\n var modRule = null;\n if (modDecs.length > 0) {\n var parentRule = rule.parentRule;\n modRule = {\n selector: rule.selectorText,\n declarations: modDecs,\n parentRule: parentRule,\n };\n modRules.push(modRule);\n }\n rulesModCache.set(cssText, modRule);\n vars && vars.deleteRule(0);\n });\n notFoundCacheKeys.forEach(function (key) {\n rulesTextCache.delete(key);\n rulesModCache.delete(key);\n });\n prevFilterKey = themeKey;\n if (!force && !rulesChanged && !themeChanged) {\n return;\n }\n renderId++;\n\n function setRule(target, index, rule) {\n var selector = rule.selector,\n declarations = rule.declarations;\n\n if (!selector) {\n return;\n }\n\n const queryCheck = (s) =>\n document.createDocumentFragment().querySelector(s);\n\n const isSelectorValid = (selector) => {\n try {\n queryCheck(selector);\n } catch {\n return false;\n }\n return true;\n };\n\n //return if the selector is not valid\n if (!isSelectorValid(selector)) return;\n\n const element = document.querySelector(selector);\n\n if (typeof element === \"undefined\" || !element) {\n return;\n }\n\n target.insertRule(selector + \" {}\", index);\n var style = target.cssRules[index].style;\n\n declarations.forEach(function (_a) {\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 (selector.includes(\".wp-dark-mode-ignore\")) {\n return;\n }\n\n // Return if element is excluded\n if (element.classList.contains(\"wp-dark-mode-ignore\")) {\n return;\n }\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 \"./DarkModeAuto.js\";\nimport Base from './Base.js';\nimport WPDarkMode from \"./DarkMode.js\";\n\nclass Color extends Base {\n\n // Fires when the DOM is ready\n ready() {\n // Log(DarkModeAuto)\n // return;\n this.initHandlers();\n\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 // For Auto Color Mode\n if ( this.isAutoColor ) {\n\n if ( WPDarkMode.isActive ) {\n DarkModeAuto.enable(FiltersConfig, {\n ignoreInlineStyle: '.wp-dark-mode-ignore'\n });\n }\n\n WPDarkMode.onChange(() => {\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\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 * Get all the elements from the body\n */\n getElements() {\n let selectors = ''\n\n if (this.isAutoColor) {\n selectors = 'html *:not(.wp-dark-mode-ignore)'\n } else {\n const tags = ['div', 'aside', 'header', 'footer', 'main', 'article', 'section'];\n selectors = tags.map(tag => `body ${tag}:not(.wp-dark-mode-ignore)`).join(',')\n // selectors = 'body *'\n }\n\n // Log('selectors', selectors)\n return document.querySelectorAll(selectors);\n }\n\n /**\n * Apply colors to the elements\n * \n * @param {boolean} isDark \n * @returns \n */\n initHandlers() {\n\n if (!this.getElements()) return;\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.fixColors();\n this.handleIncludes();\n this.HandleExcludes();\n }\n\n /**\n * Fix colors\n *\n */\n fixColors(){\n const all = document.querySelectorAll( ['div', 'aside', 'header', 'footer', 'main', 'article', 'section'].map(tag => `body ${tag}:not(.wp-dark-mode-ignore)`).join(',') );\n // 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 element.classList.add('wp-dark-mode-ignore');\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 = wp_dark_mode_json.options.excludes_elements ? wp_dark_mode_json.options.excludes_elements + ',.wp-dark-mode-ignore' : '.wp-dark-mode-ignore';\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 // Log('Including', includedElements)\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.2126 * r) + (0.7152 * g) + (0.0722 * b);\n }\n\n /**\n * Is Dark Color\n * \n *\n * @param {string} color\n * @return {boolean}\n */\n isDarkColor = 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 * Make Color Dark\n *\n * @param {string} color\n * @param {number} percentage\n * @return {string}\n */\n getDarkColor = (color, percentage) => {\n return 'red'\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 dark color\n const darkColor = `rgb(${r - percentage}, ${g - percentage}, ${b - percentage})`;\n\n // Return the dark color\n return darkColor;\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 const rgb = this.hexToRGB(color)\n\n if (!this.isRGB(color)) return true\n\n // return true if color is rgb(0,0,0) or rgba(*,*,*,0) \n if ( rgb )\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;\n\n // Log(\"Should Ignore\", element, backgroundColor)\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)) return true;\n\n // Has background image.\n if (window.getComputedStyle(element).backgroundImage !== 'none') return true;\n\n return false;\n }\n\n}\n\nexport default new Color();","import WPDarkMode from \"./DarkMode\";\nimport Store from \"./Store\";\nimport Images from \"./Images\";\nimport Videos from \"./Videos\";\nimport Accessibility from \"./Accessibility\";\nimport Color from \"./Color\";\nimport Base from \"./Base\";\n\nclass DarkModeApp extends Base {\n\n\t/**\n\t * Events\n\t */\n\tevents() {\n\n\t\t// Sync storages.\n\t\tthis.syncStorage();\n\t\t\n\t\t// Register event listeners.\n\t\tthis.RegisterEvents();\n\n\t\t// Emit init\n\t\tthis.emit('init');\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sync storages\n\t */\n\tasync syncStorage() {\n\t\t// Update user timezone.\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// Update user device preference.\n\t\tStore.set( 'device', WPDarkMode.isDeviceDark ? 'dark' : 'light' );\n\n\t\tif ( wp_dark_mode_json.options.frontend_mode === 'sunset' ) {\n\t\t\t\n\t\t\t// Get device information.\n\t\t\tthis.updateDeviceInformation()\n\t\t}\n\t}\n\n\t/**\n\t * Update device information\n\t */\n\tasync updateDeviceInformation() {\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\t\t});\n\n\t}\n\t/**\n\t * Follow device preference for dark mode\n\t */\n\tfollowDevicePreference() {\n\t\t// Bail, if user choice is set.\n\t\tif (Store.get( 'choice' ) !== null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (WPDarkMode.isDeviceDark) {\n\t\t\tWPDarkMode.activate();\n\t\t} else {\n\t\t\tWPDarkMode.deactivate();\n\t\t}\n\t}\n\n\t/**\n\t * Register event listeners\n\t */\n\tRegisterEvents() {\n\t\t// Track device settings.\n\t\tthis.TrackDeviceSettings();\n\n\t\tdocument.addEventListener('DOMContentLoaded', this.HandleExcludes );\n\n\t\t// Apply colors when dark mode is changed.\n\t\tColor.init();\n\n\t\tAccessibility.init();\n\n\t\t// Media. \n\t\tImages.init();\n\n\t\tVideos.init();\n\t}\n\n\t/**\n\t * Listen for device dark mode change\n\t */\n\tTrackDeviceSettings() {\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\tmediaQuery.addEventListener('change', function() {\n\n\t\t\tconst isDark = mediaQuery.matches\n\t\t\t\n\t\t\t// Update user device preference.\n\t\t\tStore.set( 'device', isDark ? 'dark' : 'light' );\n\n\t\t\t// React to device preference change.\n\t\t\t\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\t// Bail, if dark mode is not following device mode.\n\t\t\tif ( wp_dark_mode_json.options.frontend_mode !== 'device' ) return;\n\n\t\t\t// React to device preference change.\n\t\t\tif (isDark) {\n\t\t\t\tWPDarkMode.activate();\n\t\t\t} else {\n\t\t\t\tWPDarkMode.deactivate();\n\t\t\t}\n\n\t\t});\n\t}\n\n\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 './DarkMode'\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\t// Inject switches when mutation occurs in BODY.\n\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\tmutations.forEach((mutation) => {\n\t\t\t\tif (this.throttle) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Log('ClassList changed!');\n\n\t\t\t\tthis.throttle = true;\n\t\t\t\tsetTimeout(this.injectSwitches, 200);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.throttle = false;\n\t\t\t\t}, 500);\n\t\t\t});\n\t\t});\n\n\t\tobserver.observe(document.body, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t\tattributes: false,\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// 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\tthis.emit('injected');\n\t}\n\n\t/**\n\t * Listen switch clicks\n\t */\n\tlistenSwitches() {\n\t\tdocument.addEventListener('click', (event) => {\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\tthis.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\t// Log('not font toggle');\n\t\t\t\tWPDarkMode.toggle();\n\t\t\t\tWPDarkMode.remember();\n\n\t\t\t\tthis.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\tconst instantChild = switchEl.querySelector('& > div')\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\tthis.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\tclicked = (callback) => {\n\t\tthis.on('click', callback);\n\t}\n\n}\n\nexport default new DarkModeSwitch();","export const Log = () => {\n const args = Array.prototype.slice.call(arguments);\n\n if (typeof args[0] === 'string') {\n args[0] = '%c' + args[0];\n args.splice(1, 0, 'color: #f00');\n }\n\n console.log.apply(console, args);\n}","import DarkModeApp from '@common/app.js';\nimport DarkModeSwitch from '@common/Switch.js';\nimport { Log } from '@common/Utility.js';\n\n/**\n * Initialize the app\n *\n * These classes can be initialized only once to avoid conflicts\n */\n\nwindow.Log = Log;\n\nwindow.WPDarkModeApp = DarkModeApp.init();\n\n// Initialize the switch.\nDarkModeSwitch.init();"],"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","Images","images","image","currentSrc","darkSrc","lightSrc","elementsWithBackground","element","backgroundImage","src","replaceable_images","imagePair","img","srcWithoutQuery","lowBrightnessExcludes","lowGrayscaleExcludes","Images$1","Videos","url","youtubeRegex","vimeoRegex","videoFileRegex","regex","match","vid","mode","host","videoID","videos","video","replaceable_videos","videoPair","embeds","embeddedVideos","embed","Videos$1","Accessibility","elements","desiredSize","fontSize","newFontSize","size","by","unit","newValue","switches","switchEl","e","html","isLargeFont","isActive","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","v","op","__values","o","m","__read","r","ar","error","__spread","userAgent","platform","isChromium","isFirefox","isSafari","isWindows","isMacOS","isShadowDomSupported","isDefinedSelectorSupported","isCSSStyleSheetConstructorSupported","getOKResponse","mimeType","response","loadAsDataURL","readResponseAsDataURL","blob","dataURL","reader","setFetchMethod","fetch","messageListeners","sendMessage","addMessageListener","nativeSendMessage_1","_i","nativeAddListener_1","ThemeEngines","DEFAULT_COLORS","DEFAULT_THEME","isArrayLike","items","forEach","iterator","e_1","len","items_1","items_1_1","e_1_1","push","array","addition","a","toArray","results","anchor","fixBaseURL","$url","parseURL","$base","getAbsoluteURL","$relative","b","logWarn","iterateCSSRules","rules","iterate","rule","media","err","iterateCSSDeclarations","style","property","isCSSVariable","getCSSVariables","variables","getElementCSSVariables","cssURLRegex","cssImportRegex","getCSSURLValue","cssURL","getCSSBaseBath","replaceCSSRelativeURLsWithAbsolute","$css","cssBasePath","pathValue","cssCommentsRegex","removeCSSComments","fontFaceRegex","replaceCSSFontFace","varRegex","replaceCSSVariables","stack","missing","unresolvable","name","fallback","value_1","throttle","pending","frameId","lastArgs","throttled","cancel","createAsyncTasksQueue","tasks","runTasks","task","add","getDuration","time","duration","removeNode","node","watchForNodePosition","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","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","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","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","queryCheck","asyncDeclarations","asyncDeclarationCounter","rootReadyGroup","groupRefs","getGroup","parentGroup","readyStyleRule","readyDeclarations","asyncKey_1","asyncDeclaration_1","promise","currentRenderId_1","asyncValue","rebuildAsyncRule","sheet","buildStyleSheet","createTarget","iterateReadyRules","styleIterator","asyncKey","STYLE_SELECTOR","shouldManageStyle","getManageableStyles","deep","syncStyleSet","corsStyleSet","canOptimizeUsingProxy","manageStyle","update","loadingStart","loadingEnd","prevStyles","next","corsCopy","syncStyle","corsCopyPositionWatcher","syncStylePositionWatcher","cancelAsyncOperations","sheetModifier","observerOptions","containsCSSImport","getRulesSync","safeGetSheetRules","insertStyle","createSyncStyle","isLoadingRules","wasLoadingError","getRulesAsync","cssRules","accessError","fullCSSText","getRulesOrError","isStillLoadingError","linkLoading","loadText","replaceCSSImports","createCORSCopy","details","forceRenderStyle","render","ignoreImageAnalysis","prepareOverridesSheet","buildOverrides","watchForSheetChanges","watchForSheetChangesUsingProxy","watchForSheetChangesUsingRAF","rulesChangeKey","rulesCheckFrameId","getRulesChangeKey","didRulesKeyChange","stopWatchingForSheetChangesUsingRAF","checkForUpdate","areSheetChangesPending","onSheetChange","handleSheetChanges","stopWatchingForSheetChangesUsingProxy","stopWatchingForSheetChanges","pause","destroy","watch","maxMoveCount","moveCount","shouldForceRender","link","cleanUp","onLoad","onError","getCSSImportURL","importDeclaration","basePath","importMatches","importMatches_1","importMatches_1_1","importURL","absoluteURL","importedCSS","srcElement","cors","observers","observedRoots","undefinedGroups","elementsDefinitionCallback","collectUndefinedElements","tag","customElementsWhenDefined","canOptimizeUsingProxy$1","resolvers$1","handleIsDefined","checkIfDefined_1","watchWhenCustomElementsDefined","unsubscribeFromDefineCustomElements","watchForStyleChanges","currentStyles","stopWatchingForStyleChanges","prevStyleSiblings","nextStyleSiblings","saveStylePosition","forgetStylePosition","didStylePositionChange","handleStyleOperations","operations","createdStyles","removedStyles","movedStyles","handleMinorTreeMutations","subscribeForShadowRootChanges","handleHugeTreeMutations","styles","updatedStyles","observe","shadowRoot","hosts","newStyles","resetObservers","hexify","number","generateUID","adoptedStyleOverrides","overrideList","createAdoptedStyleSheetOverride","injectSheet","override","newSheets","sheetIndex","existingIndex","adoptedStyleSheet","globalVariables","injectProxy","addRuleDescriptor","insertRuleDescriptor","deleteRuleDescriptor","removeRuleDescriptor","addUndefinedResolver","updateSheetEvent","proxyAddRule","proxyInsertRule","returnValue","proxyDeleteRule","proxyRemoveRule","INSTANCE_ID","styleManagers","adoptedStyleManagers","fixes","createOrUpdateStyle","className","createOrUpdateScript","nodePositionWatchers","setupNodePositionWatcher","alias","stopStylePositionWatchers","watcher","createStaticStyleOverrides","fallbackStyle","userAgentStyle","textStyle","invertStyle","inlineStyle","overrideStyle","replaceCSSTemplates","variableStyle","selectionColors","darkSchemeBackgroundColor","darkSchemeTextColor","lightSchemeBackgroundColor","lightSchemeTextColor","schemeBackgroundColor","schemeTextColor","proxyScript","shadowRootsWithOverrides","createShadowStaticStyleOverrides","$cssText","m0","cleanFallbackStyle","getIgnoreImageAnalysisSelectors","createDynamicStyleOverrides","cancelRendering","updateVariables","allStyles","newManagers","createManager","newVariables","manager","loadingStyles","throttledRenderAllStyles","inlineStyleElements","handleAdoptedStyleSheets","loadingStylesCounter","loadingStyleId","didDocumentShowUp","newVars","removeManager","onDOMReady","documentVisibilityListener","watchForDocumentVisibility","alreadyWatching","stopWatchingForDocumentVisibility","createThemeAndWatchForUpdates","runDynamicStyle","watchForUpdates","newManger","managedStyles","created","updated","removed","moved","stylesToRemove","stylesToManage","stylesToRestore","ignoredInlineSelectors","rootVariables","stopWatchingForUpdates","createDarkModeInstanceMarker","metaElement","isAnotherDarkModeInstanceActive","createOrUpdateDynamicTheme","filterConfig","dynamicThemeFixes","iframe","headObserver_1","removeDynamicTheme","removeProxy","cleanDynamicThemeCache","blobRegex","replaceBlobs","promises","banner","collectCSS","addStaticCSS","comment","staticStyle","modifiedCSS","formattedCSS","isIFrame$1","enable","themeOptions","disable","darkScheme","store","handleColorScheme","auto","exportGeneratedCSS","setFetchMethod$1","Color","colorString","alpha","tempDiv","rgbaValues","red","green","blue","opacity","percentage","backgroundColor","FiltersConfig","all","excludes","ignorableElements","ignoreRecursively","borderColor","child","includedElements","includeRecursively","Color$1","DarkModeApp","timeZoneOffset","locationUpdated","position","mediaQuery","DarkModeApp$1","HalfMoonFilled","HalfMoonOutlined","StarMoonFilled","StarMoonOutlined","FullMoonFilled","RichSunOutlined","RichSunFilled","RichMoonFilled","CurvedMoonOutlined","SunFilled","SunOutlined","DoubleUpperT","DoubleT","UpperA","fontIcon","fontIconActive","DarkModeSwitch","THIS","data_keys","switchHtml","_scheme","exclude","source","mutation","isReactive","switchStyle","Switches","DarkModeSwitch$1","Log"],"mappings":"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"}