export class GTM {
  gtagID = "{{.GtagID}}";

  constructor() {
    this.insertScript(window, document, 'script', 'dataLayer', this.gtagID);
    this.insertNoScript();
  }


  insertScript(w, d, s, l, i) {
    w[l] = w[l] || []; w[l].push({
      'gtm.start':
        new Date().getTime(), event: 'gtm.js'
    }); var f = d.getElementsByTagName(s)[0],
      j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
        'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
  }

  insertNoScript() {
    const noscript = document.createElement("noscript");
    const iframe = document.createElement("iframe");
    iframe.src = "https://www.googletagmanager.com/ns.html?id=" + this.gtagID;
    iframe.height = 0;
    iframe.width = 0;
    iframe.style = "display:none;visibility:hidden";
    noscript.appendChild(iframe);
    document.body.appendChild(noscript);
  }
}
