{"version":3,"file":"hang-punctuation.js","mappings":"s1BAAMA,EAAe,WAmBlB,O,EAlBD,SAAAA,EAAYC,GAAK,IAAAC,EAAA,M,4FAAAC,CAAA,KAAAH,GACfI,KAAKC,WAAaC,MAAMC,KAAKN,GAC7BG,KAAKI,iBAAmB,CACtB,IAAU,SACV,IAAU,QACV,IAAU,SACV,IAAU,QACV,IAAU,QACV,IAAU,SACV,IAAU,SACV,IAAU,SAGRJ,KAAKC,WAAWI,OAAS,GAC3BL,KAAKC,WAAWK,SAAQ,SAAAC,GACtBA,EAAGC,iBAAiB,uBAAuBF,QAAQR,EAAKW,eAAeC,KAAKZ,GAC9E,GAEJ,G,EAAC,EAAAa,IAAA,iBAAAC,MAED,SAAeL,GAAI,IAAAM,EAAA,KACXC,EAAOP,EAAGQ,WAAaR,EAAGS,YAC5BC,EAAY,aAEFC,OAAOC,KAAKnB,KAAKI,kBACzBE,SAAQ,SAAAc,GACe,IAAvBN,EAAKO,QAAQD,KAEE,OAAfb,EAAGe,SACY,OAAff,EAAGe,SACY,OAAff,EAAGe,SACY,OAAff,EAAGe,SACY,OAAff,EAAGe,UAEHL,GAAa,WAEfV,EAAGgB,UAAUC,IAAIP,EAAYJ,EAAKT,iBAAiBgB,IAEvD,GACF,M,6EAAC,CAxCkB,GA2CrB,W","sources":["webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/hang-punctuation.js"],"sourcesContent":["class HangPunctuation {\n constructor(els) {\n this.containers = Array.from(els);\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(el => {\n el.querySelectorAll('p,h1,h2,h3,h4,h5,h6').forEach(this.hangIfEligible.bind(this));\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":["HangPunctuation","els","_this","_classCallCheck","this","containers","Array","from","punctuationMarks","length","forEach","el","querySelectorAll","hangIfEligible","bind","key","value","_this2","text","innerText","textContent","htmlClass","Object","keys","mark","indexOf","tagName","classList","add"],"sourceRoot":""}