From 11097c93fe72c0a0b871f00a3dfc15775f72cb00 Mon Sep 17 00:00:00 2001 From: magnolia1234 <7676006-magnolia1234@users.noreply.gitlab.com> Date: Sun, 7 Apr 2024 10:39:17 +0200 Subject: [PATCH] Fix LesEchos.fr (regwall) --- changelog.txt | 1 + contentScript.js | 359 +++++++++++++++++++++++----------------------- lib/purify.min.js | 4 +- 3 files changed, 183 insertions(+), 181 deletions(-) diff --git a/changelog.txt b/changelog.txt index 025e791..67f5ff1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -11,6 +11,7 @@ Add Nordwest Zeitung Add Spektrum.de Fix Exame Fix LeMonde.fr (view more) +Fix LesEchos.fr (regwall) Fix MediaNews Group (ld_json_url) Fix Nzz.ch (css) Fix Reuters (videos) diff --git a/contentScript.js b/contentScript.js index d2e13af..775d9dc 100644 --- a/contentScript.js +++ b/contentScript.js @@ -384,8 +384,8 @@ if (matchDomain('medium.com') || matchDomain(medium_custom_domains) || (!matchDo else if (window.location.hostname.match(/\.(com|net)\.au$/)) {//australia if (matchDomain('crikey.com.au')) { - let ads = document.querySelectorAll('.advert'); - hideDOMElement(...ads); + let ads = '.advert'; + hideDOMStyle(ads); } else if (matchDomain('forbes.com.au')) { @@ -457,14 +457,14 @@ else { for (let subscriber_hider of subscriber_hiders) subscriber_hider.classList.remove('subscriber-hider'); } - let blocker = document.querySelector('div.blocker'); - let overlays = document.querySelectorAll('div.transition-all, div[id^="headlessui-dialog"]'); let noscroll = document.querySelectorAll('html[style], body[style]'); for (let elem of noscroll) elem.removeAttribute('style'); - let story_generic_iframe = document.querySelector('.story-generic__iframe'); - let ads = document.querySelectorAll('.ad-placeholder, .sticky, [id*="-container"], #hindsight-ads-iframe'); - hideDOMElement(story_generic_iframe, blocker, ...overlays, ...ads); + let story_generic_iframe = '.story-generic__iframe'; + let blocker = 'div.blocker'; + let overlays = 'div.transition-all, div[id^="headlessui-dialog"]'; + let ads = '.ad-placeholder, .sticky, [id*="-container"], #hindsight-ads-iframe'; + hideDOMStyle(story_generic_iframe + ', ' + blocker + ', ' + overlays + ', ' + ads); } else if (window.location.hostname.endsWith('.com.au')) { // Australia News Corp let au_news_corp_domains = ['adelaidenow.com.au', 'cairnspost.com.au', 'codesports.com.au', 'couriermail.com.au', 'dailytelegraph.com.au', 'geelongadvertiser.com.au', 'goldcoastbulletin.com.au', 'heraldsun.com.au', 'ntnews.com.au', 'theaustralian.com.au', 'thechronicle.com.au', 'themercury.com.au', 'townsvillebulletin.com.au', 'weeklytimesnow.com.au']; @@ -479,8 +479,8 @@ else { } else { if (window.location.pathname.includes('/video/') && document.querySelector('div.vms-premium-video')) header_nofix(document.querySelector('div.video-hub')); - let ads = document.querySelectorAll('.header_ads-container, .ad-block'); - hideDOMElement(...ads); + let ads = '.header_ads-container, .ad-block'; + hideDOMStyle(ads); } } else { // Australian Seven West Media @@ -616,8 +616,8 @@ else { csDoneOnce = true; waitDOMElement(paywall_sel, 'DIV', thewest_main, true); } - let header_advert = document.querySelector('div.headerAdvertisement'); - hideDOMElement(header_advert); + let ads = 'div.headerAdvertisement'; + hideDOMStyle(ads); } else if (document.querySelector('head > link[rel="dns-prefetch"][href="//static.ew.mmg.navigacloud.com"]')) { // McPherson Media Group let paywall = document.querySelector('div#content-Load-message'); if (paywall) { @@ -1391,9 +1391,17 @@ else if (matchDomain('tt.com')) { } } else if (par.type.match(/^x-im\//)) { if (par.url) { - elem = document.createElement('a'); - elem.href = elem.innerText = par.url; - elem.target = '_blank'; + if (par.url.startsWith('https://twitter.com/')) { + elem = document.createElement('p'); + let sub_elem = document.createElement('a'); + sub_elem.href = elem.innerText = par.url; + sub_elem.target = '_blank'; + elem.appendChild(sub_elem); + } else { + elem = document.createElement('iframe'); + elem.src = par.url; + elem.style = 'height: ' + article.offsetWidth + 'px; width: ' + article.offsetWidth + 'px;'; + } } } if (elem) @@ -1553,8 +1561,8 @@ else if (matchDomain('ruhrnachrichten.de') || document.querySelector('a.mgw-logo } else if (matchDomain(de_vrm_domains) || matchDomain(de_vrm_custom_domains)) { - let ads = document.querySelectorAll('div.adSlot, div.loadingBanner'); - hideDOMElement(...ads); + let ads = 'div.adSlot, div.loadingBanner'; + hideDOMStyle(ads); } else if (matchDomain(ch_media_domains) || document.querySelector('head > link[href*="/assets.static-chmedia.ch/"]')) { @@ -2180,7 +2188,7 @@ else if (matchDomain('lesechos.fr')) { ampToHtml(); } else { window.setTimeout(function () { - let paywall = document.querySelector('div#paywall'); + let paywall = document.querySelector('div#paywall, div#registerWall'); if (paywall && dompurify_loaded) { removeDOMElement(paywall); let scripts = document.querySelectorAll('script:not([src]):not([type])'); @@ -2501,8 +2509,8 @@ else if (matchDomain('ilsole24ore.com')) { removeDOMElement(paywall); header_nofix(document.querySelector('div.paywalltext')); } - let ads = document.querySelectorAll('div.background-adv, div.abox, div.ob-smartfeed-wrapper'); - hideDOMElement(...ads); + let ads = 'div.background-adv, div.abox, div.ob-smartfeed-wrapper'; + hideDOMStyle(ads); } else if (matchDomain(['iltirreno.it', 'lanuovasardegna.it']) || matchDomain(['gazzettadimodena.it', 'gazzettadireggio.it', 'lanuovaferrara.it'])) { @@ -3036,8 +3044,8 @@ else if (matchDomain(['belfasttelegraph.co.uk', 'independent.ie'])) { } } } - let ads = document.querySelectorAll('div[id^="ad_article"]'); - hideDOMElement(...ads); + let ads = 'div[id^="ad_article"]'; + hideDOMStyle(ads); } else if (matchDomain('businesspost.ie')) { @@ -3107,13 +3115,13 @@ else if (matchDomain('ft.com')) { removeDOMElement(paywall); refreshCurrentTab(); } - let banners = document.querySelectorAll('.o-cookie-message, .js-article-ribbon, .o-ads, .o-banner'); - hideDOMElement(...banners); + let banners = '.o-cookie-message, .js-article-ribbon, .o-ads, .o-banner'; + hideDOMStyle(banners); } else if (matchDomain('gbnews.com')) { - let ads = document.querySelectorAll('div.ad--billboard, div.ad--placeholder'); - hideDOMElement(...ads); + let ads = 'div.ad--billboard, div.ad--placeholder'; + hideDOMStyle(ads); } else if (matchDomain('granta.com')) { @@ -3131,8 +3139,8 @@ else if (matchDomain('independent.co.uk')) { } let url = window.location.href; if (window.location.search.match(/(\?|&)amp/)) { - let ads = document.querySelectorAll('amp-ad, amp-embed, [id^="ad-"]'); - hideDOMElement(...ads); + let ads = 'amp-ad, amp-embed, [id^="ad-"]'; + hideDOMStyle(ads); } else { let related = document.querySelector('div.related'); if (!related) { @@ -3149,15 +3157,13 @@ else if (matchDomain('literaryreview.co.uk')) { else if (matchDomain('prospectmagazine.co.uk')) { let url = window.location.href; getGoogleWebcache(url, 'div.paywall_overlay_blend, div.paywall', '', 'main'); - window.setTimeout(function () { - let ads = document.querySelectorAll('.ad-banner, .advert'); - hideDOMElement(...ads); - }, 1000); + let ads = '.ad-banner, .advert'; + hideDOMStyle(ads); } else if (matchDomain('spectator.co.uk')) { - let banners = document.querySelectorAll('#subscribe-ribbon, div.ad-slot'); - hideDOMElement(...banners); + let ads = '#subscribe-ribbon, div.ad-slot'; + hideDOMStyle(ads); } else if (matchDomain('stylist.co.uk')) { @@ -3284,13 +3290,13 @@ else if (matchDomain('telegraph.co.uk')) { removeDOMElement(...paywall, truncated_content); amp_unhide_access_hide('="c.result=\'ALLOW_ACCESS\'"', '', 'amp-ad, amp-embed', false); } else { - let amp_ads = document.querySelectorAll('amp-ad, amp-embed'); - hideDOMElement(...amp_ads); + let ads = 'amp-ad, amp-embed'; + hideDOMStyle(ads); } } else { - let subwall = document.querySelectorAll('[class^="subwall"]'); - let ads = document.querySelectorAll('.advert, .commercial-unit'); - hideDOMElement(...subwall, ...ads); + let subwall = '[class^="subwall"]'; + let ads = '.advert, .commercial-unit'; + hideDOMStyle(subwall + ', ' + ads); } } @@ -3309,9 +3315,9 @@ else if (matchDomain('tes.com')) { else if (matchDomain('the-tls.co.uk')) { if (dompurify_loaded) getJsonUrl('div.tls-single-article__closed-paywall', '', 'div.tls-article-body', {art_class: 'tls-article-body'}); - let fade = document.querySelector('div.tls-single-article__closed-paywall-wrapper'); - let ads = document.querySelectorAll('div[class*="tls-single-article__ad-slot"]'); - hideDOMElement(fade, ...ads); + let fade = 'div.tls-single-article__closed-paywall-wrapper'; + let ads = 'div[class*="tls-single-article__ad-slot"]'; + hideDOMStyle(fade + ', ' + ads); } else if (matchDomain('theneweuropean.co.uk')) { @@ -3363,8 +3369,8 @@ else if (matchDomain('thetimes.co.uk')) { let paywall_page = document.querySelector('div#paywall-portal-page-footer'); let block = document.querySelector('.subscription-block'); removeDOMElement(paywall_page, block); - let ads = document.querySelectorAll('#ad-article-inline, div#sticky-ad-header, div[class*="InlineAdWrapper"], div[class*="NativeAd"], div.gyLkkj'); - hideDOMElement(...ads); + let ads = '#ad-article-inline, div#sticky-ad-header, div[class*="InlineAdWrapper"], div[class*="NativeAd"], div.gyLkkj'; + hideDOMStyle(ads); } } @@ -3391,8 +3397,8 @@ else if (matchDomain(uk_nat_world_domains) || document.querySelector('footer > d }); amp_image.parentNode.replaceChild(elem, amp_image); } - let ads = document.querySelectorAll('div[class^="MarkupAds__Container-"], div[class*="_AdContainer-"], div[class^="Dailymotion__Wrapper-"]'); - hideDOMElement(...ads); + let ads = 'div[class^="MarkupAds__Container-"], div[class*="_AdContainer-"], div[class^="Dailymotion__Wrapper-"]'; + hideDOMStyle(ads); } else @@ -3470,8 +3476,8 @@ else if (matchDomain('cartacapital.com.br')) { } else if (matchDomain('crusoe.com.br')) { - let ads = document.querySelectorAll('#gpt-leaderboard, .ads_desktop, .catchment-box'); - hideDOMElement(...ads); + let ads = '#gpt-leaderboard, .ads_desktop, .catchment-box'; + hideDOMStyle(ads); } else if (matchDomain(pe_grupo_elcomercio_domains)) { @@ -3693,8 +3699,8 @@ else if (matchDomain(usa_adv_local_domains)) { if (window.location.search.startsWith('?outputType=amp')) { - let ads = document.querySelectorAll('amp-embed'); - hideDOMElement(...ads); + let ads = 'amp-embed'; + hideDOMStyel(ads); } else { let paywall_sel = 'div.paywall'; let paywall = document.querySelector(paywall_sel); @@ -3748,8 +3754,6 @@ if (matchDomain(usa_adv_local_domains)) { } else amp_redirect(paywall_sel, '', window.location.pathname + '?outputType=amp'); } - let ads = document.querySelectorAll('div.ad'); - hideDOMElement(...ads); } } @@ -3788,12 +3792,12 @@ else if (matchDomain('asia.nikkei.com')) { else if (matchDomain('axios.com')) { function axios_noscroll(node) { node.removeAttribute('style'); - let overlay = document.querySelector('div[class^="Modal_paywallContainer"]'); - hideDOMElement(overlay); + let overlay = 'div[class^="Modal_paywallContainer"]'; + hideDOMStyle(overlay, 2); } waitDOMAttribute('html', 'HTML', 'style', axios_noscroll, true); - let banners = document.querySelectorAll('div[data-vars-experiment="pro-paywall"], .apexAd'); - hideDOMElement(...banners); + let banners = 'div[data-vars-experiment="pro-paywall"], .apexAd'; + hideDOMStyle(banners); csDoneOnce = true; } @@ -3821,8 +3825,8 @@ else if (matchDomain('barrons.com')) { let continue_buttons = document.querySelectorAll('button.snippet__buttons--continue'); for (let elem of continue_buttons) elem.addEventListener('click', function () { window.location.reload(); }); - let ads = document.querySelectorAll('div[class*="_AdWrapper-"], div[class*="-adWrapper-"]'); - hideDOMElement(...ads); + let ads = 'div[class*="_AdWrapper-"], div[class*="-adWrapper-"]'; + hideDOMStyle(ads); } else { amp_unhide_subscr_section('.wsj-ad, amp-ad'); amp_images_replace(); @@ -3839,10 +3843,10 @@ else if (matchDomain('billboard.com')) { else if (matchDomain('bloomberg.com')) { let paywall_sel = 'div[id^="fortress-"]'; - let paywall = document.querySelectorAll(paywall_sel); - let leaderboard = document.querySelector('div[id^="leaderboard"], div[class^="leaderboard"], div.canopy-container'); - let ads = document.querySelectorAll('div[data-ad-status], div[data-ad-type], div[class^="FullWidthAd_"], div.adWrapper'); - hideDOMElement(...paywall, leaderboard, ...ads); + let paywall = paywall_sel; + let leaderboard = 'div[id^="leaderboard"], div[class^="leaderboard"], div.canopy-container'; + let ads = 'div[data-ad-status], div[data-ad-type], div[class^="FullWidthAd_"], div.adWrapper'; + hideDOMStyle(paywall + ', ' + leaderboard + ', ' + ads); csDoneOnce = true; waitDOMElement(paywall_sel, 'DIV', removeDOMElement, true); waitDOMAttribute('body', 'BODY', 'data-paywall-overlay-status', node => node.removeAttribute('data-paywall-overlay-status'), true); @@ -3863,16 +3867,16 @@ else if (matchDomain('bloombergadria.com')) { let article_hidden = document.querySelector('article[style]'); if (article_hidden) article_hidden.removeAttribute('style'); - let ads = document.querySelectorAll('.banner'); - hideDOMElement(...ads); + let ads = '.banner'; + hideDOMStyle(ads); } else if (matchDomain('bostonglobe.com')) { if (window.location.search.startsWith('?outputType=amp')) { amp_unhide_subscr_section(); } else { - let ads = document.querySelectorAll('div.arc_ad'); - hideDOMElement(...ads); + let ads = 'div.arc_ad'; + hideDOMStyle(ads); } } @@ -3898,8 +3902,8 @@ else if (matchDomain('bqprime.com')) { } }, 1000); } - let ads = document.querySelectorAll('.responsive-ad'); - hideDOMElement(...ads); + let ads = '.responsive-ad'; + hideDOMStyle(ads); } else if (matchDomain('business-standard.com')) { @@ -3938,24 +3942,24 @@ else if (matchDomain('business-standard.com')) { waitDOMElement(paywall_sel, 'DIV', bs_main, false); } } - let banner = document.querySelector('section.sbcrbtmlfull'); - let ads = document.querySelectorAll('div.advertisement-bg, div[id^="between_article_content_"]'); - hideDOMElement(banner, ...ads); + let banner = 'section.sbcrbtmlfull'; + let ads = 'div.advertisement-bg, div[id^="between_article_content_"]'; + hideDOMStyle(banner + ', ' + ads); } else ampToHtml(); } else if (matchDomain('businessinsider.com')) { - let ads = document.querySelectorAll('div.l-ad, div.in-post-sticky, aside.has-video-ad'); - hideDOMElement(...ads); + let ads = 'div.l-ad, div.in-post-sticky, aside.has-video-ad'; + hideDOMStyle(ads); } else if (matchDomain('businessoffashion.com')) { if (window.location.search.startsWith('?outputType=amp')) { amp_unhide_access_hide(); } else { - let ads = document.querySelectorAll('div[class^="default__AdsBlockWrapper"]'); - hideDOMElement(...ads); + let ads = 'div[class^="default__AdsBlockWrapper"]'; + hideDOMStyle(ads); } } @@ -4057,8 +4061,8 @@ else if (matchDomain('defector.com')) { } else if (matchDomain(['digiday.com', 'glossy.co', 'modernretail.co'])) { - let ads = document.querySelectorAll('div[class^="ad_"]'); - hideDOMElement(...ads); + let ads = 'div[class^="ad_"]'; + hideDOMStyle(ads); } else if (matchDomain('discovermagazine.com')) { @@ -4066,8 +4070,11 @@ else if (matchDomain('discovermagazine.com')) { let mammoth = document.querySelector('.iXVGnF'); if (mammoth) refreshCurrentTab(); - let banner = document.querySelector('div.fIkXwQ'); - hideDOMElement(banner); + let body = document.querySelector('body'); + if (body) + body.style = 'overflow: auto !important;'; + let banners = 'div.fIkXwQ, div[style*="fadeIn"], div[role="button"][aria-label="Dismiss Dialog"]'; + hideDOMStyle(banners); }, 1000); } @@ -4141,8 +4148,8 @@ else if (matchDomain('dwell.com')) { } } } - let ads = document.querySelectorAll('div.EYrS5iukqzJMkNAcFQ0ho'); - hideDOMElement(...ads); + let ads = 'div.EYrS5iukqzJMkNAcFQ0ho'; + hideDOMStyle(ads); } else if (matchDomain('economictimes.com')) { @@ -4161,8 +4168,8 @@ else if (matchDomain('economictimes.com')) { let intro = document.querySelector('.art_wrap'); let article_blocker = document.querySelector('.articleBlocker'); removeDOMElement(paywall, intro, article_blocker); - let amp_ads = document.querySelectorAll('amp-ad'); - hideDOMElement(...amp_ads); + let ads = 'amp-ad'; + hideDOMStyle(ads); } } else { window.setTimeout(function () { @@ -4178,8 +4185,8 @@ else if (matchDomain('economictimes.com')) { else if (window.location.pathname.startsWith('/epaper/')) window.location.href = 'https://economictimes.indiatimes.com' + window.location.pathname; } else { - let ads = document.querySelectorAll('.adContainer'); - hideDOMElement(...ads); + let ads = '.adContainer'; + hideDOMStyle(ads); } }, 500); } @@ -4209,8 +4216,8 @@ else if (matchDomain('economist.com')) { let hide_style = document.querySelector('body > style'); removeDOMElement(paywall, noscroll, hide_style); } - let ads = document.querySelectorAll('div[class*="_advert__"]'); - hideDOMElement(...ads); + let ads = 'div[class*="_advert__"]'; + hideDOMStyle(ads); } else if (matchDomain('enotes.com')) { @@ -4285,8 +4292,8 @@ else if (matchDomain('fastcompany.com')) { } } } - let ads = document.querySelectorAll('div[class*="ad-wrapper"]'); - hideDOMElement(...ads); + let ads = 'div[class*="ad-wrapper"]'; + hideDOMStyle(ads); } else if (matchDomain('fieldandstream.com')) { @@ -4301,10 +4308,9 @@ else if (matchDomain('financialexpress.com')) { let paywall = document.querySelector('div.paywall'); if (paywall) paywall.classList.remove('paywall'); - let register = document.querySelector('div.pcl-wrap'); + let register = 'div.pcl-wrap'; let ads_selector = window.location.pathname.endsWith('/lite/') ? 'amp-ad, amp-embed, .ad-bg-container' : 'div[class*="-ads-blocks-ad-unit"]'; - let ads = document.querySelectorAll(ads_selector); - hideDOMElement(register, ...ads); + hideDOMStyle(register + ', ' + ads_selector); } else if (matchDomain('firstthings.com')) { @@ -4323,8 +4329,8 @@ else if (matchDomain('forbes.com')) { header_nofix(header); } } - let ads = document.querySelectorAll('fbs-ad'); - hideDOMElement(...ads); + let ads = 'fbs-ad'; + hideDOMStyle(ads); } else if (matchDomain('foreignaffairs.com')) { @@ -4391,8 +4397,8 @@ else if (matchDomain(['haaretz.co.il', 'haaretz.com', 'themarker.com'])) { if (window.location.pathname.includes('/.')) { let page_script = document.querySelector('script[src*="/page-"]'); if (page_script) { - let disabled_items = document.querySelectorAll('section[data-testid="zoidberg-list"], section#comments-section'); - hideDOMElement(...disabled_items); + let disabled_items = 'section[data-testid="zoidberg-list"], section#comments-section'; + hideDOMStyle(disabled_items); let noprint = document.querySelectorAll('div.no-print'); for (let elem of noprint) if (!elem.hasChildNodes()) @@ -4465,10 +4471,8 @@ else if (matchDomain('hilltimes.com')) { waitDOMElement(paywall_sel, 'DIV', hilltimes_main, false); csDoneOnce = true; } - window.setTimeout(function () { - let banner = document.querySelector('section.hide_this_section'); - hideDOMElement(banner); - }, 1000); + let banner = 'section.hide_this_section'; + hideDOMStyle(banner); } else if (matchDomain('hindustantimes.com')) { @@ -4482,9 +4486,9 @@ else if (matchDomain('hindustantimes.com')) { let noscroll = document.querySelector('body.open-popup'); if (noscroll) noscroll.classList.remove('open-popup'); - let close_story = document.querySelector('.closeStory'); - let ads = document.querySelectorAll('div[class^="adHeight"]'); - hideDOMElement(close_story, ...ads); + let close_story = '.closeStory'; + let ads = 'div[class^="adHeight"]'; + hideDOMStyle(close_story + ', ' + ads); } else if (matchDomain('hindutamil.in')) { @@ -4511,8 +4515,8 @@ else if (matchDomain('inc42.com')) { let div_hidden = document.querySelector('div.single-post-content'); if (div_hidden) div_hidden.removeAttribute('class'); - let banner = document.querySelector('div[id*="_leaderboard_"]'); - hideDOMElement(banner); + let banner = 'div[id*="_leaderboard_"]'; + hideDOMStyle(banner); } } @@ -4520,8 +4524,8 @@ else if (matchDomain('indianexpress.com')) { if (window.location.pathname.endsWith('/lite/')) amp_unhide_access_hide('="metering.result=\'ALLOW_ACCESS\'"', '', 'div.amp-ad, amp-embed'); else { - let ads = document.querySelectorAll('div[class^="adsbox"], div.adboxtop, div.add-first, div.osv-ad-class, div.ie-int-campign-ad'); - hideDOMElement(...ads); + let ads = 'div[class^="adsbox"], div.adboxtop, div.add-first, div.osv-ad-class, div.ie-int-campign-ad'; + hideDOMStyle(ads); } } @@ -4577,8 +4581,8 @@ else if (matchDomain('inkl.com')) { } else if (matchDomain('insidehighered.com')) { - let ads = document.querySelectorAll('div[id^="block-dfptag"], div.wp-block-ihe-ad, section.section-ad_slot, div#roadblock'); - hideDOMElement(...ads); + let ads = 'div[id^="block-dfptag"], div.wp-block-ihe-ad, section.section-ad_slot, div#roadblock'; + hideDOMStyle(ads); } else if (matchDomain('interestingengineering.com')) { @@ -4707,8 +4711,8 @@ else if (matchDomain('livelaw.in')) { if (paywall_content) paywall_content.classList.remove('hide'); } - let ads = document.querySelectorAll('inside-post-ad, amp-ad'); - hideDOMElement(...ads); + let ads = 'inside-post-ad, amp-ad'; + hideDOMStyle(ads); } else if (matchDomain('livemint.com')) { @@ -4719,8 +4723,8 @@ else if (matchDomain('livemint.com')) { let paywall = document.querySelector('div.paywall'); if (paywall) paywall.classList.remove('paywall'); - let ads = document.querySelectorAll('[class^="ad"], [id^="ad"], #subscribeAd, .taboolaHeight'); - hideDOMElement(...ads); + let ads = '[class^="ad"], [id^="ad"], #subscribeAd, .taboolaHeight'; + hideDOMStyle(ads); } } @@ -4742,13 +4746,13 @@ else if (matchDomain('marketwatch.com')) { removeDOMElement(meter, container_sponsored); amp_unhide_subscr_section('.display-ad'); } - let ads = document.querySelectorAll('div.element--ad, div.j-ad'); - hideDOMElement(...ads); + let ads = 'div.element--ad, div.j-ad'; + hideDOMStyle(ads); } else if (matchDomain('medscape.com')) { - let ads = document.querySelectorAll('.AdUnit, [id^="ads-"]'); - hideDOMElement(...ads); + let ads = '.AdUnit, [id^="ads-"]'; + hideDOMStyle(ads); } else if (matchDomain('mexiconewsdaily.com')) { @@ -4793,8 +4797,8 @@ else if (matchDomain('nationalgeographic.com')) { let overlay = document.querySelector('div.Article__Content__Overlay--gated'); if (overlay) overlay.classList.remove('Article__Content__Overlay--gated'); - let ads = document.querySelectorAll('div.ad-slot, div.InsertedAd'); - hideDOMElement(...ads); + let ads = 'div.ad-slot, div.InsertedAd'; + hideDOMStyle(ads); }, 2000); } @@ -4808,10 +4812,9 @@ else if (matchDomain('nationalreview.com')) { } }, 5000); } - let banners = document.querySelectorAll('div.zephr-wrapper, div#bc-root, div.cookie-text'); - hideDOMElement(...banners); - let ads = document.querySelectorAll('amp-ad, .ad-unit, .ad-skeleton, amp-connatix-player, div[class*="-connatix-"]'); - hideDOMElement(...ads); + let banners = 'div.zephr-wrapper, div#bc-root, div.cookie-text'; + let ads = 'amp-ad, .ad-unit, .ad-skeleton, amp-connatix-player, div[class*="-connatix-"]'; + hideDOMStyle(banners + ', ' + ads); } else if (matchDomain('nautil.us')) { @@ -4830,8 +4833,8 @@ else if (matchDomain('newrepublic.com')) { let modal = document.querySelector('div.article-scheduled-modal'); let pw_popups = document.querySelector('div#pwPopups'); removeDOMElement(modal, pw_popups); - let ads = document.querySelectorAll('.ad-unit'); - hideDOMElement(...ads); + let ads = '.ad-unit'; + hideDOMStyle(ads); } else if (matchDomain('newscientist.com')) { @@ -4865,8 +4868,8 @@ else if (matchDomain('newsday.com')) { let nd_lock = document.querySelector('html[class]'); if (nd_lock) nd_lock.removeAttribute('class'); - let ads = document.querySelectorAll('div[class^="ad_full-banner_"]'); - hideDOMElement(...ads); + let ads = 'div[class^="ad_full-banner_"]'; + hideDOMStyle(ads); } } @@ -4894,8 +4897,8 @@ else if (matchDomain('newslaundry.com')) { } else if (matchDomain('newsweek.com')) { - let ads = document.querySelectorAll('div#topad, div[id^="dfp-ad-"]'); - hideDOMElement(...ads); + let ads = 'div#topad, div[id^="dfp-ad-"]'; + hideDOMStyle(ads); } else if (matchDomain(['nola.com', 'theadvocate.com'])) { @@ -4910,23 +4913,21 @@ else if (matchDomain('nybooks.com')) { let paywall_article = document.querySelector('.paywall-article'); if (paywall_article) paywall_article.classList.remove('paywall-article'); - let banners = document.querySelectorAll('div.toast-cta, div.inline-ad'); - hideDOMElement(...banners); + let banners = 'div.toast-cta, div.inline-ad'; + hideDOMStyle(banners); } else if (matchDomain('nytimes.com')) { waitDOMElement('div#dock-container', 'DIV', removeDOMElement, false); csDoneOnce = true; - window.setTimeout(function () { - let banners = document.querySelectorAll('div[data-testid="inline-message"], div[id^="ad-"], div.pz-ad-box'); - hideDOMElement(...banners); - }, 1000); + let banners = 'div[data-testid="inline-message"], div[id^="ad-"], div.pz-ad-box'; + hideDOMStyle(banners); } else if (matchDomain('nzherald.co.nz')) { // plus code in contentScript_once_var.js (timing) - let premium_toaster = document.querySelector('#premium-toaster'); - hideDOMElement(premium_toaster); + let premium_toaster = '#premium-toaster'; + hideDOMStyle(premium_toaster); } else if (matchDomain('outlookbusiness.com')) { @@ -5165,14 +5166,14 @@ else if (matchDomain('scmp.com')) { let paywalled = document.querySelector('div.paywalled-content'); if (paywalled) paywalled.removeAttribute('class'); - let ads = document.querySelectorAll('div[data-qa*="AdSlot"], div.adblock-message'); - hideDOMElement(...ads); + let ads = 'div[data-qa*="AdSlot"], div.adblock-message'; + hideDOMStyle(ads); } } else if (matchDomain('seattletimes.com')) { - let ads = document.querySelectorAll('.top-ad-wrapper'); - hideDOMElement(...ads); + let ads = '.top-ad-wrapper'; + hideDOMStyle(ads); } else if (matchDomain('seekingalpha.com')) { @@ -5191,14 +5192,14 @@ else if (matchDomain('seekingalpha.com')) { else if (matchDomain(sg_sph_media_domains)) { let url = window.location.href; getArchive(url, 'div#nocx_paywall_area', '', 'main#content'); - let ads = document.querySelectorAll('div.ads, div[id^="dfp-ad-"], div.cx_paywall_placeholder'); - hideDOMElement(...ads); + let ads = 'div.ads, div[id^="dfp-ad-"], div.cx_paywall_placeholder'; + hideDOMStyle(ads); } else if (matchDomain('slate.com')) { - let slate_roadblock = document.querySelector('.slate-roadblock'); - let ads = document.querySelectorAll('section[class*="-ad"]'); - hideDOMElement(slate_roadblock, ...ads); + let slate_roadblock = '.slate-roadblock'; + let ads = 'section[class*="-ad"]'; + hideDOMStyle(slate_roadblock + ', ' + ads); } else if (matchDomain('slideshare.net')) { @@ -5208,8 +5209,8 @@ else if (matchDomain('slideshare.net')) { } else if (matchDomain('sltrib.com')) { - let ads = document.querySelectorAll('div.stickyAd, div[class^="sltrib_medrec"]'); - hideDOMElement(...ads); + let ads = 'div.stickyAd, div[class^="sltrib_medrec"]'; + hideDOMStyle(ads); } else if (matchDomain('sloanreview.mit.edu')) { @@ -5404,8 +5405,8 @@ else if (matchDomain(['techtarget.com', 'computerweekly.com', 'lemagit.fr'])) { } else if (matchDomain('texasmonthly.com')) { - let ads = document.querySelectorAll('div.promo-in-body'); - hideDOMElement(...ads); + let ads = 'div.promo-in-body'; + hideDOMStyle(ads); } else if (matchDomain('the-american-interest.com')) { @@ -5454,8 +5455,8 @@ else if (matchDomain('theathletic.com')) { if (!(window.location.search.match(/(\?|&)amp/) && !document.querySelector('head > link[rel="amphtml"]'))) { function theathletic_func(node) { removeDOMElement(node); - let overlays = document.querySelectorAll('div[id*="overlay"], div:empty:not([data-rjs])'); - hideDOMElement(...overlays); + let overlays = 'div[id*="overlay"], div:empty:not([data-rjs])'; + hideDOMStyle(overlays); let body = document.querySelector('body'); if (body) { body.style.overflow = 'visible'; @@ -5480,8 +5481,8 @@ else if (matchDomain('theatlantic.com')) { let videos = document.querySelectorAll('iframe[data-src]:not([src])'); for (let video of videos) video.src = video.getAttribute('data-src'); - let banners = document.querySelectorAll('aside#paywall, div[class^="LostInventoryMessage_"]'); - hideDOMElement(...banners); + let banners = 'aside#paywall, div[class^="LostInventoryMessage_"]'; + hideDOMStyle(banners); } else if (matchDomain('thebulletin.org')) { @@ -5567,18 +5568,18 @@ else if (matchDomain('theglobeandmail.com')) { let lazy_images = document.querySelectorAll('img[src^="data:image/"][data-src]'); for (let elem of lazy_images) elem.src = elem.getAttribute('data-src'); - let ads = document.querySelectorAll('div.c-ad, div[class^="BaseAd__"]'); - hideDOMElement(...ads); + let ads = 'div.c-ad, div[class^="BaseAd__"]'; + hideDOMStyle(ads); } else if (matchDomain(['thehindu.com', 'thehindubusinessline.com'])) { if (!window.location.pathname.endsWith('/amp/')) { - let counter = document.querySelector('#test'); - let ads = document.querySelectorAll('div.article-ad, div.dfp-ad, div#paywallbox, div[id^="piano-art-"]'); - hideDOMElement(counter, ...ads); + let counter = '#test'; + let ads = 'div.article-ad, div.dfp-ad, div#paywallbox, div[id^="piano-art-"]'; + hideDOMStyle(counter + ', ' + ads); } else { - let ads = document.querySelectorAll('amp-ad, amp-embed, [class^="height"], [class^="advt"], [id^="piano"]'); - hideDOMElement(...ads); + let ads = 'amp-ad, amp-embed, [class^="height"], [class^="advt"], [id^="piano"]'; + hideDOMStyle(ads); } function hindu_main() { if (window) { @@ -5917,8 +5918,8 @@ else if (matchDomain('timeshighereducation.com')) { hidden_image.classList.remove('b-lazy'); hidden_image.parentElement.classList.remove('media--loading'); } - let ads = document.querySelectorAll('div[id^="div-gpt-in-article-ad-"], div[class^="the-dfp__in-article-ATD"]'); - hideDOMElement(...ads); + let ads = 'div[id^="div-gpt-in-article-ad-"], div[class^="the-dfp__in-article-ATD"]'; + hideDOMStyle(ads); } else if (matchDomain(timesofindia_domains)) { @@ -6124,13 +6125,13 @@ else if (matchDomain(usa_craincomm_domains)) { } else if (matchDomain(usa_nymag_domains)) { - let ads = document.querySelectorAll('div.m-ad'); - hideDOMElement(...ads); + let ads = 'div.m-ad'; + hideDOMStyle(ads); } else if (matchDomain(usa_outside_mag_domains)) { - let ads = document.querySelectorAll('div.js-ad'); - hideDOMElement(...ads); + let ads = 'div.js-ad'; + hideDOMStyle(ads); } else if (matchDomain(usa_tribune_domains)) { @@ -6198,14 +6199,14 @@ else if (matchDomain('voguebusiness.com')) { } else if (matchDomain('washingtonpost.com')) { - let leaderboard = document.querySelector('#leaderboard-wrapper'); - let ads = document.querySelectorAll('div[data-qa$="-ad"]'); - hideDOMElement(leaderboard, ...ads); + let leaderboard = '#leaderboard-wrapper'; + let ads = 'div[data-qa$="-ad"]'; + hideDOMStyle(leaderboard + ', ' + ads); } else if (matchDomain('winnipegfreepress.com')) { - let ads = document.querySelectorAll('.billboard-ad-space, .article-ad, .fixed-sky'); - hideDOMElement(...ads); + let ads = '.billboard-ad-space, .article-ad, .fixed-sky'; + hideDOMStyle(ads); } else if (matchDomain('wsj.com')) { @@ -6279,8 +6280,8 @@ else if (matchDomain('wsj.com')) { } } } - let ads = document.querySelectorAll('div.wsj-ad, div.adWrapper, div.css-xgokil-Box'); - hideDOMElement(...ads); + let ads = 'div.wsj-ad, div.adWrapper, div.css-xgokil-Box'; + hideDOMStyle(ads); } else if (matchDomain('zerohedge.com')) { @@ -6374,8 +6375,8 @@ else if ((domain = matchDomain(usa_lee_ent_domains)) || matchDomain(ca_torstar_d let banners = document.querySelectorAll('div.subscription-required, div.redacted-overlay'); removeDOMElement(...banners); } - let ads = document.querySelectorAll('div.tnt-ads-container, div[class*="adLabelWrapper"]'); - hideDOMElement(...ads); + let ads = 'div.tnt-ads-container, div[class*="adLabelWrapper"]'; + hideDOMStyle(ads); } } @@ -6414,8 +6415,8 @@ else if ((domain = matchDomain(usa_mcc_domains)) || if (premium_link.href.includes('www.')) premium_link.href = premium_link.href.replace('www.', 'amp.'); } - let ads = document.querySelectorAll('div[id^="zone-el-"]'); - hideDOMElement(...ads); + let ads = 'div[id^="zone-el-"]'; + hideDOMStyle(ads); } else if (matchDomain(usa_mng_domains) || document.querySelector('head > link[rel="stylesheet"][id^="dfm-accuweather-"], footer li > a[href^="https://www.medianewsgroup.com"]')) { @@ -6432,8 +6433,8 @@ else if (document.querySelector('script[src*=".axate.io/"]')) { } else if (document.querySelector('head > meta[property][content^="https://cdn.forumcomm.com/"]')) { - let ads = document.querySelectorAll('div.GoogleDfpAd-Content'); - hideDOMElement(...ads); + let ads = 'div.GoogleDfpAd-Content'; + hideDOMStyle(ads); } else if (document.querySelector('head > link[href*="/leaky-paywall"], script[src*="/leaky-paywall"], div[id^="issuem-leaky-paywall-"]')) { diff --git a/lib/purify.min.js b/lib/purify.min.js index 23f6790..bb5263e 100644 --- a/lib/purify.min.js +++ b/lib/purify.min.js @@ -1,3 +1,3 @@ -/*! @license DOMPurify 3.0.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.11/LICENSE */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=b(Array.prototype.forEach),m=b(Array.prototype.pop),f=b(Array.prototype.push),p=b(String.prototype.toLowerCase),d=b(String.prototype.toString),h=b(String.prototype.match),g=b(String.prototype.replace),T=b(String.prototype.indexOf),y=b(String.prototype.trim),E=b(Object.prototype.hasOwnProperty),A=b(RegExp.prototype.test),_=(N=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:p;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t/gm),B=a(/\${[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),q=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),X=a(/^html$/i),$=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,MUSTACHE_EXPR:F,ERB_EXPR:z,TMPLIT_EXPR:B,DATA_ATTR:W,ARIA_ATTR:G,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,ATTR_WHITESPACE:q,DOCTYPE_NAME:X,CUSTOM_ELEMENT:$});const V=function(){return"undefined"==typeof window?null:window},Z=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}};var J=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:V();const o=e=>t(e);if(o.version="3.0.11",o.removed=[],!n||!n.document||9!==n.document.nodeType)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:N,Node:b,Element:R,NodeFilter:F,NamedNodeMap:z=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,q=D(j,"cloneNode"),$=D(j,"nextSibling"),J=D(j,"childNodes"),Q=D(j,"parentNode");if("function"==typeof N){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let ee,te="";const{implementation:ne,createNodeIterator:oe,createDocumentFragment:re,getElementsByTagName:ie}=r,{importNode:ae}=a;let le={};o.isSupported="function"==typeof e&&"function"==typeof Q&&ne&&void 0!==ne.createHTMLDocument;const{MUSTACHE_EXPR:ce,ERB_EXPR:se,TMPLIT_EXPR:ue,DATA_ATTR:me,ARIA_ATTR:fe,IS_SCRIPT_OR_DATA:pe,ATTR_WHITESPACE:de,CUSTOM_ELEMENT:he}=K;let{IS_ALLOWED_URI:ge}=K,Te=null;const ye=S({},[...L,...C,...O,...v,...I]);let Ee=null;const Ae=S({},[...M,...U,...P,...H]);let _e=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ne=null,be=null,Se=!0,Re=!0,we=!1,De=!0,Le=!1,Ce=!1,Oe=!1,xe=!1,ve=!1,ke=!1,Ie=!1,Me=!0,Ue=!1;const Pe="user-content-";let He=!0,Fe=!1,ze={},Be=null;const We=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ge=null;const Ye=S({},["audio","video","img","source","image","track"]);let je=null;const qe=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Xe="http://www.w3.org/1998/Math/MathML",$e="http://www.w3.org/2000/svg",Ke="http://www.w3.org/1999/xhtml";let Ve=Ke,Ze=!1,Je=null;const Qe=S({},[Xe,$e,Ke],d);let et=null;const tt=["application/xhtml+xml","text/html"],nt="text/html";let ot=null,rt=null;const it=r.createElement("form"),at=function(e){return e instanceof RegExp||e instanceof Function},lt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!rt||rt!==e){if(e&&"object"==typeof e||(e={}),e=w(e),et=-1===tt.indexOf(e.PARSER_MEDIA_TYPE)?nt:e.PARSER_MEDIA_TYPE,ot="application/xhtml+xml"===et?d:p,Te=E(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,ot):ye,Ee=E(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,ot):Ae,Je=E(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,d):Qe,je=E(e,"ADD_URI_SAFE_ATTR")?S(w(qe),e.ADD_URI_SAFE_ATTR,ot):qe,Ge=E(e,"ADD_DATA_URI_TAGS")?S(w(Ye),e.ADD_DATA_URI_TAGS,ot):Ye,Be=E(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,ot):We,Ne=E(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,ot):{},be=E(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,ot):{},ze=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,Se=!1!==e.ALLOW_ARIA_ATTR,Re=!1!==e.ALLOW_DATA_ATTR,we=e.ALLOW_UNKNOWN_PROTOCOLS||!1,De=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Le=e.SAFE_FOR_TEMPLATES||!1,Ce=e.WHOLE_DOCUMENT||!1,ve=e.RETURN_DOM||!1,ke=e.RETURN_DOM_FRAGMENT||!1,Ie=e.RETURN_TRUSTED_TYPE||!1,xe=e.FORCE_BODY||!1,Me=!1!==e.SANITIZE_DOM,Ue=e.SANITIZE_NAMED_PROPS||!1,He=!1!==e.KEEP_CONTENT,Fe=e.IN_PLACE||!1,ge=e.ALLOWED_URI_REGEXP||Y,Ve=e.NAMESPACE||Ke,_e=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&at(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(_e.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&at(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(_e.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(_e.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Le&&(Re=!1),ke&&(ve=!0),ze&&(Te=S({},I),Ee=[],!0===ze.html&&(S(Te,L),S(Ee,M)),!0===ze.svg&&(S(Te,C),S(Ee,U),S(Ee,H)),!0===ze.svgFilters&&(S(Te,O),S(Ee,U),S(Ee,H)),!0===ze.mathMl&&(S(Te,v),S(Ee,P),S(Ee,H))),e.ADD_TAGS&&(Te===ye&&(Te=w(Te)),S(Te,e.ADD_TAGS,ot)),e.ADD_ATTR&&(Ee===Ae&&(Ee=w(Ee)),S(Ee,e.ADD_ATTR,ot)),e.ADD_URI_SAFE_ATTR&&S(je,e.ADD_URI_SAFE_ATTR,ot),e.FORBID_CONTENTS&&(Be===We&&(Be=w(Be)),S(Be,e.FORBID_CONTENTS,ot)),He&&(Te["#text"]=!0),Ce&&S(Te,["html","head","body"]),Te.table&&(S(Te,["tbody"]),delete Ne.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ee=e.TRUSTED_TYPES_POLICY,te=ee.createHTML("")}else void 0===ee&&(ee=Z(G,c)),null!==ee&&"string"==typeof te&&(te=ee.createHTML(""));i&&i(e),rt=e}},ct=S({},["mi","mo","mn","ms","mtext"]),st=S({},["foreignobject","desc","title","annotation-xml"]),ut=S({},["title","style","font","a","script"]),mt=S({},[...C,...O,...x]),ft=S({},[...v,...k]),pt=function(e){let t=Q(e);t&&t.tagName||(t={namespaceURI:Ve,tagName:"template"});const n=p(e.tagName),o=p(t.tagName);return!!Je[e.namespaceURI]&&(e.namespaceURI===$e?t.namespaceURI===Ke?"svg"===n:t.namespaceURI===Xe?"svg"===n&&("annotation-xml"===o||ct[o]):Boolean(mt[n]):e.namespaceURI===Xe?t.namespaceURI===Ke?"math"===n:t.namespaceURI===$e?"math"===n&&st[o]:Boolean(ft[n]):e.namespaceURI===Ke?!(t.namespaceURI===$e&&!st[o])&&(!(t.namespaceURI===Xe&&!ct[o])&&(!ft[n]&&(ut[n]||!mt[n]))):!("application/xhtml+xml"!==et||!Je[e.namespaceURI]))},dt=function(e){f(o.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},ht=function(e,t){try{f(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){f(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Ee[e])if(ve||ke)try{dt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},gt=function(e){let t=null,n=null;if(xe)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===et&&Ve===Ke&&(e=''+e+"");const o=ee?ee.createHTML(e):e;if(Ve===Ke)try{t=(new W).parseFromString(o,et)}catch(e){}if(!t||!t.documentElement){t=ne.createDocument(Ve,"template",null);try{t.documentElement.innerHTML=Ze?te:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),Ve===Ke?ie.call(t,Ce?"html":"body")[0]:Ce?t.documentElement:i},Tt=function(e){return oe.call(e.ownerDocument||e,e,F.SHOW_ELEMENT|F.SHOW_COMMENT|F.SHOW_TEXT|F.SHOW_PROCESSING_INSTRUCTION|F.SHOW_CDATA_SECTION,null)},yt=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Et=function(e){return"function"==typeof b&&e instanceof b},At=function(e,t,n){le[e]&&u(le[e],(e=>{e.call(o,t,n,rt)}))},_t=function(e){let t=null;if(At("beforeSanitizeElements",e,null),yt(e))return dt(e),!0;const n=ot(e.nodeName);if(At("uponSanitizeElement",e,{tagName:n,allowedTags:Te}),e.hasChildNodes()&&!Et(e.firstElementChild)&&A(/<[/\w]/g,e.innerHTML)&&A(/<[/\w]/g,e.textContent))return dt(e),!0;if(7===e.nodeType)return dt(e),!0;if(!Te[n]||Ne[n]){if(!Ne[n]&&bt(n)){if(_e.tagNameCheck instanceof RegExp&&A(_e.tagNameCheck,n))return!1;if(_e.tagNameCheck instanceof Function&&_e.tagNameCheck(n))return!1}if(He&&!Be[n]){const t=Q(e)||e.parentNode,n=J(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o)t.insertBefore(q(n[o],!0),$(e))}}return dt(e),!0}return e instanceof R&&!pt(e)?(dt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!A(/<\/no(script|embed|frames)/i,e.innerHTML)?(Le&&3===e.nodeType&&(t=e.textContent,u([ce,se,ue],(e=>{t=g(t,e," ")})),e.textContent!==t&&(f(o.removed,{element:e.cloneNode()}),e.textContent=t)),At("afterSanitizeElements",e,null),!1):(dt(e),!0)},Nt=function(e,t,n){if(Me&&("id"===t||"name"===t)&&(n in r||n in it))return!1;if(Re&&!be[t]&&A(me,t));else if(Se&&A(fe,t));else if(!Ee[t]||be[t]){if(!(bt(e)&&(_e.tagNameCheck instanceof RegExp&&A(_e.tagNameCheck,e)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(e))&&(_e.attributeNameCheck instanceof RegExp&&A(_e.attributeNameCheck,t)||_e.attributeNameCheck instanceof Function&&_e.attributeNameCheck(t))||"is"===t&&_e.allowCustomizedBuiltInElements&&(_e.tagNameCheck instanceof RegExp&&A(_e.tagNameCheck,n)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(n))))return!1}else if(je[t]);else if(A(ge,g(n,de,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Ge[e]){if(we&&!A(pe,g(n,de,"")));else if(n)return!1}else;return!0},bt=function(e){return"annotation-xml"!==e&&h(e,he)},St=function(e){At("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ee};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=ot(a);let f="value"===a?c:y(c);if(n.attrName=s,n.attrValue=f,n.keepAttr=!0,n.forceKeepAttr=void 0,At("uponSanitizeAttribute",e,n),f=n.attrValue,n.forceKeepAttr)continue;if(ht(a,e),!n.keepAttr)continue;if(!De&&A(/\/>/i,f)){ht(a,e);continue}Le&&u([ce,se,ue],(e=>{f=g(f,e," ")}));const p=ot(e.nodeName);if(Nt(p,s,f)){if(!Ue||"id"!==s&&"name"!==s||(ht(a,e),f=Pe+f),ee&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(p,s)){case"TrustedHTML":f=ee.createHTML(f);break;case"TrustedScriptURL":f=ee.createScriptURL(f)}try{l?e.setAttributeNS(l,a,f):e.setAttribute(a,f),m(o.removed)}catch(e){}}}At("afterSanitizeAttributes",e,null)},Rt=function e(t){let n=null;const o=Tt(t);for(At("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)At("uponSanitizeShadowNode",n,null),_t(n)||(n.content instanceof s&&e(n.content),St(n));At("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(Ze=!e,Ze&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Et(e)){if("function"!=typeof e.toString)throw _("toString is not a function");if("string"!=typeof(e=e.toString()))throw _("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Oe||lt(t),o.removed=[],"string"==typeof e&&(Fe=!1),Fe){if(e.nodeName){const t=ot(e.nodeName);if(!Te[t]||Ne[t])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=gt("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),1===r.nodeType&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!ve&&!Le&&!Ce&&-1===e.indexOf("<"))return ee&&Ie?ee.createHTML(e):e;if(n=gt(e),!n)return ve?null:Ie?te:""}n&&xe&&dt(n.firstChild);const c=Tt(Fe?e:n);for(;i=c.nextNode();)_t(i)||(i.content instanceof s&&Rt(i.content),St(i));if(Fe)return e;if(ve){if(ke)for(l=re.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Ee.shadowroot||Ee.shadowrootmode)&&(l=ae.call(a,l,!0)),l}let m=Ce?n.outerHTML:n.innerHTML;return Ce&&Te["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&A(X,n.ownerDocument.doctype.name)&&(m="\n"+m),Le&&u([ce,se,ue],(e=>{m=g(m,e," ")})),ee&&Ie?ee.createHTML(m):m},o.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};lt(e),Oe=!0},o.clearConfig=function(){rt=null,Oe=!1},o.isValidAttribute=function(e,t,n){rt||lt({});const o=ot(e),r=ot(t);return Nt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(le[e]=le[e]||[],f(le[e],t))},o.removeHook=function(e){if(le[e])return m(le[e])},o.removeHooks=function(e){le[e]&&(le[e]=[])},o.removeAllHooks=function(){le={}},o}();return J})); +/*! @license DOMPurify 3.1.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.0/LICENSE */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=b(Array.prototype.forEach),m=b(Array.prototype.pop),p=b(Array.prototype.push),f=b(String.prototype.toLowerCase),d=b(String.prototype.toString),h=b(String.prototype.match),g=b(String.prototype.replace),T=b(String.prototype.indexOf),y=b(String.prototype.trim),E=b(Object.prototype.hasOwnProperty),A=b(RegExp.prototype.test),_=(N=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t/gm),B=a(/\${[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),X=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),q=a(/^html$/i),$=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,MUSTACHE_EXPR:H,ERB_EXPR:z,TMPLIT_EXPR:B,DATA_ATTR:W,ARIA_ATTR:G,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,ATTR_WHITESPACE:X,DOCTYPE_NAME:q,CUSTOM_ELEMENT:$});const V=function(){return"undefined"==typeof window?null:window},Z=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}};var J=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:V();const o=e=>t(e);if(o.version="3.1.0",o.removed=[],!n||!n.document||9!==n.document.nodeType)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:N,Node:b,Element:R,NodeFilter:H,NamedNodeMap:z=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,X=L(j,"cloneNode"),$=L(j,"nextSibling"),J=L(j,"childNodes"),Q=L(j,"parentNode");if("function"==typeof N){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let ee,te="";const{implementation:ne,createNodeIterator:oe,createDocumentFragment:re,getElementsByTagName:ie}=r,{importNode:ae}=a;let le={};o.isSupported="function"==typeof e&&"function"==typeof Q&&ne&&void 0!==ne.createHTMLDocument;const{MUSTACHE_EXPR:ce,ERB_EXPR:se,TMPLIT_EXPR:ue,DATA_ATTR:me,ARIA_ATTR:pe,IS_SCRIPT_OR_DATA:fe,ATTR_WHITESPACE:de,CUSTOM_ELEMENT:he}=K;let{IS_ALLOWED_URI:ge}=K,Te=null;const ye=S({},[...D,...C,...O,...v,...M]);let Ee=null;const Ae=S({},[...I,...U,...P,...F]);let _e=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ne=null,be=null,Se=!0,Re=!0,we=!1,Le=!0,De=!1,Ce=!0,Oe=!1,xe=!1,ve=!1,ke=!1,Me=!1,Ie=!1,Ue=!0,Pe=!1;const Fe="user-content-";let He=!0,ze=!1,Be={},We=null;const Ge=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ye=null;const je=S({},["audio","video","img","source","image","track"]);let Xe=null;const qe=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),$e="http://www.w3.org/1998/Math/MathML",Ke="http://www.w3.org/2000/svg",Ve="http://www.w3.org/1999/xhtml";let Ze=Ve,Je=!1,Qe=null;const et=S({},[$e,Ke,Ve],d);let tt=null;const nt=["application/xhtml+xml","text/html"],ot="text/html";let rt=null,it=null;const at=r.createElement("form"),lt=function(e){return e instanceof RegExp||e instanceof Function},ct=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!it||it!==e){if(e&&"object"==typeof e||(e={}),e=w(e),tt=-1===nt.indexOf(e.PARSER_MEDIA_TYPE)?ot:e.PARSER_MEDIA_TYPE,rt="application/xhtml+xml"===tt?d:f,Te=E(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,rt):ye,Ee=E(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,rt):Ae,Qe=E(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,d):et,Xe=E(e,"ADD_URI_SAFE_ATTR")?S(w(qe),e.ADD_URI_SAFE_ATTR,rt):qe,Ye=E(e,"ADD_DATA_URI_TAGS")?S(w(je),e.ADD_DATA_URI_TAGS,rt):je,We=E(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,rt):Ge,Ne=E(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,rt):{},be=E(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,rt):{},Be=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,Se=!1!==e.ALLOW_ARIA_ATTR,Re=!1!==e.ALLOW_DATA_ATTR,we=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Le=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,De=e.SAFE_FOR_TEMPLATES||!1,Ce=!1!==e.SAFE_FOR_XML,Oe=e.WHOLE_DOCUMENT||!1,ke=e.RETURN_DOM||!1,Me=e.RETURN_DOM_FRAGMENT||!1,Ie=e.RETURN_TRUSTED_TYPE||!1,ve=e.FORCE_BODY||!1,Ue=!1!==e.SANITIZE_DOM,Pe=e.SANITIZE_NAMED_PROPS||!1,He=!1!==e.KEEP_CONTENT,ze=e.IN_PLACE||!1,ge=e.ALLOWED_URI_REGEXP||Y,Ze=e.NAMESPACE||Ve,_e=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&<(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(_e.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&<(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(_e.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(_e.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),De&&(Re=!1),Me&&(ke=!0),Be&&(Te=S({},M),Ee=[],!0===Be.html&&(S(Te,D),S(Ee,I)),!0===Be.svg&&(S(Te,C),S(Ee,U),S(Ee,F)),!0===Be.svgFilters&&(S(Te,O),S(Ee,U),S(Ee,F)),!0===Be.mathMl&&(S(Te,v),S(Ee,P),S(Ee,F))),e.ADD_TAGS&&(Te===ye&&(Te=w(Te)),S(Te,e.ADD_TAGS,rt)),e.ADD_ATTR&&(Ee===Ae&&(Ee=w(Ee)),S(Ee,e.ADD_ATTR,rt)),e.ADD_URI_SAFE_ATTR&&S(Xe,e.ADD_URI_SAFE_ATTR,rt),e.FORBID_CONTENTS&&(We===Ge&&(We=w(We)),S(We,e.FORBID_CONTENTS,rt)),He&&(Te["#text"]=!0),Oe&&S(Te,["html","head","body"]),Te.table&&(S(Te,["tbody"]),delete Ne.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ee=e.TRUSTED_TYPES_POLICY,te=ee.createHTML("")}else void 0===ee&&(ee=Z(G,c)),null!==ee&&"string"==typeof te&&(te=ee.createHTML(""));i&&i(e),it=e}},st=S({},["mi","mo","mn","ms","mtext"]),ut=S({},["foreignobject","desc","title","annotation-xml"]),mt=S({},["title","style","font","a","script"]),pt=S({},[...C,...O,...x]),ft=S({},[...v,...k]),dt=function(e){let t=Q(e);t&&t.tagName||(t={namespaceURI:Ze,tagName:"template"});const n=f(e.tagName),o=f(t.tagName);return!!Qe[e.namespaceURI]&&(e.namespaceURI===Ke?t.namespaceURI===Ve?"svg"===n:t.namespaceURI===$e?"svg"===n&&("annotation-xml"===o||st[o]):Boolean(pt[n]):e.namespaceURI===$e?t.namespaceURI===Ve?"math"===n:t.namespaceURI===Ke?"math"===n&&ut[o]:Boolean(ft[n]):e.namespaceURI===Ve?!(t.namespaceURI===Ke&&!ut[o])&&(!(t.namespaceURI===$e&&!st[o])&&(!ft[n]&&(mt[n]||!pt[n]))):!("application/xhtml+xml"!==tt||!Qe[e.namespaceURI]))},ht=function(e){p(o.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},gt=function(e,t){try{p(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Ee[e])if(ke||Me)try{ht(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Tt=function(e){let t=null,n=null;if(ve)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===tt&&Ze===Ve&&(e=''+e+"");const o=ee?ee.createHTML(e):e;if(Ze===Ve)try{t=(new W).parseFromString(o,tt)}catch(e){}if(!t||!t.documentElement){t=ne.createDocument(Ze,"template",null);try{t.documentElement.innerHTML=Je?te:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),Ze===Ve?ie.call(t,Oe?"html":"body")[0]:Oe?t.documentElement:i},yt=function(e){return oe.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},Et=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},At=function(e){return"function"==typeof b&&e instanceof b},_t=function(e,t,n){le[e]&&u(le[e],(e=>{e.call(o,t,n,it)}))},Nt=function(e){let t=null;if(_t("beforeSanitizeElements",e,null),Et(e))return ht(e),!0;const n=rt(e.nodeName);if(_t("uponSanitizeElement",e,{tagName:n,allowedTags:Te}),e.hasChildNodes()&&!At(e.firstElementChild)&&A(/<[/\w]/g,e.innerHTML)&&A(/<[/\w]/g,e.textContent))return ht(e),!0;if(7===e.nodeType)return ht(e),!0;if(Ce&&8===e.nodeType&&A(/<[/\w]/g,e.data))return ht(e),!0;if(!Te[n]||Ne[n]){if(!Ne[n]&&St(n)){if(_e.tagNameCheck instanceof RegExp&&A(_e.tagNameCheck,n))return!1;if(_e.tagNameCheck instanceof Function&&_e.tagNameCheck(n))return!1}if(He&&!We[n]){const t=Q(e)||e.parentNode,n=J(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o)t.insertBefore(X(n[o],!0),$(e))}}return ht(e),!0}return e instanceof R&&!dt(e)?(ht(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!A(/<\/no(script|embed|frames)/i,e.innerHTML)?(De&&3===e.nodeType&&(t=e.textContent,u([ce,se,ue],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),_t("afterSanitizeElements",e,null),!1):(ht(e),!0)},bt=function(e,t,n){if(Ue&&("id"===t||"name"===t)&&(n in r||n in at))return!1;if(Re&&!be[t]&&A(me,t));else if(Se&&A(pe,t));else if(!Ee[t]||be[t]){if(!(St(e)&&(_e.tagNameCheck instanceof RegExp&&A(_e.tagNameCheck,e)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(e))&&(_e.attributeNameCheck instanceof RegExp&&A(_e.attributeNameCheck,t)||_e.attributeNameCheck instanceof Function&&_e.attributeNameCheck(t))||"is"===t&&_e.allowCustomizedBuiltInElements&&(_e.tagNameCheck instanceof RegExp&&A(_e.tagNameCheck,n)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(n))))return!1}else if(Xe[t]);else if(A(ge,g(n,de,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Ye[e]){if(we&&!A(fe,g(n,de,"")));else if(n)return!1}else;return!0},St=function(e){return"annotation-xml"!==e&&h(e,he)},Rt=function(e){_t("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ee};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=rt(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,_t("uponSanitizeAttribute",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(gt(a,e),!n.keepAttr)continue;if(!Le&&A(/\/>/i,p)){gt(a,e);continue}De&&u([ce,se,ue],(e=>{p=g(p,e," ")}));const f=rt(e.nodeName);if(bt(f,s,p)){if(!Pe||"id"!==s&&"name"!==s||(gt(a,e),p=Fe+p),ee&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ee.createHTML(p);break;case"TrustedScriptURL":p=ee.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),m(o.removed)}catch(e){}}}_t("afterSanitizeAttributes",e,null)},wt=function e(t){let n=null;const o=yt(t);for(_t("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)_t("uponSanitizeShadowNode",n,null),Nt(n)||(n.content instanceof s&&e(n.content),Rt(n));_t("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(Je=!e,Je&&(e="\x3c!--\x3e"),"string"!=typeof e&&!At(e)){if("function"!=typeof e.toString)throw _("toString is not a function");if("string"!=typeof(e=e.toString()))throw _("dirty is not a string, aborting")}if(!o.isSupported)return e;if(xe||ct(t),o.removed=[],"string"==typeof e&&(ze=!1),ze){if(e.nodeName){const t=rt(e.nodeName);if(!Te[t]||Ne[t])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Tt("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),1===r.nodeType&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!ke&&!De&&!Oe&&-1===e.indexOf("<"))return ee&&Ie?ee.createHTML(e):e;if(n=Tt(e),!n)return ke?null:Ie?te:""}n&&ve&&ht(n.firstChild);const c=yt(ze?e:n);for(;i=c.nextNode();)Nt(i)||(i.content instanceof s&&wt(i.content),Rt(i));if(ze)return e;if(ke){if(Me)for(l=re.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Ee.shadowroot||Ee.shadowrootmode)&&(l=ae.call(a,l,!0)),l}let m=Oe?n.outerHTML:n.innerHTML;return Oe&&Te["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&A(q,n.ownerDocument.doctype.name)&&(m="\n"+m),De&&u([ce,se,ue],(e=>{m=g(m,e," ")})),ee&&Ie?ee.createHTML(m):m},o.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ct(e),xe=!0},o.clearConfig=function(){it=null,xe=!1},o.isValidAttribute=function(e,t,n){it||ct({});const o=rt(e),r=rt(t);return bt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(le[e]=le[e]||[],p(le[e],t))},o.removeHook=function(e){if(le[e])return m(le[e])},o.removeHooks=function(e){le[e]&&(le[e]=[])},o.removeAllHooks=function(){le={}},o}();return J})); //# sourceMappingURL=purify.min.js.map