{"version":3,"file":"wp-dark-mode-ultimate.min.js","sources":["../../src/js/Store.js","../../src/js/Accessibility.js","../../src/index.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 Accessibility {\n\t/**\n\t * Init\n\t */\n\tinit() {\n\t\tthis.initLargeFont();\n\t\tthis.checkLargeFont();\n\t}\n\n\t/**\n\t * Init large font\n\t */\n\tinitLargeFont = () => {\n\t\tif( !wp_dark_mode_json.options.typography_enabled ) return;\n\n\t\tconst elements = document.querySelectorAll('*:not(.wp-dark-mode-ignore):not(.wp-dark-mode-switch):not(script):not(style):not(link):not(meta):not(title):not(base):not(head):not(.wp-dark-mode-switch)');\n\n\t\tlet desiredSize = wp_dark_mode_json.options.typography_font_size;\n\t\tif( desiredSize === 'custom' ) {\n\t\t\tdesiredSize = wp_dark_mode_json.options.typography_font_size_custom / 100;\n\t\t}\n\n\t\telements.forEach(element => {\n\t\t\t// Bail, if any of parent has wp-dark-mode-ignore class.\n\t\t\tif(element.closest('.wp-dark-mode-ignore')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst fontSize = getComputedStyle(element).fontSize;\n\n\t\t\tif (fontSize) {\n\t\t\t\t// Calculate new font size\n\t\t\t\tconst newFontSize = this.calculateFontSize(fontSize, desiredSize);\n\n\t\t\t\t// Set property\n\t\t\t\telement.style.setProperty('--wpdm-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();","import Accessibility from \"./js/Accessibility\";\ndocument.addEventListener('DOMContentLoaded', () => {\n Accessibility.init()\n});"],"names":["_Store","key","value","daysToExpire","expires","cookies","cookie","cookieKey","cookieValue","item","__publicField","Store","Accessibility","elements","desiredSize","element","fontSize","newFontSize","size","by","unit","newValue","switches","switchEl","html","isLargeFont","isActive","Accessibility$1"],"mappings":"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"}