(() => {
      // fetch('https://trustmate.io/widget/api/a1db2af6-42dc-433e-9c43-4dc09e2c1c9b/html?product=1043') - 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('tm-widget-hornet');

    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 = `<link rel="stylesheet" href="https://trustmate.io/build/css/widget/hornet.461b60eb.css"><style></style><div
 class="tm-hornet-container"
 style="display: none;"
 data-tmdisableExtra=""
 data-tmShowWithModal="1"
 data-tmShowWithoutReviews=""
 data-tmShowZeroReviewsNumber=""
 data-tmShowOnMobile="1"
 data-tmScrollToWidget="1"
 data-url="https://trustmate.io/"
 data-rating-image=tm-new-star
 data-reviews-slide-modal-url=https://trustmate.io/api/widget/a1db2af6-42dc-433e-9c43-4dc09e2c1c9b/reviews-slide-modal?product=1043
 data-tmRatingPrecision="1"
></div><script type="application/ld+json">{"@context":"https://schema.org/","@type":"Product","name":"25 stuks Organza zakjes 13 x 18 cm - bruin","image":["https://saketos.be/wp-content/uploads/2024/05/organza-zakjes-13x18-cm-25st-bruin-image-1.jpg"],"brand":{"@type":"Brand","name":"Saketos"},"description":"Een collectie van 25 stuks middelgrote organzazakjes in het formaat 13 x 18 cm, waarvan de bruin kleur op elke plaats uitstekend tot haar recht komt. Deze set is heel universeel, de zakjes kunnen immers op de meest diverse manieren worden gebruikt. En zo kunnen ze gebruikt worden om voorwerpen als cosmetica, kaarsjes of zeepjes op te bergen. Ze komen even goed tot hun recht als zakjes voor parfums of een klein geschenk dat we aan iemand aan wie we gehecht zijn, willen schenken. Ook vervullen ze schitterend de rol van elegante verpakking voor een occasioneel cadeau van een bedrijf of organisatie. De organzazakjes kunnen overal waar nodig gebruikt worden, je kan er letterlijk alles in opbergen, voor elke gelegenheid zonder uitzondering!","gtin13":"5902565682712","mpn":"0.00","offers":{"@type":"Offer","url":"https://saketos.be/organza-zakjes-13x18-cm-25st-bruin-5902565682712/","priceCurrency":"EUR","price":"4.59","availability":"https://schema.org/InStock"}}</script>`;

      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('tm-widget-hornet');
            if (tag) return;
            observer.disconnect();
            if (reloadsCount >= RELOADS_LIMIT) {
              console.error('TrustMate: widget tm-widget-hornet reload limit reached');
              return;
            }
            ++reloadsCount;
            const newTag = document.createElement('div');
            newTag.id = 'tm-widget-hornet';
            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 tm-widget-hornet');
    }
  }

  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 (1838 < 10) return;

    function scriptExists(url) {
      return document.querySelectorAll(`script[src="${url}"]`).length > 0;
    }

    if(scriptExists('https\u003A\/\/trustmate.io\/build\/js\/widget\/hornet.d22720c2.js')) {
      function removeJs(src) {
        document.querySelector(`script[src="${src}"]`).remove();
      }

      removeJs('https\u003A\/\/trustmate.io\/build\/js\/widget\/hornet.d22720c2.js');
    }

    const widgetScript = document.createElement('script');
    widgetScript.src = 'https\u003A\/\/trustmate.io\/build\/js\/widget\/hornet.d22720c2.js';
    widgetScript.defer = true;
    widgetScript.onload = () => {
      loadWidgetHtml();
    };
    document.body.appendChild(widgetScript);
  }

  if (typeof window === 'undefined') {
    waitForWindow();
  } else {
    loadWidgetScript();
  }
})();
