{"version":3,"sources":["webpack://BirnPartners/./Src/Scripts/components/overview-controller-employee.js"],"names":["constructor","elm","args","locLabel","querySelector","indLabel","container","loadMoreButton","querySelectorAll","forEach","x","onclick","event","preventDefault","setFilter","innerHTML","dataset","locationId","industryId","pageNr","FetchAndLoad","parseInt","page","setUrlParams","dropdownHeadingButtons","window","addEventListener","dropdownButton","target","closest","classList","toggle","remove","urlParams","getUrlParams","fetchAndLoadFlag","currentLocationId","locationLabel","activeLabel","currentIndustryId","industryLabel","url","fetchApi","fetchMethod","culture","fetch","method","headers","then","response","json","html","Result","totalPages","currentPage","filterType","filterLabel","filterId","key","value","currentUrlParams","URL","location","origin","pathname","Object","keys","label","searchParams","set","history","pushState","href","url_string","get"],"mappings":"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","file":"493.a43c31097af11e0f2c94.js","sourcesContent":["export default class OverviewController {\n constructor(elm, args) {\n\n var locLabel = elm.querySelector('[data-location-label]');\n var indLabel = elm.querySelector('[data-industry-label]');\n let container = elm.querySelector('[data-container]');\n var loadMoreButton = elm.querySelector('[data-load-more]');\n\n const locationItemList = elm.querySelectorAll('[data-location-id]')\n locationItemList.forEach(x => x.onclick = (event) => {\n event.preventDefault();\n setFilter(\"location\", x.innerHTML, x.dataset.locationId);\n });\n\n const industryItemList = elm.querySelectorAll('[data-industry-id]')\n industryItemList.forEach(x => x.onclick = (event) => {\n event.preventDefault();\n setFilter(\"industry\", x.innerHTML, x.dataset.industryId);\n });\n\n loadMoreButton.onclick = (event) => {\n event.preventDefault();\n loadMore(parseInt(elm.dataset.page) + 1);\n }\n\n var dropdownHeadingButtons = elm.querySelectorAll('.dropdown');\n window.addEventListener('click', x => {\n var dropdownButton = x.target.closest('.dropdown')\n if (dropdownButton) {\n dropdownButton.classList.toggle('dropdown--active')\n } else {\n dropdownHeadingButtons.forEach(x => x.classList.remove('dropdown--active'))\n }\n })\n\n const urlParams = getUrlParams()\n const locationId = urlParams.locationId\n const industryId = urlParams.industryId\n\n let fetchAndLoadFlag = false\n if (locationId !== null) \n {\n elm.dataset.currentLocationId = locationId;\n\n fetchAndLoadFlag = true\n\n const locationLabel = elm.querySelector('[data-location-label]');\n const activeLabel = elm.querySelector('[data-location-id=\"' + locationId + '\"]');\n\n if (activeLabel) {\n locationLabel.innerHTML = activeLabel.innerHTML\n }\n } \n\n if (industryId !== null) \n {\n elm.dataset.currentIndustryId = industryId;\n \n fetchAndLoadFlag = true\n\n const industryLabel = elm.querySelector('[data-industry-label]');\n const activeLabel = elm.querySelector('[data-industry-id=\"' + industryId + '\"]');\n \n if (activeLabel) {\n industryLabel.innerHTML = activeLabel.innerHTML\n }\n \n }\n\n // if (fetchAndLoadFlag) {\n // FetchAndLoad(0)\n // }\n\n function FetchAndLoad(page) {\n elm.dataset.page = page;\n const url = `/umbraco/surface/${elm.dataset.fetchApi}/${elm.dataset.fetchMethod}?locationId=${elm.dataset.currentLocationId}&industryId=${elm.dataset.currentIndustryId}&Page=${page}&culture=${elm.dataset.culture}`;\n fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n .then(response => response.json())\n .then(json => {\n if (page == 1) {\n container.innerHTML = json.html.Result;\n } else {\n container.innerHTML += json.html.Result;\n }\n loadMoreButton.classList.toggle('d-none', parseInt(json.totalPages) <= parseInt(json.currentPage));\n });\n }\n\n function setFilter(filterType, filterLabel, filterId) {\n const pageNr = 1\n \n if (filterType === \"location\") {\n locLabel.innerHTML = filterLabel;\n elm.dataset.currentLocationId = filterId;\n setUrlParams(\"locationId\", filterId)\n }\n if (filterType === \"industry\") {\n indLabel.innerHTML = filterLabel;\n elm.dataset.currentIndustryId = filterId;\n setUrlParams(\"industryId\", filterId)\n }\n \n FetchAndLoad(pageNr)\n }\n\n function loadMore(pageNr) {\n FetchAndLoad(pageNr);\n setUrlParams(\"p\", pageNr);\n }\n\n function setUrlParams(key, value) {\n const currentUrlParams = getUrlParams()\n currentUrlParams[key] = value\n\n const url = new URL(window.location.origin + window.location.pathname)\n\n Object.keys(currentUrlParams).forEach(label => {\n url.searchParams.set(label, currentUrlParams[label]);\n });\n \n window.history.pushState({}, '', url.href)\n }\n\n function getUrlParams() {\n const url_string = window.location.href\n const url = new URL(url_string);\n\n const searchParams = {}\n\n const locationId = url.searchParams.get(\"locationId\");\n if (locationId !== null && locationId !== \"\") {\n searchParams[\"locationId\"] = locationId\n }\n \n const industryId = url.searchParams.get(\"industryId\");\n if (industryId !== null && industryId !== \"\") {\n searchParams[\"industryId\"] = industryId\n }\n \n return searchParams\n }\n }\n}\n"],"sourceRoot":""}