{"version":3,"file":"investors-newsroom.js","sources":["../../../../src/assets/scripts/investors-newsroom.entry.js"],"sourcesContent":["window.arjoInvestorsNewsroomModule =\n window.arjoInvestorsNewsroomModule ||\n (() => {\n const state = {\n isInitialized: false,\n };\n\n const fetchData = (filterByCategories, year, page, url) => {\n return axios.request({\n method: 'get',\n url: url,\n params: {\n filter: filterByCategories,\n year: year,\n page: page,\n },\n paramsSerializer: (params) => {\n let options = '';\n for (const key in params) {\n if (typeof params[key] !== 'object' && params[key]) {\n options += `${key}=${params[key]}&`;\n } else if (typeof params[key] === 'object' && params[key] && params[key].length) {\n params[key].forEach((el, index) => {\n options += `${key}[${index}]=${el}&`;\n });\n }\n }\n return options ? options.slice(0, -1) : options;\n },\n headers: {\n Accept: '*/*',\n },\n });\n };\n\n const defaultCatchHandler = () => {\n alert('Data fetching failed');\n }; //TODO catch handler\n\n const classNamePrefix = 'arjo-o-investors-newsroom';\n\n const setUp = () => {\n const elements = [...document.querySelectorAll(`.${classNamePrefix}`)];\n elements.forEach((el) => {\n const checkboxGroupId = el.dataset.checkboxGroupId;\n const articleListId = el.dataset.newsArticleListId;\n const year = el.dataset.year;\n const url = el.dataset.fetchUrl;\n const hoverDelay = el.dataset.hoverDelay;\n if (!checkboxGroupId || !articleListId || !year || !url) return;\n let hoverTimeoutId = null;\n\n const innerState = {\n nextPageToFetch: 1,\n hasMoreResults: false,\n isFiltering: false,\n isLoadingMore: false,\n clickable: true,\n };\n\n const checkboxGroup = window.arjoCheckboxGroupModule.getElement(checkboxGroupId);\n const articleList = window.arjoInvestorsNewsArticleListModule.getElement(articleListId);\n\n const displayLoadMoreButton = () => {\n if (innerState.hasMoreResults) {\n el.classList.add('can-load-more');\n } else {\n el.classList.remove('can-load-more');\n }\n };\n\n const displayFilterSpinner = () => {\n if (innerState.isFiltering) {\n el.classList.add('is-filtering');\n } else {\n el.classList.remove('is-filtering');\n }\n };\n\n const displayLoadmoreSpinner = () => {\n if (innerState.isLoadingMore) {\n el.classList.add('is-loading-more');\n } else {\n el.classList.remove('is-loading-more');\n }\n };\n\n const checkboxGroupChangeHandler = (e) => {\n const values = e.detail.values;\n\n innerState.isFiltering = true;\n displayFilterSpinner();\n\n fetchData(values, year, 1, url)\n .then((res) => {\n const data = res.data;\n articleList.setState({data: [...data.articles]});\n innerState.nextPageToFetch = 2;\n innerState.hasMoreResults = data.hasMoreResults;\n displayLoadMoreButton();\n })\n .catch(() => {\n defaultCatchHandler();\n })\n .finally(() => {\n innerState.isFiltering = false;\n displayFilterSpinner();\n });\n };\n\n const initialFetch = () => {\n innerState.isFiltering = true;\n displayFilterSpinner();\n fetchData(checkboxGroup.currentValues, year, innerState.nextPageToFetch, url)\n .then((res) => {\n const data = res.data;\n articleList.setState({data: [...data.articles]});\n innerState.nextPageToFetch = 2;\n innerState.hasMoreResults = data.hasMoreResults;\n displayLoadMoreButton();\n })\n .catch(() => {\n defaultCatchHandler();\n })\n .finally(() => {\n innerState.isFiltering = false;\n displayFilterSpinner();\n });\n };\n\n const loadMoreHandler = () => {\n if (!innerState.clickable) return;\n\n innerState.isLoadingMore = true;\n innerState.clickable = false;\n window.clearTimeout(hoverTimeoutId);\n\n displayLoadmoreSpinner();\n fetchData(checkboxGroup.currentValues, year, innerState.nextPageToFetch, url)\n .then((res) => {\n const data = res.data;\n articleList.setState({data: articleList.data.concat([...data.articles])});\n innerState.nextPageToFetch = data.page + 1;\n innerState.hasMoreResults = data.hasMoreResults;\n displayLoadMoreButton();\n })\n .catch(() => {\n defaultCatchHandler();\n })\n .finally(() => {\n innerState.isLoadingMore = false;\n innerState.clickable = true;\n displayLoadmoreSpinner();\n });\n };\n\n const loadMoreOnHover = (button) => {\n\n if (!hoverDelay || !innerState.clickable) return;\n\n button?.addEventListener('mouseenter', () => {\n innerState.isLoadingMore = true;\n displayLoadmoreSpinner();\n\n hoverTimeoutId = setTimeout(() => {\n loadMoreHandler();\n }, +hoverDelay);\n });\n\n button?.addEventListener('mouseleave', () => {\n innerState.isLoadingMore = false;\n displayLoadmoreSpinner();\n window.clearTimeout(hoverTimeoutId);\n });\n };\n\n const loadMoreBtnContainer = el.querySelector(`.${classNamePrefix}__loadmore-button-container`);\n loadMoreBtnContainer.addEventListener('click', loadMoreHandler);\n loadMoreOnHover(loadMoreBtnContainer);\n\n window.addEventListener(`checkboxGroupChange:${checkboxGroupId}`, checkboxGroupChangeHandler);\n initialFetch();\n });\n };\n\n const init = () => {\n if (state.isInitialized) return;\n setUp();\n state.isInitialized = true;\n };\n return {init};\n })();\n\nwindow.addEventListener('load', window.arjoInvestorsNewsroomModule.init);\n"],"names":["state","fetchData","filterByCategories","year","page","url","params","options","key","el","index","defaultCatchHandler","classNamePrefix","setUp","checkboxGroupId","articleListId","hoverDelay","hoverTimeoutId","innerState","checkboxGroup","articleList","displayLoadMoreButton","displayFilterSpinner","displayLoadmoreSpinner","checkboxGroupChangeHandler","e","values","res","data","initialFetch","loadMoreHandler","loadMoreOnHover","button","loadMoreBtnContainer"],"mappings":"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"}