{"version":3,"sources":["webpack:////home/vsts/work/1/s/src/views/blocks/newsTileBlock/js/newsTileLoading.js","webpack:////home/vsts/work/1/s/src/views/blocks/newsTileBlock/js/newsTileResults.js","webpack:////home/vsts/work/1/s/src/views/blocks/newsTileBlock/js/newsTileBlock.js"],"names":["NewsTileLoading","$el","this","$loading","querySelector","BLK","classList","remove","add","getTiles","results","tileType","html","tilesList","tiles","i","length","displayClass","pageUrl","color","imgUrl","date","title","subText","viewAll","NewsTileResults","$results","innerHTML","data","noData","message","NewsTileBlock","loading","$filterWrap","$selectFilters","querySelectorAll","api","getAttribute","params","$cardList","$btn","initButton","initElems","initSelect","addEventListener","e","updateParams","target","name","value","updateResults","isUpdate","push","encodeURIComponent","show","getParamsString","callApi","preventDefault","setTimeout","parentElement","fetch","headers","credentials","then","response","json","update","hide","catch","err"],"mappings":"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","file":"block-37.4dfb74c0df403e09dc00.js","sourcesContent":["// CONSTANTS are all caps.\r\nconst NS = 'NewsTileBlock';\r\nconst CLS = 'newsTileBlock';\r\nconst BLK = '.' + CLS + '-';\r\n\r\n// Import stuff here if you need to or even better to import them dynamically\r\n// for ex. of dynamic import check out ./loadBlk.js using Webpack dynamic imports as chunks.\r\n// import $ from 'jquery'\r\n\r\nexport class NewsTileLoading {\r\n\tconstructor($el) {\r\n\t\t// $el is the blk node return by the loadNewsTileBlock function\r\n\t\tthis.$el = $el;\r\n\t\tthis.$loading = this.$el.querySelector(`${BLK}loading`);\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (! this.$loading) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.$loading.classList.remove('d-none');\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (! this.$loading) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.$loading.classList.add('d-none');\r\n\t}\r\n}\r\n","// CONSTANTS are all caps.\r\nconst NS = 'NewsTileBlock';\r\nconst CLS = 'newsTileBlock';\r\nconst BLK = '.' + CLS + '-';\r\n\r\n// Import stuff here if you need to or even better to import them dynamically\r\n// for ex. of dynamic import check out ./loadBlk.js using Webpack dynamic imports as chunks.\r\n// import $ from 'jquery'\r\n\r\nfunction noData(data) {\r\n\tlet msg = (data && data.message)\r\n\t\t\t\t\t? data.message\r\n\t\t\t\t\t: 'No Results Available';\r\n\treturn `\r\n\t
${msg}
\r\n\t`;\r\n}\r\n\r\nfunction viewAll() {\r\n\treturn `\r\n\t\t\t
\r\n\t\t\t\tREAD MORE\r\n\t\t\t
\r\n\t`;\r\n}\r\n\r\nfunction tilesList(results, tileType) {\r\n\tlet tiles = '';\r\n\r\n\tfor (let i = 0; i < results.length; i++) {\r\n\t\tif (tileType == 0) {\r\n\t\t\ttiles = tiles + `\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
${results[i].date}
\r\n\t\t\t\t\t\t\t\t\t

${results[i].title}

\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t`;\r\n\t\t} else if (tileType == 1) {\r\n\t\t\ttiles = tiles + `\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
${results[i].date}
\r\n\t\t\t\t\t\t\t

${results[i].title}

\r\n\r\n\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t${results[i].subText}\r\n\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t`;\r\n\t\t} else{\r\n\t\t\ttiles = tiles + `\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t${results[i].title}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t${results[i].date}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t${results[i].subText}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
`;\r\n\t\t}\r\n\t}\r\n\r\n\tif(tileType == 2) {\r\nreturn tiles;\r\n}\r\n\r\n\treturn `
\r\n\t\t\t\t${tiles}\r\n\t\t\t
`;\r\n}\r\n\r\nfunction getTiles(results, tileType) {\r\n\tlet html = tilesList(results, tileType);\r\n\r\n\tif (results.length > 3) {\r\n\t\thtml = html + viewAll();\r\n\t}\r\n\r\n\treturn html;\r\n}\r\n\r\nexport class NewsTileResults {\r\n\tconstructor($el) {\r\n\t\t// $el is the blk node return by the loadNewsTileBlock function\r\n\t\tthis.$el = $el;\r\n\t\tthis.$results = this.$el.querySelector(`${BLK}results`);\r\n\t}\r\n\r\n\tupdate(results, tileType) {\r\n\t\tif (! this.$results) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.$results.innerHTML = (results && results.data && results.data.length && results.data.length > 0)\r\n\t\t\t\t\t\t\t\t\t\t? getTiles(results.data, tileType)\r\n\t\t\t\t\t\t\t\t\t\t: noData(results.data);\r\n\t}\r\n}\r\n","// CONSTANTS are all caps.\nconst NS = 'NewsTileBlock';\nconst CLS = 'newsTileBlock';\nconst BLK = '.' + CLS + '-';\n\n// Import stuff here if you need to or even better to import them dynamically\n// for ex. of dynamic import check out ./loadBlk.js using Webpack dynamic imports as chunks.\nimport {NewsTileLoading} from './newsTileLoading.js';\nimport {NewsTileResults} from './newsTileResults.js';\n\n\nexport class NewsTileBlock {\n\tconstructor($el) {\n\t\t// $el is the blk node return by the loadNewsTileBlock function\n\t\tthis.$el = $el;\n\n\t\tthis.loading = new NewsTileLoading($el);\n\t\tthis.results = new NewsTileResults($el);\n\n\t\tthis.$filterWrap = this.$el.querySelector(`${BLK}filterWrap`);\n\t\tthis.$selectFilters = this.$el.querySelectorAll(`${BLK}filter`);\n\n\t\tthis.api = (this.$filterWrap)\n\t\t\t\t\t\t? this.$filterWrap.getAttribute('data-filter-api')\n\t\t\t\t\t\t: '';\n\t\tthis.tileType = (this.$filterWrap)\n\t\t\t\t\t\t? this.$filterWrap.getAttribute('tile-type')\n\t\t\t\t\t\t: '0';\n\t\tthis.params = [];\n\t}\n\n\tinitElems() {\n\t\tthis.$cardList = this.$el.querySelectorAll('.newsTile');\n\t\tthis.$btn = this.$el.querySelector('.btn-viewAll');\n\n\t\tthis.initButton();\n\t}\n\n\tinit() {\n\t\tthis.initElems();\n\t\tthis.initSelect();\n\t}\n\n\tinitSelect() {\n\t\tfor (let i = this.$selectFilters.length - 1; i >= 0; i--) {\n\t\t\tthis.$selectFilters[i].addEventListener('change', (e) => {\n\t\t\t\tthis.updateParams(e.target.name, e.target.value);\n\t\t\t\tthis.updateResults();\n\t\t\t});\n\t\t\tthis.updateParams(this.$selectFilters[i].name, this.$selectFilters[i].value);\n\t\t}\n\t}\n\n\tupdateParams(name, value) {\n\t\tlet isUpdate = false;\n\n\t\tfor (let i = this.params.length - 1; i >= 0; i--) {\n\t\t\tif (this.params[i].name === name) {\n\t\t\t\tthis.params[i].value = value;\n\t\t\t\tisUpdate = true;\n\t\t\t}\n\t\t}\n\n\t\tif (! isUpdate) {\n\t\t\tthis.params.push({\n\t\t\t\tname: name,\n\t\t\t\tvalue: value,\n\t\t\t});\n\t\t}\n\t}\n\n\tgetParamsString() {\n\t\tlet params = '';\n\n\t\tfor (let i = this.params.length - 1; i >= 0; i--) {\n\t\t\tparams += this.params[i].name + '=' + encodeURIComponent(this.params[i].value) + '&';\n\t\t}\n\n\t\treturn params;\n\t}\n\n\tinitButton() {\n\t\tif (! this.$btn) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$btn.addEventListener('click', (e) => {\n\t\t\tthis.viewAll(e);\n\t\t});\n\t}\n\n\tupdateResults() {\n\t\tthis.loading.show();\n\t\tlet params = this.getParamsString();\n\t\tthis.callApi(params);\n\t}\n\n\tviewAll(e) {\n\t\te.preventDefault();\n\n\t\tfor (let i = this.$cardList.length - 1; i >= 0; i--) {\n\t\t\tthis.$cardList[i].classList.add('d-block');\n\t\t\tthis.$cardList[i].classList.remove('d-none');\n\t\t\tthis.$cardList[i].classList.remove('d-lg-none');\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$cardList[i].classList.add('show');\n\t\t\t\tthis.$cardList[i].parentElement.classList.remove('d-none');\n\t\t\t\tthis.$cardList[i].parentElement.classList.remove('d-lg-none');\n\t\t\t}, 100);\n\t\t}\n\n\t\tthis.$btn.classList.add('d-none');\n\t}\n\n\tcallApi(params) {\n\t\tfetch(this.api + '?' + params, {\n\t\t\t\theaders: {\n\t\t\t\t\t'Cache-Control': 'no-cache',\n\t\t\t\t\t'Pragma': 'no-cache',\n\t\t\t\t\t'Expires': 'Sat, 01 Jan 2000 00:00:00 GMT',\n\t\t\t\t},\n\t\t\t\tcredentials: 'same-origin',\n\t\t\t})\n\t\t\t.then((response) => response.json())\n\t\t\t.then((json) => {\n\t\t\t\tconsole.log(json);\n\n\t\t\t\tthis.results.update(json, this.tileType);\n\t\t\t\tthis.initElems();\n\t\t\t\tthis.loading.hide();\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t});\n\t}\n}\n"],"sourceRoot":""}