{"version":3,"file":"articleRecommend-3e570999.js","sources":["../../../../../../src/scripts/modules/articleRecommend.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport { recommendArticlePost } from '../helpers';\n\nclass ArticleRecommend extends Component {\n recommendCount: number;\n shareCount: number;\n articleId: string;\n\n\n constructor(el: HTMLElement) {\n super(el);\n this.recommendCount = this.dom.shareCount ? parseInt((this.dom.recommendCount as HTMLElement).innerText, 10) : 0;\n this.shareCount = this.dom.shareCount ? parseInt((this.dom.shareCount as HTMLElement).innerText, 10) : 0;\n this.articleId = this.el.dataset.article || '';\n console.log('articleId', this.articleId);\n }\n\n setupDefaults() {\n this.dom = {\n recommendButton: this.el.querySelector('.article-recommend__button'),\n shareButton: this.el.querySelector('.article-recommend__share-button'),\n tooltip: this.el.querySelector('.article-recommend__social-media-tooltip'),\n socialLinks: this.el.querySelectorAll('.article-recommend__social-media-link'),\n shareCount: this.el.querySelector('.article-recommend__share-count'),\n recommendCount: this.el.querySelector('.article-recommend__recommend-count'),\n starIcon: this.el.querySelector('.article-recommend__star-icon'),\n shareIcon: this.el.querySelector('.article-recommend__share-icon'),\n };\n }\n\n addListeners() {\n (this.dom.recommendButton as HTMLElement).addEventListener('click', this.toggleRecommend.bind(this));\n (this.dom.shareButton as HTMLElement).addEventListener('click', this.toggleShare.bind(this));\n window.addEventListener('click', this.clickOutside.bind(this));\n\n (this.dom.socialLinks as NodeList).forEach(link => {\n link.addEventListener('click', () => {\n this.toggleShare.bind(this);\n this.shareCount += 1;\n (this.dom.shareCount as HTMLElement).innerText = this.shareCount.toString();\n\n if (this.el.dataset.shareEndpoint) {\n fetch(this.el.dataset.shareEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n id: this.articleId\n })\n }).then(response => response.json())\n .then(data => {\n console.log(data);\n }).catch(err => {\n console.error(err);\n });\n }\n });\n });\n }\n\n clickOutside(event: any) {\n if (!(this.dom.tooltip as HTMLElement).contains(event.target) && !(this.dom.shareButton as HTMLElement).contains(event.target)) {\n (this.dom.tooltip as HTMLElement).classList.remove('open');\n }\n }\n\n toggleRecommend() {\n\n if ((this.dom.recommendButton as HTMLElement).classList.contains('isRecommended')) {\n this.recommendCount -= 1;\n (this.dom.recommendCount as HTMLElement).innerText = this.recommendCount.toString();\n (this.dom.recommendButton as HTMLElement).classList.remove('isRecommended');\n } else {\n this.recommendCount += 1;\n (this.dom.recommendCount as HTMLElement).innerText = this.recommendCount.toString();\n (this.dom.recommendButton as HTMLElement).classList.add('isRecommended');\n }\n\n if (this.el.dataset.recommendEndpoint) {\n recommendArticlePost(this.el.dataset.recommendEndpoint, `id=${this.articleId}&value=${(this.dom.recommendButton as HTMLElement).classList.contains('isRecommended')}`);\n }\n }\n\n toggleShare() {\n console.log('toggleShare');\n (this.dom.tooltip as HTMLElement).classList.toggle('open');\n (this.dom.shareButton as HTMLElement).classList.toggle('isShared');\n }\n\n}\n\nexport default ArticleRecommend;\n"],"names":["ArticleRecommend","Component","el","__publicField","link","response","data","err","event","recommendArticlePost"],"mappings":"sPAGA,MAAMA,UAAyBC,CAAU,CAMvC,YAAYC,EAAiB,CAC3B,MAAMA,CAAE,EANVC,EAAA,uBACAA,EAAA,mBACAA,EAAA,kBAKO,KAAA,eAAiB,KAAK,IAAI,WAAa,SAAU,KAAK,IAAI,eAA+B,UAAW,EAAE,EAAI,EAC1G,KAAA,WAAa,KAAK,IAAI,WAAa,SAAU,KAAK,IAAI,WAA2B,UAAW,EAAE,EAAI,EACvG,KAAK,UAAY,KAAK,GAAG,QAAQ,SAAW,GACpC,QAAA,IAAI,YAAa,KAAK,SAAS,CACzC,CAEA,eAAgB,CACd,KAAK,IAAM,CACT,gBAAiB,KAAK,GAAG,cAA2B,4BAA4B,EAChF,YAAa,KAAK,GAAG,cAA2B,kCAAkC,EAClF,QAAS,KAAK,GAAG,cAA2B,0CAA0C,EACtF,YAAa,KAAK,GAAG,iBAAiB,uCAAuC,EAC7E,WAAY,KAAK,GAAG,cAA2B,iCAAiC,EAChF,eAAgB,KAAK,GAAG,cAA2B,qCAAqC,EACxF,SAAU,KAAK,GAAG,cAA2B,+BAA+B,EAC5E,UAAW,KAAK,GAAG,cAA2B,gCAAgC,CAAA,CAElF,CAEA,cAAe,CACZ,KAAK,IAAI,gBAAgC,iBAAiB,QAAS,KAAK,gBAAgB,KAAK,IAAI,CAAC,EAClG,KAAK,IAAI,YAA4B,iBAAiB,QAAS,KAAK,YAAY,KAAK,IAAI,CAAC,EAC3F,OAAO,iBAAiB,QAAS,KAAK,aAAa,KAAK,IAAI,CAAC,EAE5D,KAAK,IAAI,YAAyB,QAAgBC,GAAA,CAC5CA,EAAA,iBAAiB,QAAS,IAAM,CAC9B,KAAA,YAAY,KAAK,IAAI,EAC1B,KAAK,YAAc,EAClB,KAAK,IAAI,WAA2B,UAAY,KAAK,WAAW,WAE7D,KAAK,GAAG,QAAQ,eACZ,MAAA,KAAK,GAAG,QAAQ,cAAe,CACnC,OAAQ,OACR,QAAS,CACP,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CACnB,GAAI,KAAK,SAAA,CACV,CAAA,CACF,EAAE,KAAKC,GAAYA,EAAS,MAAM,EAChC,KAAaC,GAAA,CACZ,QAAQ,IAAIA,CAAI,CAAA,CACjB,EAAE,MAAaC,GAAA,CAChB,QAAQ,MAAMA,CAAG,CAAA,CAClB,CACH,CACD,CAAA,CACF,CACH,CAEA,aAAaC,EAAY,CACnB,CAAE,KAAK,IAAI,QAAwB,SAASA,EAAM,MAAM,GAAK,CAAE,KAAK,IAAI,YAA4B,SAASA,EAAM,MAAM,GAC1H,KAAK,IAAI,QAAwB,UAAU,OAAO,MAAM,CAE7D,CAEA,iBAAkB,CAEX,KAAK,IAAI,gBAAgC,UAAU,SAAS,eAAe,GAC9E,KAAK,gBAAkB,EACtB,KAAK,IAAI,eAA+B,UAAY,KAAK,eAAe,WACxE,KAAK,IAAI,gBAAgC,UAAU,OAAO,eAAe,IAE1E,KAAK,gBAAkB,EACtB,KAAK,IAAI,eAA+B,UAAY,KAAK,eAAe,WACxE,KAAK,IAAI,gBAAgC,UAAU,IAAI,eAAe,GAGrE,KAAK,GAAG,QAAQ,mBAClBC,EAAqB,KAAK,GAAG,QAAQ,kBAAmB,MAAM,KAAK,SAAS,UAAW,KAAK,IAAI,gBAAgC,UAAU,SAAS,eAAe,CAAC,EAAE,CAEzK,CAEA,aAAc,CACZ,QAAQ,IAAI,aAAa,EACxB,KAAK,IAAI,QAAwB,UAAU,OAAO,MAAM,EACxD,KAAK,IAAI,YAA4B,UAAU,OAAO,UAAU,CACnE,CAEF"}