{"version":3,"file":"newsEventsList.c577056f9761114ff37e.js","mappings":"2UAAqBA,EAAc,WACjC,WAAYC,I,4FAAI,SACdC,KAAKD,GAAKA,EACVC,KAAKC,MACP,C,UAkFC,O,EAlFA,G,EAAA,mBAED,WACED,KAAKE,cACP,GAAC,0BAED,WACE,IAAMC,EAAiBH,KAAKD,GAAGK,cAAc,oBAC3CC,EAAOL,KAELG,GACFA,EAAeG,iBAAiB,SAAS,SAACC,GACxCA,EAAMC,iBACNH,EAAKI,qBACP,GAEJ,GAAC,iCAED,WACE,IAAMC,EAAWV,KAAKW,YACpBN,EAAOL,KAETY,MAAMF,EAAU,CAAEG,OAAQ,MAAOC,YAAa,YAC3CC,MAAK,SAACC,GAAQ,OAAKA,EAASC,MAAM,IAClCF,MAAK,SAACE,GACLZ,EAAKa,cAAcD,EACrB,IACCF,MAAK,WACJV,EAAKc,qBACP,GACJ,GAAC,2BAED,SAAcF,GAAM,WAIlB,OAHIA,EAAKG,YACPpB,KAAKD,GAAGK,cAAc,oBAAoBiB,MAAMC,WAAa,UAExD,IAAIC,SAAQ,SAACC,EAASC,GAC3B,IAAMC,EAAS,EAAK3B,GAAGK,cAAc,yCACnCuB,EAAUV,EAAKW,SACfC,EAAYC,SAASC,cAAcC,yBAAyB,GAAD,OACtDL,EACAM,KACC,SAACC,EAAQC,GAAK,4FACgDD,EAAOE,IAAG,oMAGlDF,EAAOG,SAAQ,kBAAUH,EAAOI,SAAQ,wJAGVJ,EAAOK,KAAI,mFACTL,EAAOM,MAAK,kFACdN,EAAOO,MAAK,qDAIjEC,KAAK,MAEZhB,EAAOiB,YAAYd,GACnBL,GAAQ,EACV,GACF,GAAC,iCAED,WACE,IAAMoB,EAAMC,MAAMC,UAAUC,MAAMC,KAAKhD,KAAKD,GAAGkD,iBAAiB,iBAEhEC,YAAW,WACT,IAAK,IAAIC,KAAKP,EACZA,EAAIO,GAAGC,UAAUC,OAAO,cAE5B,GAAG,KACL,GAAC,uBAED,WACE,IAAMC,EAAetD,KAAKD,GAAGwD,aAAa,iBACxCC,EAASxD,KAAKyD,cAGhB,MAAO,GAAP,OAAUH,EAAY,YAAIE,EAAM,YAFxB,EAGV,GAAC,yBAED,WACE,OAAOxD,KAAKD,GAAGkD,iBAAiB,+BAA+BS,MACjE,M,8EAAC,EAtFgC,GAsFhC,W","sources":["webpack://jcb.com/./src/js/components/newsEventsList.js"],"sourcesContent":["export default class NewsEventsList {\r\n constructor(el) {\r\n this.el = el;\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.attachEvents();\r\n }\r\n\r\n attachEvents() {\r\n const loadMoreButton = this.el.querySelector('.jcb-btn-primary'),\r\n that = this;\r\n\r\n if (loadMoreButton) {\r\n loadMoreButton.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n that.handleLoadMoreClick();\r\n });\r\n }\r\n }\r\n\r\n handleLoadMoreClick() {\r\n const endpoint = this.apiEndpoint,\r\n that = this;\r\n\r\n fetch(endpoint, { method: 'GET', credentials: 'include' })\r\n .then((response) => response.json())\r\n .then((json) => {\r\n that.renderResults(json);\r\n })\r\n .then(() => {\r\n that.removeEnteringClass();\r\n });\r\n }\r\n\r\n renderResults(json) {\r\n if (json.EndOfList) {\r\n this.el.querySelector('.jcb-btn-primary').style.visibility = 'hidden';\r\n }\r\n return new Promise((resolve, reject) => {\r\n const target = this.el.querySelector('.jcb-news-events-list--list-container'),\r\n results = json.Articles,\r\n resultStr = document.createRange().createContextualFragment(\r\n `${results\r\n .map(\r\n (result, index) => `\r\n \r\n
\r\n
\r\n \"${result.ImageAlt}\"\r\n
\r\n
\r\n

${result.Date}

\r\n

${result.Title}

\r\n

${result.Intro}

\r\n
\r\n `,\r\n )\r\n .join('')}`,\r\n );\r\n target.appendChild(resultStr);\r\n resolve(true);\r\n });\r\n }\r\n\r\n removeEnteringClass() {\r\n const els = Array.prototype.slice.call(this.el.querySelectorAll('.is-entering'));\r\n\r\n setTimeout(() => {\r\n for (let e in els) {\r\n els[e].classList.remove('is-entering');\r\n }\r\n }, 1500);\r\n }\r\n\r\n get apiEndpoint() {\r\n const endpointBase = this.el.getAttribute('data-endpoint'),\r\n offset = this.articleOffset,\r\n get = 7;\r\n\r\n return `${endpointBase}/${offset}/${get}`;\r\n }\r\n\r\n get articleOffset() {\r\n return this.el.querySelectorAll('.jcb-news-events-list--item').length;\r\n }\r\n}\r\n"],"names":["NewsEventsList","el","this","init","attachEvents","loadMoreButton","querySelector","that","addEventListener","event","preventDefault","handleLoadMoreClick","endpoint","apiEndpoint","fetch","method","credentials","then","response","json","renderResults","removeEnteringClass","EndOfList","style","visibility","Promise","resolve","reject","target","results","Articles","resultStr","document","createRange","createContextualFragment","map","result","index","Url","ImageUrl","ImageAlt","Date","Title","Intro","join","appendChild","els","Array","prototype","slice","call","querySelectorAll","setTimeout","e","classList","remove","endpointBase","getAttribute","offset","articleOffset","length"],"sourceRoot":""}