{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/blocks/mmfsTileBlock/js/mmfsTileBlock.js","webpack:///./truncate.js"],"names":["MmfsTileBlock","_createClass","element","_this","this","_classCallCheck","$element","$","limit","$summary","find","concat","summaryHtml","html","summaryText","text","originalHtml","moduleId","data","$downloadBtn","on","window","open","handleTruncate","__webpack_require__","d","__webpack_exports__","truncate_html__WEBPACK_IMPORTED_MODULE_0__","self","skipClicks","arguments","length","undefined","trimmedHtml","truncate","ellipsis","e","currentTarget","hasClass","removeClass","addClass"],"mappings":"s4BAAA,IAKaA,4GAAaC,CACzB,SAAAD,EAAYE,GAAS,IAAAC,EAAAC,kGAAAC,CAAAD,KAAAJ,GACpBI,KAAKF,QAAUA,EACfE,KAAKE,SAAWC,EAAEL,GAClBE,KAAKI,MAAQ,IACbJ,KAAKK,SAAWL,KAAKE,SAASI,KAAI,IAAAC,OATxB,gBASgC,aAC1CP,KAAKQ,YAAcR,KAAKK,SAASI,OACjCT,KAAKU,YAAcV,KAAKK,SAASM,OACjCX,KAAKY,aAAeZ,KAAKQ,YACzBR,KAAKa,SAAWb,KAAKE,SAASY,KAAI,YAClCd,KAAKe,aAAef,KAAKE,SAASI,KAAI,iBACtCN,KAAKe,aAAaC,GAAG,QAAS,WAC7BC,OAAOC,KAAK,wCAAwCnB,EAAKc,YAG1DM,YAAenB,4DCpBjB,SAAAG,GAAAiB,EAAAC,EAAAC,EAAA,sBAAAH,IAAA,IAAAI,EAAAH,EAAA,KAEaD,EAAiB,SAACK,GAA6B,IAAvBC,EAAUC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAC9C,GAAGF,EAAKd,YAAYiB,OAASH,EAAKpB,MAAO,CACxC,IAIIyB,EAAcC,YAASN,EAAKhB,YAAagB,EAAKpB,OACjD2B,SAAQ,QAAAxB,OALG,sDAQZiB,EAAKnB,SAASI,KAAKoB,GAEfJ,GACHD,EAAKtB,SAASc,GAAG,QAAO,aAAgB,SAACgB,GACrC7B,EAAE6B,EAAEC,eAAeC,SAAS,YAC9BV,EAAKnB,SAASI,KAAKe,EAAKZ,aAAe,qDACvCT,EAAE6B,EAAEC,eAAeE,YAAY,WAAWxB,KAAK,eAG/Ca,EAAKnB,SAASI,KAAKoB,GACnB1B,EAAE6B,EAAEC,eAAeG,SAAS,WAAWzB,KAAK","file":"block-24.430117f348aedc9992ce.js","sourcesContent":["const NS = 'mmfsTileBlock';\nconst CLS = 'mmfsTileBlock';\n\nimport { handleTruncate } from '../../../../global/js/truncate';\n\nexport class MmfsTileBlock {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.limit = 150; // reserved limit (characters)\n\t\tthis.$summary = this.$element.find(`.${CLS}-summary`);\n\t\tthis.summaryHtml = this.$summary.html();\n\t\tthis.summaryText = this.$summary.text(); // for comparison without the extra characters from html tags\n\t\tthis.originalHtml = this.summaryHtml;\n\t\tthis.moduleId = this.$element.data(`moduleId`);\n\t\tthis.$downloadBtn = this.$element.find(`.btn-download`);\n\t\tthis.$downloadBtn.on('click', () => {\n\t\t\twindow.open(\"/mmfs-download-modules-page?moduleId=\"+this.moduleId);\n\t\t});\n\t\t// handle truncate (read more / read less)\n\t\thandleTruncate(this);\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"],"sourceRoot":""}