{"version":3,"sources":["careerImpact.js"],"names":["BDM","careerImpact","zipcode","settings","defaultZip","dataurl","shownumber","$el","container","$","finder","locationEdit","locationField","notfound","location","locationLink","jobstotal","organizations","table","loading","results","defaultResults","resultsLoading","defaultLoaded","loadDefault","loadData","removeClass","hasClass","addClass","find","val","ajax","type","url","data","pathwayid","attr","dataType","success","career","length","row","displayResults","zipcodeLocal","window","localStorage","getItem","countryLocal","openings","text","html","forEach","result","index","append","name","related","icon","parseFloat","growth","slice","salary","each","element","value","prepare","showResults","start","init","Odometer","el","duration","animation","on","event","preventDefault","test","keydown","keyCode","change","setTimeout"],"mappings":"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","file":"careerImpact.min.js","sourcesContent":["/*globals $*/\r\n(function(BDM, careerImpact) {\r\n 'use strict';\r\n\r\n var settings = {\r\n defaultZip: 90802,\r\n dataurl: \"career_impact.json\",\r\n shownumber: 100 /// Number of results to reveal initially and after load more\r\n },\r\n\r\n $el = { //stored elements\r\n container: $('.career-impact'),\r\n finder: $('.career-impact .location__field'),\r\n locationEdit: $('.career-impact .location__edit-window'),\r\n locationField: $('#impactzipcode'),\r\n notfound: $('.career-impact__campus--notfound'),\r\n location: $('.career-impact__location--name'),\r\n locationLink: $('.career-impact__locations-link'),\r\n jobstotal: $('.career-impact__jobs-total'),\r\n organizations: $('.career-impact__organizations'),\r\n table: $('.career-impact__table table'),\r\n loading: $('.icon__loading'),\r\n },\r\n odometer,\r\n zipcode,\r\n results = [],\r\n defaultResults = [],\r\n resultsLoading = false,\r\n hasLoaded = false,\r\n defaultLoaded = false,\r\n loadDefault = false;\r\n /**\r\n * Helper Methods\r\n **/\r\n\r\n function showResults() {\r\n var row,\r\n displayResults = results;\r\n \r\n let zipcodeLocal = window.localStorage.getItem('z');\r\n let countryLocal = window.localStorage.getItem('country');\r\n if (displayResults && !displayResults.openings) {\r\n displayResults = defaultResults;\r\n $el.locationEdit.addClass('has-error has-error__nodata');\r\n\r\n if (defaultResults.openings && defaultResults.openings > 0) {\r\n $('.forms__message--nodata').find('.default').text(defaultResults.location);\r\n }\r\n loadDefault = true;\r\n resultsLoading = false;\r\n loadData();\r\n }\r\n if (zipcodeLocal === \"\" || !displayResults.openings){\r\n $el.locationEdit.addClass('has-error has-error__nodata');\r\n loadDefault = true;\r\n resultsLoading = false;\r\n loadData();\r\n }\r\n if (zipcodeLocal !== \"\" && countryLocal === 'United States'){\r\n $el.locationEdit.removeClass('has-error has-error__nodata');\r\n }\r\n if (displayResults.openings && displayResults.openings > 0) {\r\n hasLoaded = true;\r\n $el.jobstotal.attr('data-value', displayResults.openings);\r\n if ($el.container.hasClass('reached')) {\r\n $el.container.addClass('onscreen');\r\n $el.container.find('.career-impact__jobs-outer').addClass('animate');\r\n $el.jobstotal.find('span').text($el.jobstotal.attr('data-value'));\r\n }\r\n $el.container.addClass('ready');\r\n $el.location.text(displayResults.location);\r\n $el.organizations.html('');\r\n if (displayResults.organizations && displayResults.organizations.length) {\r\n displayResults.organizations.forEach(function(result, index) {\r\n $el.organizations.append('
  • ' + result.name + '
  • ');\r\n });\r\n }\r\n $el.table.find('tbody').html('');\r\n if (displayResults.related && displayResults.related.length) {\r\n displayResults.related.forEach(function(result, index) {\r\n var icon = parseFloat(result.growth.slice(0, -1)) > 0 ? \"\" : \"down\";\r\n row = '' + result.career + '' + result.growth + '' + result.salary + '';\r\n $el.table.find('tbody').append('' + row + '');\r\n });\r\n }\r\n $('.career-impact__jobs-data').each(function(index, element) {\r\n var value = $(element).find('.career-impact__jobs-total').attr('data-value'),\r\n prepare = $(element).find('.career-impact__prepare').text(),\r\n openings = $(element).find('.career-impact__openings').text();\r\n $(element).attr('aria-label', prepare + ' ' + value + ' ' + openings);\r\n });\r\n } else {\r\n $el.locationEdit.addClass('has-error has-error__nodata');\r\n if (defaultLoaded === false) {\r\n loadDefault = true;\r\n resultsLoading = false;\r\n loadData();\r\n }\r\n }\r\n }\r\n\r\n function loadData() {\r\n if (resultsLoading === false) {\r\n resultsLoading = true;\r\n $el.container.removeClass('loaded');\r\n if ($el.container.hasClass('onscreen')) {\r\n $el.container.removeClass('onscreen').addClass('reached');\r\n }\r\n $el.container.find('.career-impact__jobs-outer').removeClass('animate');\r\n if (zipcode !== $el.finder.val() || loadDefault === true) {\r\n if (loadDefault === true) {\r\n defaultLoaded = true;\r\n loadDefault = false;\r\n zipcode = settings.defaultZip;\r\n } else {\r\n zipcode = $el.finder.val();\r\n }\r\n $.ajax({\r\n type: 'POST',\r\n url: settings.dataurl,\r\n data: { zipcode: zipcode, pathwayid: $el.container.attr('data-pathwayid') },\r\n dataType: 'json',\r\n success: function(data) {\r\n if (loadDefault) {\r\n results = [];\r\n defaultResults = data.career;\r\n } else {\r\n if (defaultResults.length === 0) {\r\n defaultLoaded = true;\r\n defaultResults = data.career;\r\n }\r\n results = data.career;\r\n }\r\n $el.container.addClass('loaded');\r\n\r\n showResults();\r\n }\r\n });\r\n zipcode = $el.finder.val();\r\n }\r\n }\r\n }\r\n\r\n /// Setup Events\r\n function bindEvents() {\r\n odometer = new Odometer({\r\n el: $el.jobstotal.find('span')[0],\r\n duration: 2000,\r\n animation: 'count'\r\n });\r\n if ($el.locationEdit.length) {\r\n $el.locationEdit.on(\"click\",function(event) {\r\n event.preventDefault();\r\n if ($el.locationEdit.hasClass('active')) {\r\n if (/^([0-9]{5,})$/.test($el.finder.val()) && $el.finder.val() !== zipcode) {\r\n resultsLoading = false;\r\n loadData();\r\n }\r\n }\r\n });\r\n }\r\n if ($el.finder.length) {\r\n $el.finder.keydown(function(event) {\r\n if (event.keyCode === 13) {\r\n if (/^([0-9]{5,})$/.test($el.finder.val()) && $el.finder.val() !== zipcode) {\r\n resultsLoading = false;\r\n loadData();\r\n }\r\n }\r\n });\r\n $el.finder.change(function(event) {\r\n if (/^([0-9]{5,})$/.test($el.finder.val()) && $el.finder.val() !== zipcode) {\r\n resultsLoading = false;\r\n loadData();\r\n }\r\n });\r\n setTimeout(function() {\r\n $el.finder.change();\r\n $el.loading.addClass('fadeout');\r\n }, 1000);\r\n }\r\n }\r\n\r\n /**\r\n * Public Methods\r\n **/\r\n\r\n careerImpact.start = function() {\r\n if ($el.finder.val()) {\r\n settings.defaultZip = $el.finder.val();\r\n }\r\n };\r\n\r\n careerImpact.init = function() {\r\n if ($el.finder.length) {\r\n settings.dataurl = $el.container.attr('data-programsurl') || settings.dataurl;\r\n bindEvents();\r\n }\r\n };\r\n})(\r\n window.BDM = window.BDM || {},\r\n window.BDM.careerImpact = window.BDM.careerImpact || {}\r\n);\r\n\r\n//load when ready\r\n$(function() {\r\n window.BDM.careerImpact.init();\r\n});\r\n\r\nwindow.BDM.careerImpact.start();"]}