JSFiddle - React, Tailwind, and code Playground

by Che Sampat

HTML

<div id="mc63dgcbrmbzqv"><a href="https://app.moonclerk.com/pay/63dgcbrmbzqv">6875</a></div>
<script type="text/javascript">
  var mc63dgcbrmbzqv;
  (function(d, t) {
    var s = d.createElement(t),
      opts = {
        "checkoutToken": "63dgcbrmbzqv",
        "width": "100%"
      };
    s.src = 'https://d2l7e0y6ygya2s.cloudfront.net/assets/embed.js';
    s.onload = s.onreadystatechange = function() {
      var rs = this.readyState;
      if (rs)
        if (rs != 'complete')
          if (rs != 'loaded') return;
      try {
        mc63dgcbrmbzqv = new MoonclerkEmbed(opts);
        mc63dgcbrmbzqv.display();
      } catch (e) {}
    };
    var scr = d.getElementsByTagName(t)[0];
    scr.parentNode.insertBefore(s, scr);
  })(document, 'script');

</script>

JavaScript

(function() {
  var o = function(t, e) {
      return function() {
        return t.apply(e, arguments)
      }
    },
    l = [].slice;
  this.MoonclerkEmbed = function() {
    function t(t) {
      var e;
      for (e in this.replaceFrame = o(this.replaceFrame, this), t) t[e], this.options[e] = t[e];
      if (this.options.debug = "1" === this.getUrlParameter("mcdebug"), this.log("OPTIONS: ", this.options), !window.postMessage) throw "This browser does not support postMessage.";
      this.addEvent(window, "message", this.bindMethod(this.resizeFrame, this))
    }
    var r, n, i, s;
    return t.prototype.options = {
      checkoutToken: null,
      cid: null,
      height: 0,
      host: "app.moonclerk.com",
      scrollOffsetTop: 0,
      ssl: !0,
      track: [],
      width: "100%"
    }, s = n = "", i = r = 0, null, t.prototype.display = function() {
      var t;
      return t = this.buildFrame(), -1 < this.options.track.indexOf("ga") && null != window.ga ? (this.log("[display()] Google Tracker Configured. Wrapping with tracker."), window.ga(this.loadFrame(t))) : (this.log("[display()] Google Tracker NOT Configured. Loading normally."), this.replaceFrame(t))
    }, t.prototype.loadFrame = function(e) {
      return o = this,
        function(t) {
          return o.log("[loadFrame()] Starting GA callback with tracker", t), window.linker = window.linker || new window.gaplugins.Linker(t), o.log("[loadFrame()] iFrame.src BEFORE", e.src), e.src = window.linker.decorate(e.src), o.log("[loadFrame()] iFrame.src AFTER", e.src), o.replaceFrame(e)
        };
      var o
    }, t.prototype.replaceFrame = function(t) {
      var e;
      return e = document.getElementById("mc" + this.options.checkoutToken), this.log("[replaceFrame()] container BEFORE replace:", e.outerHTML), this.log("[replaceFrame()] replacement content:", t.outerHTML), e.innerHTML = "", e.appendChild(t), this.log("[replaceFrame()] container AFTER replace:", e.outerHTML)
    },...