{"version":3,"file":"jwsdw-supplyChain.js","sources":["../../../../../../../temp/ngAnnotate/assets/jwsdw-supplyChain.js"],"sourcesContent":["'use strict';\r\n\r\n(function (window, $) {\r\n var $textBlockTemplate = $('#jwsdw-supplyChain-picker-template-textBlock li'),\r\n gmap,\r\n _changeZoom = true,\r\n _typeFilter = {\r\n 'supplier': true,\r\n 'manufacturer': true\r\n },\r\n pointsMap = {\r\n 'gold': '8-10',\r\n 'silver': '5-7',\r\n 'bronze': '1-4'\r\n },\r\n markers = [];\r\n\r\n // activate google maps functionalities\r\n if (window.google && window.google.maps) {\r\n activateMaps();\r\n } else {\r\n window.jwsdwMediator.subscribe('activateGoogleMaps', function() {\r\n activateMaps();\r\n });\r\n }\r\n\r\n $(document).on('click', '.jwsdw-supplyChain-results-supplier', function() {\r\n var supplierId = $(this).data('id'),\r\n type = $(this).data('type'),\r\n supplier = window.jwsdwSupplyChainSettings.suppliers.find(function(sup) {\r\n return String(sup.id) === String(supplierId);\r\n }),\r\n employees,\r\n division,\r\n $supplier = $('#jwsdw-supplyChain-picker-template-' + type).clone(),\r\n $img,\r\n $partnerSince = $supplier.find('.jwsdw-supplyChain-supplier-partnerSince');\r\n\r\n markers.forEach(function(marker) {\r\n if (marker.id === String(supplierId)) {\r\n marker.setIcon(_markerIcon(marker.type + '-selected', 25, 37));\r\n\r\n marker.selected = true;\r\n marker.setZIndex(9999);\r\n gmap.setCenter(marker.position);\r\n if (_changeZoom) {\r\n gmap.setZoom(7);\r\n }\r\n } else if (marker.selected) {\r\n marker.setIcon(_markerIcon(marker.type + '-faded', 15, 22));\r\n marker.selected = false;\r\n marker.setZIndex(1);\r\n }\r\n });\r\n\r\n _changeZoom = true;\r\n\r\n $('.jwsdw-supplyChain-results-supplier').removeClass('jws-bgColorGrey6');\r\n $(this).addClass('jws-bgColorGrey6');\r\n\r\n if (supplier.supplierImage) {\r\n $img = $('');\r\n $img.attr('src', supplier.supplierImage);\r\n $supplier.find('.jwsdw-supplyChain-supplier-image').append($img);\r\n }\r\n $supplier.find('.jwsdw-supplyChain-supplier-name').text(supplier.name);\r\n\r\n if (supplier.division) {\r\n division = supplier.division.split(',').map(function(_division) {\r\n return window.jwsdwSupplyChainSettings.textBlocks.division[_division];\r\n });\r\n $supplier.find('.jwsdw-supplyChain-supplier-division').text(division.join(', '));\r\n }\r\n $partnerSince.text([\r\n supplier.partnerSince,\r\n supplier.partnerSince === 1 ? $partnerSince.data('singular') : $partnerSince.data('plural')\r\n ].join(' '));\r\n $supplier.find('.jwsdw-supplyChain-supplier-countryName').text(supplier.countryName);\r\n\r\n if (supplier.evaluation) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-evaluation')\r\n .removeClass('jwsdw-colorGold jws-hidden')\r\n .addClass('jwsdw-color' + _capitalize(supplier.evaluation.toLowerCase()))\r\n .text(window.jwsdwSupplyChainSettings.textBlocks.medal[supplier.evaluation.toLowerCase()]);\r\n $supplier.find('.jwsdw-supplyChain-supplier-medal')\r\n .removeClass('jwsdw-fillColorGold jws-hidden')\r\n .addClass('jwsdw-fillColor' + _capitalize(supplier.evaluation.toLowerCase()));\r\n }\r\n\r\n if (type === 'manufacturer') {\r\n employees = supplier.employees.female + supplier.employees.male;\r\n if (supplier.supplierShortCut) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-supplierShortCut-wrapper').removeClass('jws-hidden');\r\n $supplier.find('.jwsdw-supplyChain-supplier-supplierShortCut').text(supplier.supplierShortCut);\r\n }\r\n $supplier.find('.jwsdw-supplyChain-supplier-employees').text(employees);\r\n $supplier.find('.jwsdw-supplyChain-supplier-employees-ratioFemale').text(\r\n Math.round(supplier.employees.female / employees * 100)\r\n );\r\n $supplier.find('.jwsdw-supplyChain-supplier-employees-ratioMale').text(\r\n Math.round(supplier.employees.male / employees * 100)\r\n );\r\n\r\n if (supplier.socialAudit.from && supplier.socialAudit.to) {\r\n if (supplier.socialAudit.from !== supplier.socialAudit.to) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-socialAudit-from').text(_formatDate(supplier.socialAudit.from, true) + '-');\r\n }\r\n $supplier.find('.jwsdw-supplyChain-supplier-socialAudit-to').text(_formatDate(supplier.socialAudit.to, false));\r\n }\r\n if (supplier.socialAudit.result) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-socialAudit-link')\r\n .removeClass('jws-hidden')\r\n .attr('href', supplier.socialAudit.result);\r\n }\r\n\r\n if (supplier.evaluation) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-evaluation-text svg')\r\n .removeClass('jwsdw-fillColorGold')\r\n .addClass('jwsdw-fillColor' + _capitalize(supplier.evaluation.toLowerCase()));\r\n $supplier.find('.jwsdw-supplyChain-supplier-evaluation-points').text(pointsMap[supplier.evaluation.toLowerCase()]);\r\n _addTextBlock($supplier, supplier.evaluation, window.jwsdwSupplyChainSettings.textBlocks.conclusion[supplier.evaluation.toLowerCase()]);\r\n } else {\r\n $supplier.find('.jwsdw-supplyChain-supplier-evaluation-text').addClass('jws-hidden');\r\n $supplier.find('.jwsdw-supplyChain-supplier-evaluation-points').addClass('jws-hidden');\r\n }\r\n\r\n } else {\r\n if (supplier.certification) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-certification-container').removeClass('jws-hidden');\r\n $supplier.find('.jwsdw-supplyChain-supplier-certification').text(supplier.certification);\r\n }\r\n\r\n supplier.textBlocks.forEach(function(id) {\r\n _addTextBlock($supplier, supplier.evaluation, window.jwsdwSupplyChainSettings.textBlocks[id]);\r\n });\r\n\r\n if (supplier.sewageReport.report) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-sewageReport').removeClass('jws-hidden');\r\n $supplier.find('.jwsdw-supplyChain-supplier-sewageReport-report-link')\r\n .removeClass('jws-hidden')\r\n .attr('href', supplier.sewageReport.report);\r\n }\r\n if (supplier.sewageReport.result) {\r\n $supplier.find('.jwsdw-supplyChain-supplier-sewageReport-result-link')\r\n .removeClass('jws-hidden')\r\n .attr('href', supplier.sewageReport.result);\r\n }\r\n }\r\n\r\n window.jwsdwMediator.publish('openPicker', 'infoPicker', {\r\n 'content':\r\n '
'\r\n });\r\n\r\n setTimeout(function() {\r\n $('.jwsdw-supplyChain-supplier-infoPicker-container').html($supplier.html());\r\n $('.jwsdw-supplyChain-supplier-infoPicker-container').scrollTop(0);\r\n }, 300);\r\n });\r\n\r\n window.jwsdwMediator.subscribe('closePicker', function(type) {\r\n if (type === 'infoPicker') {\r\n markers.forEach(function(marker) {\r\n marker.selected = true;\r\n marker.setIcon(_markerIcon(marker.type, 15, 22));\r\n });\r\n }\r\n });\r\n\r\n $(document).on('click', '#jwsdw-supplyChain-navigation-flyer', toggleNavigation);\r\n\r\n $(document).on('change', '.jwsdw-supplyChain-supplierType', function() {\r\n var type = this.value,\r\n active = $(this).is(':checked');\r\n\r\n _typeFilter[type] = active;\r\n\r\n showFilterResults();\r\n\r\n clearMarkers();\r\n\r\n window.jwsdwSupplyChainSettings.suppliers\r\n .filter(function(supplier) {\r\n return _typeFilter[supplier.type];\r\n })\r\n .forEach(function(supplier) {\r\n renderGoogleMapMarker(supplier);\r\n });\r\n });\r\n\r\n $('#jwsdw-supplyChain-filterBy').on('keyup', showFilterResults);\r\n\r\n /**\r\n * @description Method to show/hide supplier based on filters\r\n * @returns {void}\r\n */\r\n function showFilterResults() {\r\n var query = new RegExp($('#jwsdw-supplyChain-filterBy').val(), 'i');\r\n\r\n $('.jwsdw-supplyChain-results-supplier').each(function() {\r\n if (_typeFilter[$(this).data('type')]) {\r\n $(this).removeClass('jws-hidden');\r\n } else {\r\n $(this).addClass('jws-hidden');\r\n return;\r\n }\r\n if (query.test($(this).data('name')) ||\r\n query.test($(this).data('short-cut'))) {\r\n $(this).removeClass('jws-hidden');\r\n } else {\r\n $(this).addClass('jws-hidden');\r\n return;\r\n }\r\n });\r\n }\r\n\r\n $(document).on('change', '#jwsdw-supplyChain-results-sortByName', function () {\r\n var toggle = $(this).is(':checked') === true ? 1 : -1,\r\n list = $('.jwsdw-supplyChain-results-supplier').detach();\r\n\r\n $('.jwsdw-supplyChain-sortByName').toggleClass('jws-hidden');\r\n $('.jwsdw-supplyChain-sortByName').removeClass('jws-opacity-0');\r\n $('.jwsdw-supplyChain-sortByShortCut').addClass('jws-opacity-0');\r\n\r\n Array.from(list)\r\n .sort(function (a, b) {\r\n return $(a).data('name').toLowerCase() > $(b).data('name').toLowerCase() ? -1 * toggle : toggle;\r\n })\r\n .forEach(function($supplier) {\r\n $('.jwsdw-supplyChain-results-body').append($supplier);\r\n });\r\n });\r\n $(document).on('change', '#jwsdw-supplyChain-results-sortByShortCut', function () {\r\n var toggle = $(this).is(':checked') === true ? 1 : -1,\r\n list = $('.jwsdw-supplyChain-results-supplier').detach();\r\n\r\n $('.jwsdw-supplyChain-sortByShortCut').toggleClass('jws-hidden');\r\n $('.jwsdw-supplyChain-sortByShortCut').removeClass('jws-opacity-0');\r\n $('.jwsdw-supplyChain-sortByName').addClass('jws-opacity-0');\r\n\r\n Array.from(list)\r\n .sort(function (a, b) {\r\n return $(a).data('short-cut').toLowerCase() > $(b).data('short-cut').toLowerCase() ? -1 * toggle : toggle;\r\n })\r\n .forEach(function($supplier) {\r\n $('.jwsdw-supplyChain-results-body').append($supplier);\r\n });\r\n });\r\n\r\n /**\r\n * @description Method to toggle navigation display\r\n * @return {void}\r\n */\r\n function toggleNavigation() {\r\n $('#jwsdw-supplyChain-navigation').toggleClass('jwsdw-show');\r\n }\r\n\r\n if (/large/.test(window.jwsdwUtil.uiUtils.getViewport())) {\r\n toggleNavigation();\r\n }\r\n\r\n /**\r\n * @description Method to initialize google maps\r\n * @returns {void}\r\n */\r\n function activateMaps() {\r\n var mapOptions = {\r\n 'center': new window.google.maps.LatLng(\r\n window.jwsdwSupplyChainSettings.mapDefaults.lat,\r\n window.jwsdwSupplyChainSettings.mapDefaults.lng\r\n ),\r\n 'zoom': window.jwsdwSupplyChainSettings.mapDefaults.zoom,\r\n 'maxZoom': window.jwsdwSupplyChainSettings.mapDefaults.maxZoom,\r\n 'minZoom': window.jwsdwSupplyChainSettings.mapDefaults.minZoom,\r\n 'mapTypeId': window.google.maps.MapTypeId.ROADMAP,\r\n 'draggable': true,\r\n 'disableDefaultUI': true,\r\n 'streetViewControl': false,\r\n 'mapTypeControl': false,\r\n 'zoomControl': true\r\n };\r\n\r\n $('#jwsdw-supplyChain .jwsdw-spinner').addClass('jws-hidden');\r\n\r\n gmap = new window.google.maps.Map(document.getElementById('jwsdw-map'), mapOptions);\r\n\r\n window.google.maps.event.addDomListener(window, 'load', function() {\r\n window.jwsdwSupplyChainSettings.suppliers.forEach(function(supplier) {\r\n renderGoogleMapMarker(supplier);\r\n });\r\n });\r\n\r\n window.google.maps.event.addDomListener(window, 'resize', function() {\r\n if (gmap) {\r\n resizeMap();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description Method to resize map\r\n * @returns {void}\r\n */\r\n function resizeMap() {\r\n var center = gmap.getCenter();\r\n window.google.maps.event.trigger(gmap, 'resize');\r\n gmap.setCenter(center);\r\n }\r\n\r\n /**\r\n * @description Method to render google map marker for store\r\n * @param {Object} marker store object\r\n * @param {String} marker.id store id\r\n * @param {String} marker.type store type\r\n * @param {Object} marker.location location\r\n * @param {Number} marker.location.lat latitude\r\n * @param {Number} marker.location.lng longitude\r\n * @returns {Object} marker\r\n */\r\n function renderGoogleMapMarker(marker) {\r\n var lat = Number(marker.location.lat),\r\n lng = Number(marker.location.lng),\r\n geoLocation = new window.google.maps.LatLng(lat, lng),\r\n gMarker = new window.google.maps.Marker({\r\n 'position': geoLocation,\r\n 'id': marker.id,\r\n 'type': marker.type,\r\n 'selected': false,\r\n 'map': gmap,\r\n 'animation': window.google.maps.Animation.DROP,\r\n 'icon': _markerIcon(marker.type, 15, 22)\r\n });\r\n\r\n window.google.maps.event.addListener(gMarker, 'click', function() {\r\n var $supplierResults = $('.jwsdw-supplyChain-results-body'),\r\n $supplier = $('.jwsdw-supplyChain-results-supplier[data-id=' + this.id + ']');\r\n\r\n $supplierResults.scrollTop($supplierResults.scrollTop() + $supplier.position().top - $supplierResults.height());\r\n\r\n // temporarily disable change zoom on supplier select\r\n _changeZoom = false;\r\n $supplier.click();\r\n });\r\n\r\n markers.push(gMarker);\r\n\r\n return gMarker;\r\n }\r\n\r\n /**\r\n * @description Method to clear markers on map\r\n * @returns {void}\r\n */\r\n function clearMarkers() {\r\n markers.forEach(function (marker) {\r\n marker.setMap(null);\r\n });\r\n markers = [];\r\n }\r\n\r\n /**\r\n * @description Method to generate Icon Object for given type and size\r\n * @param {String} type store type\r\n * @param {Number} width width\r\n * @param {Number} height height\r\n * @returns {Object} icon object for google maps markers\r\n * @private\r\n */\r\n function _markerIcon(type, width, height) {\r\n return {\r\n 'url': window.jwsdwSupplyChainSettings.icons[type],\r\n 'scaledSize': new window.google.maps.Size(width, height),\r\n 'origin': new window.google.maps.Point(0, 0),\r\n 'anchor': new window.google.maps.Point(width / 2, height)\r\n };\r\n }\r\n\r\n /**\r\n * @description Method to capitalize first letter of a string\r\n * @param {String} string string to capitalize\r\n * @returns {String} capitalized string\r\n * @private\r\n */\r\n function _capitalize(string) {\r\n if (string) {\r\n string = string.charAt(0).toUpperCase() + string.substr(1);\r\n }\r\n return string || '';\r\n }\r\n\r\n /**\r\n * @description Method to format date string to short date\r\n * @param {String} string date string to format\r\n * @param {Boolean} short if true format short date\r\n * @returns {String} formatted date string\r\n */\r\n function _formatDate(string, short) {\r\n var date = new Date(string),\r\n dateFormatted = date.getDate() + '.' + (date.getMonth() + 1) + '.';\r\n\r\n if (!short) {\r\n dateFormatted += date.getFullYear();\r\n }\r\n return dateFormatted;\r\n }\r\n\r\n /**\r\n * @description Method to add a textblock\r\n * @param {Object} $supplier jQuery object\r\n * @param {String} evaluation gold/silver/bronze\r\n * @param {String} text text to included\r\n * @returns {void}\r\n */\r\n function _addTextBlock($supplier, evaluation, text) {\r\n var $textBlock = $textBlockTemplate.clone();\r\n\r\n $textBlock.find('svg')\r\n .removeClass('jwsdw-fillColorGold')\r\n .addClass('jwsdw-fillColor' + _capitalize(evaluation.toLowerCase()));\r\n\r\n $textBlock.find('span').html(text);\r\n $supplier.find('.jwsdw-supplyChain-supplier-evaluation-text ul').append($textBlock);\r\n }\r\n\r\n window.supplyChainCreateCSV = function (el) {\r\n var csvContent = 'data:text/csv;charset=utf-8,';\r\n\r\n csvContent += [\r\n 'id',\r\n 'type',\r\n 'division',\r\n 'name',\r\n 'supplierShortCut',\r\n 'countryCode',\r\n 'countryName',\r\n 'location',\r\n 'location',\r\n 'partnerSince',\r\n 'employees-female',\r\n 'employees-male',\r\n 'evaluation',\r\n 'socialAudit-from',\r\n 'socialAudit-to',\r\n 'socialAudit-result',\r\n 'sewageReport-report',\r\n 'sewageReport-result',\r\n 'certification',\r\n 'supplierImage'\r\n ].join(',');\r\n\r\n csvContent += '\\n';\r\n\r\n csvContent += window.jwsdwSupplyChainSettings.suppliers.map(function(supplier) {\r\n return [\r\n supplier.id,\r\n supplier.type,\r\n supplier.division,\r\n supplier.name,\r\n supplier.supplierShortCut,\r\n supplier.countryCode,\r\n supplier.countryName,\r\n supplier.location.lat,\r\n supplier.location.lng,\r\n supplier.partnerSince,\r\n supplier.employees ? supplier.employees.female : '',\r\n supplier.employees ? supplier.employees.male : '',\r\n supplier.evaluation,\r\n supplier.socialAudit ? supplier.socialAudit.from : '',\r\n supplier.socialAudit ? supplier.socialAudit.to : '',\r\n supplier.socialAudit ? supplier.socialAudit.result : '',\r\n supplier.sewageReport ? supplier.sewageReport.report : '',\r\n supplier.sewageReport ? supplier.sewageReport.result : '',\r\n supplier.certification,\r\n supplier.supplierImage\r\n ].join(';');\r\n }).join('\\n');\r\n el.removeAttribute('onclick');\r\n el.setAttribute('href', encodeURI(csvContent));\r\n\r\n el.click();\r\n };\r\n}(window, jQuery));"],"names":["window","$","gmap","$textBlockTemplate","_changeZoom","_typeFilter","supplier","manufacturer","pointsMap","gold","silver","bronze","markers","showFilterResults","query","RegExp","val","each","this","data","removeClass","test","addClass","toggleNavigation","toggleClass","activateMaps","mapOptions","center","google","maps","LatLng","jwsdwSupplyChainSettings","mapDefaults","lat","lng","zoom","maxZoom","minZoom","mapTypeId","MapTypeId","ROADMAP","draggable","disableDefaultUI","streetViewControl","mapTypeControl","zoomControl","Map","document","getElementById","event","addDomListener","suppliers","forEach","renderGoogleMapMarker","getCenter","trigger","setCenter","marker","Number","location","geoLocation","gMarker","Marker","position","id","type","selected","map","animation","Animation","DROP","icon","_markerIcon","addListener","$supplierResults","$supplier","scrollTop","top","height","click","push","width","url","icons","scaledSize","Size","origin","Point","anchor","_capitalize","string","charAt","toUpperCase","substr","_formatDate","short","date","Date","dateFormatted","getDate","getMonth","getFullYear","_addTextBlock","evaluation","text","$textBlock","clone","find","toLowerCase","html","append","jwsdwMediator","subscribe","on","$img","supplierId","sup","String","$partnerSince","setIcon","setZIndex","setZoom","supplierImage","attr","name","division","split","_division","textBlocks","join","partnerSince","countryName","medal","employees","female","male","supplierShortCut","Math","round","socialAudit","from","to","result","conclusion","certification","sewageReport","report","publish","content","setTimeout","value","active","is","setMap","filter","toggle","list","detach","Array","sort","a","b","jwsdwUtil","uiUtils","getViewport","supplyChainCreateCSV","el","csvContent","countryCode","removeAttribute","setAttribute","encodeURI","jQuery"],"mappings":"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"}