{"version":3,"file":"jwsdw-career.js","sources":["../../../../../../../temp/ngAnnotate/assets/jwsdw-career.js"],"sourcesContent":["'use strict';\r\n\r\n(function (window, $) {\r\n var $showMore = $('.jwsdw-loadMore-button'),\r\n $searchForm = $('#jwsdw-career-searchForm'),\r\n $searchInput = $('#jwsdw-career-search input'),\r\n $department = $('#jwsdw-career-department'),\r\n $entryLevel = $('#jwsdw-career-entryLevel'),\r\n $placeOfWork = $('#jwsdw-career-placeOfWork'),\r\n $searchButton = $('#jwsdw-career-search button'),\r\n $searchResults = $('#jwsdw-career-searchResults'),\r\n $progressBarContainer = $('.jwsdw-career-progressBar'),\r\n $jobsShown = $('.jwsdw-progressBar-shown'),\r\n $jobsTotal = $('.jwsdw-progressBar-results'),\r\n $jobCards = $('.jwsdw-career-jobCards'),\r\n $fillProgressBar = $('.jwsdw-progressBar-fill'),\r\n $jobListingTemplate = $('.jwsdw-career-jobTemplate'),\r\n $noResultsTemplate = $('.jwsdw-career-noResults-template'),\r\n state = {\r\n 'query': $searchInput.val(),\r\n 'activity': $department.val(),\r\n 'entryLevel': $entryLevel.val(),\r\n 'placeOfWork': $placeOfWork.val()\r\n };\r\n\r\n $searchForm.on('submit', search);\r\n $searchInput.on('keyup', window.jwsdwUtil.debounce(650, search));\r\n $searchButton.on('click', search);\r\n\r\n $department.on('change', search);\r\n $entryLevel.on('change', search);\r\n $placeOfWork.on('change', search);\r\n\r\n $(window).on('popstate', function () {\r\n if (window.history.state) {\r\n state = window.history.state;\r\n $searchInput.val(state.query);\r\n $department.val(state.activity);\r\n $entryLevel.val(state.entryLevel);\r\n $placeOfWork.val(state.placeOfWork);\r\n\r\n search(null, true);\r\n }\r\n });\r\n\r\n /**\r\n * @description Method to perform search request\r\n * @param {Object} e event object\r\n * @param {Boolean} popState true if triggered by popState\r\n * @return {void}\r\n */\r\n function search (e, popState) {\r\n var url = $searchForm.attr('action');\r\n\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n state.query = $searchInput.val();\r\n state.activity = $department.val();\r\n state.entryLevel = $entryLevel.val();\r\n state.placeOfWork = $placeOfWork.val();\r\n url = buildUrlParameters(state);\r\n if (!popState) {\r\n window.history.pushState(state, $(document).find('title').text(), url);\r\n }\r\n $.ajax({\r\n 'type': 'GET',\r\n 'format':'ajax',\r\n 'url': window.jwsdwSettings.baseUrl + '/Career-findJobs',\r\n 'data': state,\r\n 'beforeSend': function() {\r\n $searchButton.find('.jwsdw-spinner').removeClass('jws-hidden');\r\n $searchButton.find('svg').addClass('jws-hidden');\r\n },\r\n 'success': function(data) {\r\n var $noResults = $noResultsTemplate.clone(),\r\n $section = $('.jwsdw-career-jobCards');\r\n\r\n $section.find('.jwsdw-career-jobInfo, .jwsdw-career-noResults').remove();\r\n $('jwsdw-loadMore').removeClass('jws-hidden');\r\n\r\n if (data.length > 0) {\r\n data.forEach(function(jobListing, index) {\r\n var $jobListing = $jobListingTemplate.clone(),\r\n baseUrl = $('.jwsdw-career-jobInfo-link').data('base-url');\r\n\r\n $jobListing.find('.jwsdw-career-jobInfo-link').attr('href', baseUrl + jobListing.jobDetailsUrl);\r\n $jobListing.find('.jwsdw-career-jobInfo-title').text(jobListing.jobTitle);\r\n $jobListing.find('.jwsdw-career-jobInfo-department').text(jobListing.department);\r\n $jobListing.find('.jwsdw-career-jobInfo-entryLevel').text(jobListing.entryLevel);\r\n $jobListing.find('.jwsdw-career-jobInfo-placeOfWork').text(jobListing.placeOfWork);\r\n if (index < 10) {\r\n $jobListing.removeClass('jws-hidden jwsdw-career-jobTemplate');\r\n updateResultsProgressBar(data.length, index + 1);\r\n }\r\n $searchResults.append($jobListing);\r\n $progressBarContainer.removeClass('jws-hidden');\r\n $noResults.addClass('jws-hidden');\r\n });\r\n } else {\r\n $noResults.removeClass('jws-hidden');\r\n $progressBarContainer.addClass('jws-hidden');\r\n $searchResults.append($noResults);\r\n }\r\n\r\n if (data.length > 10) {\r\n $showMore.removeClass('jws-hidden');\r\n } else {\r\n $showMore.addClass('jws-hidden');\r\n }\r\n },\r\n 'complete': function() {\r\n $searchButton.find('.jwsdw-spinner').addClass('jws-hidden');\r\n $searchButton.find('svg').removeClass('jws-hidden');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description Method to build Url Parameters from obj\r\n * @param {Object} obj the object\r\n * @returns {String} url with url parameters\r\n */\r\n function buildUrlParameters(obj) {\r\n var url = '',\r\n params = [];\r\n\r\n params = Object.keys(obj)\r\n .filter(function(key) {\r\n return obj[key];\r\n })\r\n .sort(function(a, b) {\r\n return a > b ? 1 : -1;\r\n })\r\n .map(function(key) {\r\n return key + '=' + obj[key];\r\n });\r\n if (params.length > 0) {\r\n url = '?' + params.join('&');\r\n }\r\n return url;\r\n }\r\n\r\n // handler for loading more jobs\r\n $jobCards.on('click', '.jwsdw-loadMore-button', function () {\r\n var $button = $(this),\r\n pageSize = $button.data('pageSize'),\r\n page = $button.data('page') + 1,\r\n $progressBar = $button.parents('.jwsdw-loadMore').find('.jwsdw-progressBar'),\r\n jobsTotal = parseInt($button.parents('.jwsdw-loadMore').find('.jwsdw-progressBar-results').text()),\r\n jobsDisplayed = Math.min(page * pageSize, jobsTotal),\r\n $jobs = $button.parents('.jwsdw-career-jobCards').find('.jwsdw-career-jobInfo');\r\n\r\n $jobs.each(function (i) {\r\n if (i < page * pageSize) {\r\n $(this).removeClass('jws-hidden');\r\n }\r\n });\r\n\r\n $progressBar.find('.jwsdw-progressBar-fill').css('width', jobsDisplayed / jobsTotal * 100 + '%');\r\n $jobsShown.text(jobsDisplayed);\r\n $button.data('page', page);\r\n\r\n if (jobsDisplayed === jobsTotal) {\r\n $button.addClass('jws-hidden');\r\n }\r\n });\r\n\r\n /**\r\n * @description Method to update progress bar after using filters\r\n * @param {Number} totalJobs total amount of jobs\r\n * @param {Number} shownJobs amount of shown jobs\r\n * @returns {void}\r\n */\r\n function updateResultsProgressBar (totalJobs, shownJobs) {\r\n $jobsShown.text(shownJobs);\r\n $jobsTotal.text(totalJobs);\r\n $fillProgressBar.width(Math.round(shownJobs / totalJobs * 100) + '%');\r\n }\r\n\r\n}(window, jQuery));"],"names":["window","$","$showMore","$searchForm","$searchInput","$department","$entryLevel","$placeOfWork","$searchButton","$searchResults","$progressBarContainer","$jobsShown","$jobsTotal","$jobCards","$fillProgressBar","$jobListingTemplate","$noResultsTemplate","state","query","val","activity","entryLevel","placeOfWork","search","e","popState","attr","preventDefault","url","obj","params","Object","keys","filter","key","sort","a","b","map","length","join","history","pushState","document","find","text","ajax","type","format","jwsdwSettings","baseUrl","data","beforeSend","removeClass","addClass","success","$noResults","clone","remove","forEach","jobListing","index","$jobListing","jobDetailsUrl","jobTitle","department","totalJobs","shownJobs","width","Math","round","append","complete","on","jwsdwUtil","debounce","$button","this","pageSize","page","$progressBar","parents","jobsTotal","parseInt","jobsDisplayed","min","each","i","css","jQuery"],"mappings":"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"}