{"version":3,"sources":["webpack:///./app/javascript/utilities/gist.js","webpack:///./app/javascript/packs/commentsDisplay.js"],"names":["postscribeImport","getPostScribe","postscribe","getGistTags","nodes","gistNodes","node","nodeType","classList","contains","push","querySelectorAll","loadEmbeddedGists","gistTags","gistTag","gistWrapper","firstElementChild","outerHTML","beforeWrite","text","childElementCount","remove","watchForGistTagInsertion","targetNode","observer","MutationObserver","mutationsList","type","addedNodes","length","observe","attributes","childList","subtree","InstantClick","on","disconnect","window","addEventListener","embedGists","document","querySelector"],"mappings":"+wDAAA,IAAIA,E,SAEWC,I,wDAAf,YACE,GAAID,EAEF,OAAOA,EAGT,IAAiBE,SAAqB,oCAAtC,QAGA,OAFAF,EAAmBE,M,sBAKrB,SAASC,EAAYC,GACnB,IAD0B,EACpBC,EAAY,GADQ,IAGPD,GAHO,IAG1B,2BAA0B,CAAC,IAAhBE,EAAe,QACF,IAAlBA,EAAKC,WACHD,EAAKE,UAAUC,SAAS,yBAC1BJ,EAAUK,KAAKJ,GAGjBD,EAAUK,KAAV,MAAAL,EAAS,EAASC,EAAKK,iBAAiB,6BATlB,8BAa1B,OAAON,EAGT,SAASO,EAAkBV,EAAYW,GAAW,IAAD,MACzBA,GADyB,yBACpCC,EADoC,QAEvCC,EAAcD,EAAQE,kBAC5Bd,EAAWY,EAASC,EAAYE,UAAW,CACzCC,YADyC,SAC7BC,GACV,OAAOL,EAAQM,kBAAoB,EAAI,GAAKD,KAGhDJ,EAAYM,UAPd,2BAAiC,IADc,+BAYjD,SAASC,EAAyBC,EAAYrB,GAC5C,IAUMsB,EAAW,IAAIC,kBARJ,SAAUC,GAAgB,IAAD,MACLA,GADK,IACxC,2BAAkD,CAAC,IAAD,UAArCC,EAAqC,EAArCA,KAAMC,EAA+B,EAA/BA,WACJ,cAATD,GAAwBC,EAAWC,OAAS,GAC9CjB,EAAkBV,EAAYC,EAAYyB,KAHN,kCAS1CJ,EAASM,QAAQP,EAXF,CAAEQ,YAAY,EAAOC,WAAW,EAAMC,SAAS,IAa9DC,aAAaC,GAAG,UAAU,WACxBX,EAASY,gBAGXC,OAAOC,iBAAiB,gBAAgB,WACtCd,EAASY,gBAIN,SAAeG,EAAtB,kC,yBAAO,UAA0BhB,GAC/B,IAAMrB,QAAmBD,IAGzBW,EACEV,EACAsC,SAAS7B,iBAAiB,0BAG5BW,EAAyBC,EAAYrB,O,yFC1EvC,mBAEMqB,EAAaiB,SAASC,cAAc,iBAC1ClB,GAAcgB,YAAWhB,K","file":"js/commentsDisplay-7db25ae7a0f6a9e714e6.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('.comment-form');\ntargetNode && embedGists(targetNode);\n"],"sourceRoot":""}