PRX / theworld.org

React/Next.js frontend for theworld.org
https://theworld.org
Mozilla Public License 2.0
1 stars 0 forks source link

Datawrapper transformer for HtmlContent component #423

Closed rpeterman-gp closed 1 year ago

rpeterman-gp commented 1 year ago

Transformer should look for and expect Datawrapper's basic iframe embed. It should add the appropriate event handlers and styles to make the chart embed responsive.

Refer to their responsive embed code:

<iframe
  title="Where student loan debt is highest in the US"
  aria-label="Map"
  id="datawrapper-chart-CSSVw"
  src="https://datawrapper.dwcdn.net/CSSVw/12/"
  scrolling="no"
  frameborder="0"
  style="width: 0; min-width: 100% !important; border: none"
  height="542"
  data-external="1"
></iframe>
<script type="text/javascript">
  !(function () {
    "use strict";
    window.addEventListener("message", function (a) {
      if (void 0 !== a.data["datawrapper-height"]) {
        var e = document.querySelectorAll("iframe");
        for (var t in a.data["datawrapper-height"])
          for (var r = 0; r < e.length; r++)
            if (e[r].contentWindow === a.source) {
              var i = a.data["datawrapper-height"][t] + "px";
              e[r].style.height = i;
            }
      }
    });
  })();
</script>