{"version":3,"file":"36.b30bc78c4b851aff9cbf.js","mappings":"wHA2DA,UA3DA,MACEA,WAAAA,GACEC,KAAKC,WAAaC,MAAMC,KAAKC,SAASC,iBAAiB,kBACvDL,KAAKM,iBAAmB,CACtB,IAAU,SACV,IAAU,QACV,IAAU,SACV,IAAU,QACV,IAAU,QACV,IAAU,SACV,IAAU,SACV,IAAU,SAGRN,KAAKC,WAAWM,OAAS,GAC3BP,KAAKC,WAAWO,QAAQR,KAAKS,SAASC,KAAKV,MAE/C,CAEAS,QAAAA,CAASE,GACP,MAAMC,EAAoBD,EAAUE,WAIpC,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAkBL,OAAQO,GAAK,EAAG,CACpD,MAAMC,EAAKH,EAAkBE,GAE7B,GAAmB,eAAfC,EAAGC,QACL,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAGF,WAAWN,OAAQU,GAAK,EAC7CjB,KAAKkB,eAAeH,EAAGF,WAAWI,SAGpCjB,KAAKkB,eAAeH,EAExB,CACF,CAEAG,cAAAA,CAAeH,GACb,MAAMI,EAAOJ,EAAGK,WAAaL,EAAGM,YAChC,IAAIC,EAAY,aAEFC,OAAOC,KAAKxB,KAAKM,kBACzBE,SAAQiB,IACe,IAAvBN,EAAKO,QAAQD,KAEE,OAAfV,EAAGC,SACY,OAAfD,EAAGC,SACY,OAAfD,EAAGC,SACY,OAAfD,EAAGC,SACY,OAAfD,EAAGC,UAEHM,GAAa,WAEfP,EAAGY,UAAUC,IAAIN,EAAYtB,KAAKM,iBAAiBmB,IACrD,GAEJ,E","sources":["webpack://pratt-parent/./static/js/components/hang-punctuation.js"],"sourcesContent":["class HangPunctuation {\n constructor() {\n this.containers = Array.from(document.querySelectorAll('.js-hang-punc'));\n this.punctuationMarks = {\n '\\u201c': 'medium', // “ - ldquo - left smart double quote\n '\\u2018': 'small', // ‘ - lsquo - left smart single quote\n '\\u0022': 'medium', // \" - ldquo - left dumb double quote\n '\\u0027': 'small', // ' - lsquo - left dumb single quote\n '\\u00AB': 'large', // « - laquo - left double angle quote\n '\\u2039': 'medium', // ‹ - lsaquo - left single angle quote\n '\\u201E': 'medium', // „ - bdquo - left smart double low quote\n '\\u201A': 'small', // ‚ - sbquo - left smart single low quote\n };\n\n if (this.containers.length > 0) {\n this.containers.forEach(this.hangPunc.bind(this));\n }\n }\n\n hangPunc(container) {\n const containerChildren = container.childNodes;\n\n // Loop over all direct descendants of the $container\n // If it's a blockquote, loop over its direct descendants\n for (let i = 0; i < containerChildren.length; i += 1) {\n const el = containerChildren[i];\n\n if (el.tagName === 'blockquote') {\n for (let k = 0; k < el.childNodes.length; k += 1) {\n this.hangIfEligible(el.childNodes[k]);\n }\n } else {\n this.hangIfEligible(el);\n }\n }\n }\n\n hangIfEligible(el) {\n const text = el.innerText || el.textContent;\n let htmlClass = 'hang-punc-';\n\n const marks = Object.keys(this.punctuationMarks);\n marks.forEach(mark => {\n if (text.indexOf(mark) === 0) {\n if (\n el.tagName === 'H1' ||\n el.tagName === 'H2' ||\n el.tagName === 'H3' ||\n el.tagName === 'H4' ||\n el.tagName === 'H5'\n ) {\n htmlClass += 'header-';\n }\n el.classList.add(htmlClass + this.punctuationMarks[mark]);\n }\n });\n }\n}\n\nexport default HangPunctuation;\n"],"names":["constructor","this","containers","Array","from","document","querySelectorAll","punctuationMarks","length","forEach","hangPunc","bind","container","containerChildren","childNodes","i","el","tagName","k","hangIfEligible","text","innerText","textContent","htmlClass","Object","keys","mark","indexOf","classList","add"],"sourceRoot":""}