{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_storefront_naturesmenu/cartridge/client/default/js/components/scrollAnimate.js","webpack:///./cartridges/app_storefront_naturesmenu/cartridge/client/default/js/util.js","webpack:///./cartridges/app_storefront_naturesmenu/cartridge/client/default/js/storeLocator.js","webpack:///./cartridges/app_storefront_naturesmenu/cartridge/client/default/js/storeLocator/storeLocator.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","element","position","length","offset","top","$","animate","scrollTop","focus","include","_typeof","keys","forEach","processInclude","require","document","ready","scrollAnimate","appendToUrl","url","params","newUrl","indexOf","map","encodeURIComponent","join","maps","gtmData","infowindow","google","InfoWindow","mapOptions","scrollwheel","zoom","center","LatLng","styles","Map","mapdiv","attr","JSON","parse","bounds","LatLngBounds","markerImg","path","fillColor","fillOpacity","scale","strokeColor","strokeWeight","anchor","Point","labelOrigin","item","storeLocation","latitude","longitude","marker","Marker","title","icon","addListener","setOptions","content","infoWindowHtml","open","storeName","event","trigger","extend","fitBounds","updateStoresResults","data","$resultsDiv","$mapDiv","hasResults","stores","hide","show","empty","radius","searchKey","locations","storesResultsHtml","append","search","dialog","closest","spinner","start","$form","urlParams","payload","is","serialize","postalCode","find","val","ajax","type","dataType","success","stop","prop","count","init","detectLocation","on","navigator","geolocation","getCurrentPosition","lat","coords","long","submit","e","preventDefault","this","click","which","changeRadius","change","searchKeys","selectStore","selectedStore","storeID","searchRadius","searchPostalCode","storeDetailsHtml","siblings","html","updateSelectStoreButton","showMoreButton","each","$title","text","shortText","substring","btnTextMore","btnTextLess","addClass","activeCard","removeClass","showStore","showStoreHours","slideToggle","toggleClass","showLocationPopup","window","onload"],"mappings":"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","file":"default/js/storeLocator.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 301);\n","module.exports = function (element) {\n var position = element && element.length ? element.offset().top : 0;\n $('html, body').animate({\n scrollTop: position\n }, 500);\n if (!element) {\n $('.logo-home').focus();\n }\n};\n","module.exports = function (include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach(function (key) {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n};\n","var processInclude = require('./util');\n\n$(document).ready(function () {\n processInclude(require('./storeLocator/storeLocator'));\n});\n","var scrollAnimate = require('../components/scrollAnimate');\n\n/**\n * appends params to a url\n * @param {string} url - Original url\n * @param {Object} params - Parameters to append\n * @returns {string} result url with appended parameters\n */\nfunction appendToUrl(url, params) {\n var newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(params).map(function (key) {\n return key + '=' + encodeURIComponent(params[key]);\n }).join('&');\n\n return newUrl;\n}\n\n/**\n * Uses google maps api to render a map\n */\nfunction maps() {\n var map;\n var infowindow = new google.maps.InfoWindow();\n // Data passed to gtm events\n var gtmData;\n // Customized map\n var styles = [\n {\n 'featureType': 'water',\n 'elementType': 'geometry',\n 'stylers': [\n {\n 'color': '#e9e9e9'\n },\n {\n 'lightness': 17\n }\n ]\n },\n {\n 'featureType': 'landscape',\n 'elementType': 'geometry',\n 'stylers': [\n {\n 'color': '#f5f5f5'\n },\n {\n 'lightness': 20\n }\n ]\n },\n {\n 'featureType': 'road.highway',\n 'elementType': 'geometry.fill',\n 'stylers': [\n {\n 'color': '#ffffff'\n },\n {\n 'lightness': 17\n }\n ]\n },\n {\n 'featureType': 'road.highway',\n 'elementType': 'geometry.stroke',\n 'stylers': [\n {\n 'color': '#ffffff'\n },\n {\n 'lightness': 29\n },\n {\n 'weight': 0.2\n }\n ]\n },\n {\n 'featureType': 'road.arterial',\n 'elementType': 'geometry',\n 'stylers': [\n {\n 'color': '#ffffff'\n },\n {\n 'lightness': 18\n }\n ]\n },\n {\n 'featureType': 'road.local',\n 'elementType': 'geometry',\n 'stylers': [\n {\n 'color': '#ffffff'\n },\n {\n 'lightness': 16\n }\n ]\n },\n {\n 'featureType': 'poi',\n 'elementType': 'geometry',\n 'stylers': [\n {\n 'color': '#f5f5f5'\n },\n {\n 'lightness': 21\n }\n ]\n },\n {\n 'featureType': 'poi.park',\n 'elementType': 'geometry',\n 'stylers': [\n {\n 'color': '#dedede'\n },\n {\n 'lightness': 21\n }\n ]\n },\n {\n 'elementType': 'labels.text.stroke',\n 'stylers': [\n {\n 'visibility': 'on'\n },\n {\n 'color': '#ffffff'\n },\n {\n 'lightness': 16\n }\n ]\n },\n {\n 'elementType': 'labels.text.fill',\n 'stylers': [\n {\n 'saturation': 36\n },\n {\n 'color': '#333333'\n },\n {\n 'lightness': 40\n }\n ]\n },\n {\n 'elementType': 'labels.icon',\n 'stylers': [\n {\n 'visibility': 'off'\n }\n ]\n },\n {\n 'featureType': 'transit',\n 'elementType': 'geometry',\n 'stylers': [\n {\n 'color': '#f2f2f2'\n },\n {\n 'lightness': 19\n }\n ]\n },\n {\n 'featureType': 'administrative',\n 'elementType': 'geometry.fill',\n 'stylers': [\n {\n 'color': '#fefefe'\n },\n {\n 'lightness': 20\n }\n ]\n },\n {\n 'featureType': 'administrative',\n 'elementType': 'geometry.stroke',\n 'stylers': [\n {\n 'color': '#fefefe'\n },\n {\n 'lightness': 17\n },\n {\n 'weight': 1.2\n }\n ]\n }\n ];\n\n // Init GB Map in the center of the viewport\n var latlng = new google.maps.LatLng(53.478062, -2.244666);\n var mapOptions = {\n scrollwheel: false,\n zoom: 5,\n center: latlng,\n styles: styles\n };\n\n map = new google.maps.Map($('.map-canvas')[0], mapOptions);\n var mapdiv = $('.map-canvas').attr('data-locations');\n\n mapdiv = JSON.parse(mapdiv);\n\n var bounds = new google.maps.LatLngBounds();\n\n // Customized google map marker icon with svg format\n var markerImg = {\n path: 'M17.5.516C7.85.516 0 7.615 0 16.349c0 9.583 12.166 20.483 15.9 23.583.448.377 1.014.584 1.6.584s1.152-.207 1.6-.584c3.733-3.117 15.9-14 15.9-23.583 0-8.733-7.85-15.833-17.5-15.833zm3.75 7.5a2.5 2.5 0 0 1 2.31 1.543 2.5 2.5 0 0 1-.542 2.724 2.5 2.5 0 0 1-2.724.542 2.5 2.5 0 0 1-1.543-2.31 2.5 2.5 0 0 1 2.5-2.5zm-7.5 0a2.5 2.5 0 0 1 2.31 1.543 2.5 2.5 0 0 1-.542 2.724 2.5 2.5 0 0 1-2.725.542 2.5 2.5 0 0 1-1.543-2.31 2.5 2.5 0 0 1 2.5-2.5zM9.166 18.849a2.5 2.5 0 0 1-2.31-1.543 2.5 2.5 0 0 1 .542-2.724 2.5 2.5 0 0 1 2.724-.542 2.5 2.5 0 0 1 1.543 2.31 2.5 2.5 0 0 1-2.5 2.5zm8.333 8.75c-3.683 0-6.667-1.867-6.667-4.167a3.45 3.45 0 0 1 1.667-2.717c.941-.68 1.687-1.593 2.167-2.65.224-.586.608-1.097 1.109-1.475s1.099-.606 1.724-.658c.637.041 1.249.263 1.763.641s.909.896 1.137 1.492c.461 1.049 1.184 1.962 2.1 2.65a3.45 3.45 0 0 1 1.667 2.717c0 2.3-2.983 4.167-6.667 4.167zm8.333-8.75a2.5 2.5 0 0 1-2.31-1.543 2.5 2.5 0 0 1 .542-2.724 2.5 2.5 0 0 1 2.724-.542 2.5 2.5 0 0 1 1.543 2.31 2.5 2.5 0 0 1-2.5 2.5z',\n fillColor: '#2D5843',\n fillOpacity: 1,\n scale: 1.1,\n strokeColor: 'white',\n strokeWeight: 1,\n anchor: new google.maps.Point(13, 30),\n labelOrigin: new google.maps.Point(12, 12)\n };\n\n Object.keys(mapdiv).forEach(function (key) {\n var item = mapdiv[key];\n var storeLocation = new google.maps.LatLng(item.latitude, item.longitude);\n var marker = new google.maps.Marker({\n position: storeLocation,\n map: map,\n title: item.name,\n icon: markerImg\n });\n\n marker.addListener('click', function () {\n infowindow.setOptions({\n content: item.infoWindowHtml\n });\n infowindow.open(map, marker);\n // Set gtm data\n gtmData = {storeName: item.name};\n });\n // We need the modal to be open so we can get the address as fallback in gtm.js\n google.maps.event.addListener(infowindow, 'domready', function () {\n $('body').trigger('gtm:stockistClick', {storeName: item.name});\n });\n // Create a minimum bound based on a set of storeLocations\n bounds.extend(marker.position);\n });\n // We need the modal to be open so we can get the address as fallback in gtm.js\n google.maps.event.addListener(infowindow, 'domready', function () {\n $('body').trigger('gtm:stockistClick', gtmData);\n });\n // Fit the all the store marks in the center of a minimum bounds when any store has been found.\n if (mapdiv && mapdiv.length !== 0) {\n map.fitBounds(bounds);\n }\n}\n\n/**\n * Renders the results of the search and updates the map\n * @param {Object} data - Response from the server\n */\nfunction updateStoresResults(data) {\n var $resultsDiv = $('.results');\n var $mapDiv = $('.map-canvas');\n var hasResults = data.stores.length > 0;\n\n if (!hasResults) {\n $('.store-locator-no-results').show();\n } else {\n $('.store-locator-no-results').hide();\n }\n\n $resultsDiv.empty()\n .data('has-results', hasResults)\n .data('radius', data.radius)\n .data('search-key', data.searchKey);\n\n $mapDiv.attr('data-locations', data.locations);\n\n if ($mapDiv.data('has-google-api')) {\n maps();\n } else {\n $('.store-locator-no-apiKey').show();\n }\n\n if (data.storesResultsHtml) {\n $resultsDiv.append(data.storesResultsHtml);\n }\n}\n\n/**\n * Search for stores with new zip code\n * @param {HTMLElement} element - the target html element\n * @returns {boolean} false to prevent default event\n */\nfunction search(element) {\n var dialog = element.closest('.in-store-inventory-dialog');\n var spinner = dialog.length ? dialog.spinner() : $.spinner();\n spinner.start();\n var $form = element.closest('.store-locator');\n var radius = $('.results').data('radius');\n var url = $form.attr('action');\n var urlParams = { radius: radius };\n\n var payload = $form.is('form') ? $form.serialize() : { postalCode: $form.find('[name=\"postalCode\"]').val() };\n\n url = appendToUrl(url, urlParams);\n\n $.ajax({\n url: url,\n type: $form.attr('method'),\n data: payload,\n dataType: 'json',\n success: function (data) {\n spinner.stop();\n updateStoresResults(data);\n $('.select-store').prop('disabled', true);\n $('body').trigger('gtm:stockistFind', {payload: payload, count: data.stores.length});\n }\n });\n return false;\n}\n\nfunction detectLocationPopup() {\n navigator.geolocation.getCurrentPosition(function (position) {\n var url = $('.store-locator').data('action');\n var radius = $('.results').data('radius');\n var urlParams = {\n radius: radius,\n lat: position.coords.latitude,\n long: position.coords.longitude\n };\n\n url = appendToUrl(url, urlParams);\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n updateStoresResults(data);\n }\n });\n });\n}\n\nmodule.exports = {\n init: function () {\n if ($('.map-canvas').data('has-google-api')) {\n maps();\n } else {\n $('.store-locator-no-apiKey').show();\n }\n\n if (!$('.results').data('has-results')) {\n $('.store-locator-no-results').show();\n }\n },\n\n detectLocation: function () {\n // clicking on detect location.\n $('.detect-location').on('click', function () {\n $.spinner().start();\n if (!navigator.geolocation) {\n $.spinner().stop();\n return;\n }\n\n navigator.geolocation.getCurrentPosition(function (position) {\n var $detectLocationButton = $('.detect-location');\n var url = $detectLocationButton.data('action');\n var radius = $('.results').data('radius');\n var urlParams = {\n radius: radius,\n lat: position.coords.latitude,\n long: position.coords.longitude\n };\n\n url = appendToUrl(url, urlParams);\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n $.spinner().stop();\n updateStoresResults(data);\n $('.select-store').prop('disabled', true);\n }\n });\n });\n });\n },\n\n search: function () {\n $('.store-locator-container form.store-locator').submit(function (e) {\n e.preventDefault();\n search($(this));\n });\n $('.store-locator-container .btn-storelocator-search[type=\"button\"]').click(function (e) {\n e.preventDefault();\n search($(this));\n });\n $('body').on('keypress', '.store-locator-container', (function (e) {\n if (e.which == 13) {\n e.preventDefault();\n search($(this).find('.btn-storelocator-search[type=\"button\"]'));\n }\n }));\n },\n\n changeRadius: function () {\n $('.store-locator-container .radius').change(function () {\n var radius = $(this).val();\n var searchKeys = $('.results').data('search-key');\n var url = $(this).data('action-url');\n var urlParams = {};\n\n if (searchKeys.postalCode) {\n urlParams = {\n radius: radius,\n postalCode: searchKeys.postalCode\n };\n } else if (searchKeys.lat && searchKeys.long) {\n urlParams = {\n radius: radius,\n lat: searchKeys.lat,\n long: searchKeys.long\n };\n }\n\n url = appendToUrl(url, urlParams);\n var dialog = $(this).closest('.in-store-inventory-dialog');\n var spinner = dialog.length ? dialog.spinner() : $.spinner();\n spinner.start();\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n spinner.stop();\n updateStoresResults(data);\n $('.select-store').prop('disabled', true);\n }\n });\n });\n },\n selectStore: function () {\n $('.store-locator-container').on('click', '.select-store', (function (e) {\n e.preventDefault();\n var selectedStore = $(':checked', '.results-card .results');\n var data = {\n storeID: selectedStore.val(),\n searchRadius: $('#radius').val(),\n searchPostalCode: $('.results').data('search-key').postalCode,\n storeDetailsHtml: selectedStore.siblings('label').find('.store-details').html(),\n event: e\n };\n\n $('body').trigger('store:selected', data);\n }));\n },\n updateSelectStoreButton: function () {\n $('body').on('change', '.select-store-input', (function () {\n $('.select-store').prop('disabled', false);\n }));\n },\n\n showMoreButton: function () {\n $('.locator-title-content').each(function () {\n var $title = $(this).find('.locator-subtitle');\n if ($title.text().length > 75) {\n var shortText = $title.text();\n shortText = shortText.substring(0, 75);\n var btnTextMore = $('.locator-title-content').data('btn-more');\n var btnTextLess = $('.locator-title-content').data('btn-less');\n $title.addClass('fullText').hide();\n $title.append(' ' + '' + btnTextLess +'');\n $(this).append('
'+ shortText + '... ' + '' + btnTextMore + '
');\n }\n });\n\n $(document).on('click', '.see-more-link', function () {\n $(this).hide();\n $('.previewText').hide();\n $('.fullText').show();\n });\n\n $(document).on('click', '.see-less-link', function () {\n $('.see-more-link').show();\n $('.fullText').hide();\n $('.previewText').show();\n });\n },\n activeCard: function () {\n $(document).on('click', '.store-locator-container .card-body', function () {\n $('.store-locator-container .card-body').removeClass('active');\n $(this).addClass('active');\n });\n },\n showStore: function () {\n // Show store on map when click on store's info in results\n $(document).on('click', '.results-card [data-name], .results-card [data-address]', function () {\n var storeName = $(this).data('name') || $(this).data('address');\n\n var element = $('[aria-label=\\'' + storeName + '\\']');\n element.trigger('click');\n\n scrollAnimate($('.jumbotron map-canvas'));\n });\n },\n showStoreHours: function () {\n $(document).on('click', '.store-hours-title', function () {\n $('.store-hours-list').slideToggle(500);\n $(this).toggleClass('collapsed');\n });\n },\n\n showLocationPopup: function () {\n // Detect location when user enters the page\n window.onload = function () {\n detectLocationPopup();\n };\n }\n};\n"],"sourceRoot":""}