(() => { // fetch('https://trustmate.io/widget/api/ab79921e-39d4-420b-8c42-52985ea9da5b/html') - TODO: remove after platform multihornet fix - !!!frontend do not remove const UI = { last: (where, what) => {where?.append(what)}, first: (where, what) => {where?.insertBefore(what, where.firstChild)}, after: (where, what) => {where?.parentNode.insertBefore(what, where.nextSibling)}, before: (where, what) => {where?.parentNode.insertBefore(what, where)}, replace: (where, what) => {where?.replaceWith(what)} }; const RELOADS_LIMIT = 10; let reloadsCount = 0; function loadWidgetHtml() { const tag = document.getElementById('ab79921e-39d4-420b-8c42-52985ea9da5b'); if (tag) { widgetConfig = { target: tag.dataset.t, action: tag.dataset.a, observe: tag.dataset.o }; if (widgetConfig.target && widgetConfig.action) { if (!Object.hasOwn(UI, widgetConfig.action)) { console.error(`TrustMate: action '${widgetConfig.action}' is wrong`); return; } const target = document.querySelector(widgetConfig.target); if (!target) { console.error(`TrustMate: target '${widgetConfig.target}' not found`); return; } UI[widgetConfig.action](target, tag); } tag.innerHTML = ``; if (widgetConfig.target && widgetConfig.action && widgetConfig.observe) { const observeTag = document.querySelector(widgetConfig.observe); if (observeTag) { const widgetObserver = new MutationObserver((mutations, observer) => { const tag = document.getElementById('ab79921e-39d4-420b-8c42-52985ea9da5b'); if (tag) return; observer.disconnect(); if (reloadsCount >= RELOADS_LIMIT) { console.error('TrustMate: widget ab79921e-39d4-420b-8c42-52985ea9da5b reload limit reached'); return; } ++reloadsCount; const newTag = document.createElement('div'); newTag.id = 'ab79921e-39d4-420b-8c42-52985ea9da5b'; newTag.dataset.a = widgetConfig.action; newTag.dataset.t = widgetConfig.target; newTag.dataset.o = widgetConfig.observe; const target = document.querySelector(widgetConfig.target); if (!target) { console.error(`TrustMate: target '${widgetConfig.target}' not found after last html change`); return; } UI[widgetConfig.action](target, newTag); loadWidgetScript(); }); widgetObserver.observe(observeTag, {childList: true, subtree: true}); } } } else { console.error('TrustMate: No tag for ab79921e-39d4-420b-8c42-52985ea9da5b'); } } function waitForWindow() { let index = 0; const intervalWindowId = setInterval(function() { if (typeof window !== 'undefined') { clearInterval(intervalWindowId); loadWidgetScript(); } index += 1; if (index > 50) { clearInterval(intervalWindowId); } }, 50); } function loadWidgetScript() { if (34433 < 10) return; function scriptExists(url) { return document.querySelectorAll(`script[src="${url}"]`).length > 0; } if(scriptExists('https\u003A\/\/trustmate.io\/build\/js\/widget\/dodo2.7cbfe5c5.js')) { function removeJs(src) { document.querySelector(`script[src="${src}"]`).remove(); } removeJs('https\u003A\/\/trustmate.io\/build\/js\/widget\/dodo2.7cbfe5c5.js'); } const widgetScript = document.createElement('script'); widgetScript.src = 'https\u003A\/\/trustmate.io\/build\/js\/widget\/dodo2.7cbfe5c5.js'; widgetScript.defer = true; widgetScript.onload = () => { loadWidgetHtml(); }; document.body.appendChild(widgetScript); } if (typeof window === 'undefined') { waitForWindow(); } else { loadWidgetScript(); } })();