{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/blocks/personBioBlock/js/personBioBlock.js","webpack:///./truncate.js","webpack:///./wool/mediaQuery.js"],"names":["PersonBioBlock","element","_classCallCheck","this","$element","$","mediaQuery","truncation","key","value","breakpointMaxWidth","BREAKPOINTS","SM","limit","$summary","find","concat","summaryHtml","html","summaryText","text","originalHtml","handleTruncate","__webpack_require__","d","__webpack_exports__","truncate_html__WEBPACK_IMPORTED_MODULE_0__","self","skipClicks","arguments","length","undefined","trimmedHtml","truncate","ellipsis","on","e","currentTarget","hasClass","removeClass","addClass","MediaQuery","XS","MD","LG","XL","breakpoint","width","Math","max","document","documentElement","clientWidth","window","innerWidth","_","isFinite"],"mappings":"g5BAAA,IAMaA,EAAc,WAQ1B,SAPA,SAAAA,EAAYC,gGAASC,CAAAC,KAAAH,GACpBG,KAAKC,SAAWC,EAAEJ,GAClBE,KAAKG,WAAaA,IAElBH,KAAKI,mBAGNC,IAAA,aAAAC,MACA,WACIN,KAAKG,WAAWI,mBAAmBP,KAAKG,WAAWK,YAAYC,MACjET,KAAKU,MAAQ,IAEbV,KAAKW,SAAWX,KAAKC,SAASW,KAAI,IAAAC,OAlBzB,iBAkBiC,iBAC1Cb,KAAKc,YAAcd,KAAKW,SAASI,OACjCf,KAAKgB,YAAchB,KAAKW,SAASM,OACjCjB,KAAKkB,aAAelB,KAAKc,YAGzBK,YAAenB,sGAnBS,uDCN3B,SAAAE,GAAAkB,EAAAC,EAAAC,EAAA,sBAAAH,IAAA,IAAAI,EAAAH,EAAA,KAEaD,EAAiB,SAACK,GAA6B,IAAvBC,EAAUC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAC9C,GAAGF,EAAKR,YAAYW,OAASH,EAAKd,MAAO,CACxC,IAIImB,EAAcC,YAASN,EAAKV,YAAaU,EAAKd,OACjDqB,SAAQ,QAAAlB,OALG,sDAQZW,EAAKb,SAASI,KAAKc,GAEfJ,GACHD,EAAKvB,SAAS+B,GAAG,QAAO,aAAgB,SAACC,GACrC/B,EAAE+B,EAAEC,eAAeC,SAAS,YAC9BX,EAAKb,SAASI,KAAKS,EAAKN,aAAe,qDACvChB,EAAE+B,EAAEC,eAAeE,YAAY,WAAWnB,KAAK,eAG/CO,EAAKb,SAASI,KAAKc,GACnB3B,EAAE+B,EAAEC,eAAeG,SAAS,WAAWpB,KAAK,s1BCAtCd,EAAa,IAtBR,WASd,SARD,SAAAmC,iGAAcvC,CAAAC,KAAAsC,GACbtC,KAAKQ,aACJ+B,GAAI,EACJ9B,GAAI,IACJ+B,GAAI,IACJC,GAAI,IACJC,GAAI,YAELrC,IAAA,qBAAAC,MAED,SAAmBqC,GAClB,IAAIC,EAAQC,KAAKC,IAAIC,SAASC,gBAAgBC,YAAaC,OAAOC,YAAc,GAEhF,QAAGC,EAAEC,SAASV,IACNA,EAAaC,iGAfP","file":"block-26.430117f348aedc9992ce.js","sourcesContent":["const NS = 'PersonBioBlock';\nconst CLS = 'personBioBlock';\n\nimport { handleTruncate } from '../../../../global/js/truncate';\nimport { mediaQuery } from '../../../../global/js/wool/mediaQuery';\n\nexport class PersonBioBlock {\n\tconstructor(element) {\n\t\tthis.$element = $(element);\n\t\tthis.mediaQuery = mediaQuery;\n\n\t\tthis.truncation();\n\t}\n\n\t// Only truncate text for mobile devices\n\ttruncation() {\n\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\tthis.limit = 450; // reserved limit (characters)\n\n\t\t\tthis.$summary = this.$element.find(`.${CLS}-description`);\n\t\t\tthis.summaryHtml = this.$summary.html();\n\t\t\tthis.summaryText = this.$summary.text(); // for comparison without the extra characters from html tags\n\t\t\tthis.originalHtml = this.summaryHtml;\n\n\t\t\t// handle truncate (read more / read less)\n\t\t\thandleTruncate(this);\n\t\t}\n\t}\n}\n","import truncate from 'truncate-html';\n\nexport const handleTruncate = (self, skipClicks = false) => {\n\tif(self.summaryText.length > self.limit) {\n\t\tlet readMore = `Read more`;\n\t\tlet readLess = `Read less`;\n\n\t\t// trim the string\n\t\tlet trimmedHtml = truncate(self.summaryHtml, self.limit, {\n\t\t\tellipsis: ` ... ${readMore}`\n\t\t});\n\n\t\tself.$summary.html(trimmedHtml);\n\n\t\tif(!skipClicks) {\n\t\t\tself.$element.on('click', `.read-more`, (e) => {\n\t\t\t\tif($(e.currentTarget).hasClass('is-more')) {\n\t\t\t\t\tself.$summary.html(self.originalHtml + ' ' + readLess);\n\t\t\t\t\t$(e.currentTarget).removeClass('is-more').text('Read less');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tself.$summary.html(trimmedHtml);\n\t\t\t\t\t$(e.currentTarget).addClass('is-more').text('Read more');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n};\n","class MediaQuery {\n\tconstructor() {\n\t\tthis.BREAKPOINTS = {\n\t\t\tXS: 0,\n\t\t\tSM: 576,\n\t\t\tMD: 768,\n\t\t\tLG: 992,\n\t\t\tXL: 1200\n\t\t};\n\t}\n\n\tbreakpointMaxWidth(breakpoint) {\n\t\tlet width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n\t\tif(_.isFinite(breakpoint)) {\n\t\t\treturn breakpoint > width;\n\t\t}\n\t\tconsole.error(`MediaQuery::Error`, 'Please supply a valid breakpoint');\n\t\treturn false;\n\t}\n}\n\nexport let mediaQuery = new MediaQuery();\n"],"sourceRoot":""}