{"version":3,"file":"embed-application.js","names":["referer","document","getElementById","dataset","postUp","msg","parent","postMessage","clickPostLink","e","postId","target","getAttribute","postElement","rect","getBoundingClientRect","top","type","preventDefault","window","onload","embedState","querySelector","state","embedId","height","offsetHeight","i","postLinks","querySelectorAll","length","onclick","cookedLinks","names","username","innerHTML","BreakString","break","hashtags","remove","innerText"],"sources":["scripts/embed-application.js"],"sourcesContent":["(function () {\n  const referer = document.getElementById(\"data-embedded\").dataset.referer;\n\n  function postUp(msg) {\n    if (parent) {\n      parent.postMessage(msg, referer);\n    }\n  }\n\n  function clickPostLink(e) {\n    let postId = e.target.getAttribute(\"data-link-to-post\");\n    if (postId) {\n      let postElement = document.getElementById(\"post-\" + postId);\n      if (postElement) {\n        let rect = postElement.getBoundingClientRect();\n        if (rect && rect.top) {\n          postUp({ type: \"discourse-scroll\", top: rect.top });\n          e.preventDefault();\n          return false;\n        }\n      }\n    }\n  }\n\n  window.onload = function () {\n    // get state info from data attribute\n    let embedState = document.querySelector(\"[data-embed-state]\");\n    let state = \"unknown\";\n    let embedId = null;\n    if (embedState) {\n      state = embedState.getAttribute(\"data-embed-state\");\n      embedId = embedState.getAttribute(\"data-embed-id\");\n    }\n\n    // Send a post message with our loaded height and state\n    postUp({\n      type: \"discourse-resize\",\n      height: document[\"body\"].offsetHeight,\n      state,\n      embedId,\n    });\n\n    let postLinks = document.querySelectorAll(\"a[data-link-to-post]\"),\n      i;\n\n    for (i = 0; i < postLinks.length; i++) {\n      postLinks[i].onclick = clickPostLink;\n    }\n\n    // Make sure all links in the iframe point to _blank\n    let cookedLinks = document.querySelectorAll(\".cooked a\");\n    for (i = 0; i < cookedLinks.length; i++) {\n      cookedLinks[i].target = \"_blank\";\n    }\n\n    // Adjust all names\n    let names = document.querySelectorAll(\".username a\");\n    for (i = 0; i < names.length; i++) {\n      let username = names[i].innerHTML;\n      if (username) {\n        /* global BreakString */\n        names[i].innerHTML = new BreakString(username).break();\n      }\n    }\n\n    // Use a # for hashtags since we don't have the JS and icons needed here to render the proper icon.\n    let hashtags = document.querySelectorAll(\".cooked a.hashtag-cooked\");\n    for (i = 0; i < hashtags.length; i++) {\n      hashtags[i].querySelector(\".hashtag-icon-placeholder .d-icon\").remove();\n      hashtags[i].querySelector(\".hashtag-icon-placeholder\").innerText = \"#\";\n    }\n  };\n})();\n"],"mappings":"CAAA,WACE,MAAMA,EAAUC,SAASC,eAAe,iBAAiBC,QAAQH;AAEjE,SAASI,EAAOC,GACVC,QACFA,OAAOC,YAAYF,EAAKL,EAE5B,CAEA,SAASQ,EAAcC,GACrB,IAAIC,EAASD,EAAEE,OAAOC,aAAa;AACnC,GAAIF,EAAQ,CACV,IAAIG,EAAcZ,SAASC,eAAe,QAAUQ;AACpD,GAAIG,EAAa,CACf,IAAIC,EAAOD,EAAYE;AACvB,GAAID,GAAQA,EAAKE,IAGf,OAFAZ,EAAO,CAAEa,KAAM,mBAAoBD,IAAKF,EAAKE,MAC7CP,EAAES,kBACK,CAEX,CACF,CACF,CAEAC,OAAOC,OAAS,WAEd,IAAIC,EAAapB,SAASqB,cAAc,sBACpCC,EAAQ,UACRC,EAAU;AACVH,IACFE,EAAQF,EAAWT,aAAa,oBAChCY,EAAUH,EAAWT,aAAa,kBAIpCR,EAAO,CACLa,KAAM,mBACNQ,OAAQxB,SAAe,KAAEyB,aACzBH,QACAC;AAGF,IACEG,EADEC,EAAY3B,SAAS4B,iBAAiB;AAG1C,IAAKF,EAAI,EAAGA,EAAIC,EAAUE,OAAQH,IAChCC,EAAUD,GAAGI,QAAUvB;AAIzB,IAAIwB,EAAc/B,SAAS4B,iBAAiB;AAC5C,IAAKF,EAAI,EAAGA,EAAIK,EAAYF,OAAQH,IAClCK,EAAYL,GAAGhB,OAAS;AAI1B,IAAIsB,EAAQhC,SAAS4B,iBAAiB;AACtC,IAAKF,EAAI,EAAGA,EAAIM,EAAMH,OAAQH,IAAK,CACjC,IAAIO,EAAWD,EAAMN,GAAGQ;AACpBD,IAEFD,EAAMN,GAAGQ,UAAY,IAAIC,YAAYF,GAAUG,QAEnD,CAGA,IAAIC,EAAWrC,SAAS4B,iBAAiB;AACzC,IAAKF,EAAI,EAAGA,EAAIW,EAASR,OAAQH,IAC/BW,EAASX,GAAGL,cAAc,qCAAqCiB,SAC/DD,EAASX,GAAGL,cAAc,6BAA6BkB,UAAY,GAEvE,CACD,EAxED"}