{"version":3,"sources":["webpack:///./app/javascript/utilities/gist.js","webpack:///./app/javascript/packs/postCommentsPage.js"],"names":["postscribeImport","getPostScribe","_getPostScribe","apply","arguments","_asyncToGenerator","postscribe","getGistTags","nodes","_step","gistNodes","_iterator","_createForOfIteratorHelper","s","n","done","node","value","nodeType","classList","contains","push","_toConsumableArray","querySelectorAll","err","e","f","loadEmbeddedGists","gistTags","_step2","_iterator2","_loop","gistTag","gistWrapper","firstElementChild","outerHTML","beforeWrite","text","childElementCount","remove","watchForGistTagInsertion","targetNode","observer","MutationObserver","mutationsList","_step3","_iterator3","_ref","type","addedNodes","length","observe","attributes","childList","subtree","InstantClick","on","disconnect","window","addEventListener","embedGists","_x","_embedGists","document","querySelector"],"mappings":"gxDAAA,IAAIA,EAAiB,SAENC,IAAa,OAAAC,EAAAC,MAAC,KAADC,UAAA,UAAAF,IAU3B,OAV2BA,EAAAG,GAA5B,YACE,GAAIL,EAEF,OAAOA,EAGT,IAAiBM,SAAqB,qCAAX,QAG3B,OAFAN,EAAmBM,CAGrB,KAACH,MAAA,KAAAC,UAAA,CAED,SAASG,EAAYC,GACnB,IAEwBC,EAFlBC,EAAY,GAAGC,EAAAC,EAEFJ,GAAK,IAAxB,IAAAG,EAAAE,MAAAJ,EAAAE,EAAAG,KAAAC,MAA0B,CAAC,IAAhBC,EAAIP,EAAAQ,MACS,IAAlBD,EAAKE,WACHF,EAAKG,UAAUC,SAAS,yBAC1BV,EAAUW,KAAKL,GAGjBN,EAAUW,KAAIlB,MAAdO,EAASY,EAASN,EAAKO,iBAAiB,2BAE5C,CAAC,OAAAC,GAAAb,EAAAc,EAAAD,EAAA,SAAAb,EAAAe,GAAA,CAED,OAAOhB,CACT,CAEA,SAASiB,EAAkBrB,EAAYsB,GAAW,IAClBC,EADiBC,EAAAlB,EACzBgB,GAAQ,QAAAG,EAAA,WAAG,IAAtBC,EAAOH,EAAAZ,MACVgB,EAAcD,EAAQE,kBAC5B5B,EAAW0B,EAASC,EAAYE,UAAW,CACzCC,YAAW,SAACC,GACV,OAAOL,EAAQM,kBAAoB,EAAI,GAAKD,CAC9C,IAEFJ,EAAYM,QACd,EARA,IAAAT,EAAAjB,MAAAgB,EAAAC,EAAAhB,KAAAC,MAAAgB,GAQC,OAAAP,GAAAM,EAAAL,EAAAD,EAAA,SAAAM,EAAAJ,GAAA,CACH,CAEA,SAASc,EAAyBC,EAAYnC,GAC5C,IAUMoC,EAAW,IAAIC,kBARJ,SAAUC,GAAgB,IACOC,EADRC,EAAAlC,EACLgC,GAAa,IAAhD,IAAAE,EAAAjC,MAAAgC,EAAAC,EAAAhC,KAAAC,MAAkD,CAAC,IAADgC,EAAAF,EAAA5B,MAArC+B,EAAID,EAAJC,KAAMC,EAAUF,EAAVE,WACJ,cAATD,GAAwBC,EAAWC,OAAS,GAC9CvB,EAAkBrB,EAAYC,EAAY0C,GAE9C,CAAC,OAAAzB,GAAAsB,EAAArB,EAAAD,EAAA,SAAAsB,EAAApB,GAAA,CACH,IAGAgB,EAASS,QAAQV,EAXF,CAAEW,YAAY,EAAOC,WAAW,EAAMC,SAAS,IAa9DC,aAAaC,GAAG,UAAU,WACxBd,EAASe,YACX,IAEAC,OAAOC,iBAAiB,gBAAgB,WACtCjB,EAASe,YACX,GACF,CAEO,SAAeG,EAAUC,GAAA,OAAAC,EAAA3D,MAAC,KAADC,UAAA,CAU/B,SAAA0D,IAAA,OAAAA,EAAAzD,GAVM,UAA0BoC,GAC/B,IAAMnC,QAAmBL,IAGzB0B,EACErB,EACAyD,SAASxC,iBAAiB,0BAG5BiB,EAAyBC,EAAYnC,EACvC,KAACH,MAAA,KAAAC,UAAA,C,oEC3ED,oBAEMqC,EAAasB,SAASC,cAAc,uBAC1CvB,GAAcmB,YAAWnB,E","file":"js/postCommentsPage-de5ed51d5c9189e55fa8.chunk.js","sourcesContent":["let postscribeImport;\n\nasync function getPostScribe() {\n if (postscribeImport) {\n // Grab the cached import so we're not always fetching it from the network.\n return postscribeImport;\n }\n\n const { default: postscribe } = await import('postscribe');\n postscribeImport = postscribe;\n\n return postscribeImport;\n}\n\nfunction getGistTags(nodes) {\n const gistNodes = [];\n\n for (const node of nodes) {\n if (node.nodeType === 1) {\n if (node.classList.contains('ltag_gist-liquid-tag')) {\n gistNodes.push(node);\n }\n\n gistNodes.push(...node.querySelectorAll('.ltag_gist-liquid-tag'));\n }\n }\n\n return gistNodes;\n}\n\nfunction loadEmbeddedGists(postscribe, gistTags) {\n for (const gistTag of gistTags) {\n const gistWrapper = gistTag.firstElementChild;\n postscribe(gistTag, gistWrapper.outerHTML, {\n beforeWrite(text) {\n return gistTag.childElementCount > 3 ? '' : text;\n },\n });\n gistWrapper.remove();\n }\n}\n\nfunction watchForGistTagInsertion(targetNode, postscribe) {\n const config = { attributes: false, childList: true, subtree: true };\n\n const callback = function (mutationsList) {\n for (const { type, addedNodes } of mutationsList) {\n if (type === 'childList' && addedNodes.length > 0) {\n loadEmbeddedGists(postscribe, getGistTags(addedNodes));\n }\n }\n };\n\n const observer = new MutationObserver(callback);\n observer.observe(targetNode, config);\n\n InstantClick.on('change', () => {\n observer.disconnect();\n });\n\n window.addEventListener('beforeunload', () => {\n observer.disconnect();\n });\n}\n\nexport async function embedGists(targetNode) {\n const postscribe = await getPostScribe();\n\n // Load gist tags that were rendered server-side\n loadEmbeddedGists(\n postscribe,\n document.querySelectorAll('.ltag_gist-liquid-tag'),\n );\n\n watchForGistTagInsertion(targetNode, postscribe);\n}\n","import { embedGists } from '../utilities/gist';\n\nconst targetNode = document.querySelector('#comments-container');\ntargetNode && embedGists(targetNode);\n"],"sourceRoot":""}