{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/widgets/podcastLandingListItemWidget/js/podcastLandingListItemWidget.js","webpack:///./truncate.js"],"names":["CLS","PodcastLandingListItemWidget","_createClass","element","_this","this","_classCallCheck","$element","$","on","concat","e","utils","checkBP","currentTarget","toggleClass","find","limit","$summary","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","hasClass","removeClass","addClass"],"mappings":"65BAAA,IACMA,EAAM,+BAKCC,4GAA4BC,CACxC,SAAAD,EAAYE,GAAS,IAAAC,EAAAC,kGAAAC,CAAAD,KAAAJ,GACpBI,KAAKF,QAAUA,EACfE,KAAKE,SAAWC,EAAEL,GAElBE,KAAKE,SAASE,GAAG,QAAO,IAAAC,OAAMV,EAAG,cAAc,SAACW,GAC5CC,IAAMC,QAAQ,QAChBL,EAAEG,EAAEG,eAAeC,YAAY,QAC/BX,EAAKG,SAASS,KAAI,IAAAN,OAAKV,EAAG,mBAAAU,OAAkBV,EAAG,gBAAee,YAAY,WAI5EV,KAAKY,MAAQ,IACbZ,KAAKa,SAAWb,KAAKE,SAASS,KAAI,IAAAN,OAAKV,EAAG,aAC1CK,KAAKc,YAAcd,KAAKa,SAASE,OACjCf,KAAKgB,YAAchB,KAAKa,SAASI,OACjCjB,KAAKkB,aAAelB,KAAKc,YAGzBK,YAAenB,4DCzBjB,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,EAAKR,YAAYW,OAASH,EAAKZ,MAAO,CACxC,IAIIiB,EAAcC,YAASN,EAAKV,YAAaU,EAAKZ,OACjDmB,SAAQ,QAAA1B,OALG,sDAQZmB,EAAKX,SAASE,KAAKc,GAEfJ,GACHD,EAAKtB,SAASE,GAAG,QAAO,aAAgB,SAACE,GACrCH,EAAEG,EAAEG,eAAeuB,SAAS,YAC9BR,EAAKX,SAASE,KAAKS,EAAKN,aAAe,qDACvCf,EAAEG,EAAEG,eAAewB,YAAY,WAAWhB,KAAK,eAG/CO,EAAKX,SAASE,KAAKc,GACnB1B,EAAEG,EAAEG,eAAeyB,SAAS,WAAWjB,KAAK","file":"widget-12.430117f348aedc9992ce.js","sourcesContent":["const NS = 'PodcastLandingListItemWidget';\nconst CLS = 'podcastLandingListItemWidget';\n\nimport { utils } from '../../../../global/js/utils';\nimport { handleTruncate } from '../../../../global/js/truncate';\n\nexport class PodcastLandingListItemWidget {\n\tconstructor(element) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\n\t\tthis.$element.on('click', `.${CLS}-col--left`, (e) => {\n\t\t\tif(utils.checkBP('md')) {\n\t\t\t\t$(e.currentTarget).toggleClass('show');\n\t\t\t\tthis.$element.find(`.${CLS}-col--middle, .${CLS}-col--right`).toggleClass('show');\n\t\t\t}\n\t\t});\n\n\t\tthis.limit = 250; // 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\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":""}