{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_intimissimi/cartridge/client/default/js/storeRegionProvince.js","webpack:///./cartridges/app_intimissimi/cartridge/client/default/js/storeLocator/storeRegionProvince.js","webpack:///./assets/scripts/util/common.js","webpack:///./cartridges/app_intimissimi/cartridge/client/default/js/storeLocator/storeHours.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","document","addEventListener","processInclude","require","initStoreHours","StoreHours","run","loadMoreStores","$","on","e","preventDefault","url","currentTarget","data","spinner","start","ajax","then","html","addClass","stop","task","window","requestAnimationFrame","include","keys","forEach","map","el","createElement","innerHTML","htmlMap","querySelector","params","newUrl","indexOf","encodeURIComponent","join","css","cookie","split","filter","item","trim","length","expires","days","date","Date","setTime","getTime","toGMTString","additionDispoHours","parseInt","val","daysOfTheWeek","this","currentDate","today","getDay","tomorrow","storeHoursList","init","addEventListeners","_self","each","_idx","storeHours","currentStore","parents","nextPhase","getStoreHoursPhase","dispoArrival","hasClass","getDispoArrival","noDispoArrival","isTemporarilyClosed","reopDate","reopeningDate","find","removeClass","toLocaleDateString","attr","isStoreOpen","parent","off","toggleClass","closest","store","phases","tomorrowFirstPhase","currentPhase","startPhase","startDate","setHours","setMinutes","tomorrowStartTime","getHours","getMinutes","phase","endPhase","endDate","setDate","getDate","hoursAndMinutes","totalMinutes","Math","floor","isTomorrow","currentHourArray","endCurrentPhaseArray","isStoreOpenInThreeHours","dispoArrivalHour","dispoMinutes","nextPhaseArray","remove","currentMinutes","convertToMinutes","endPhaseMinutes","nextPhaseMinutes","newCurrentHourArray","convertToHoursAndMinutes","reachNextQuarter","currentPhaseArray","nowInThreeHourse","closingHourArray","closingDate","Number","roundedMinutes","ceil","roundedHours","remainingMinutes","String","padStart"],"mappings":"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","file":"storeRegionProvince.min.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 = 217);\n","import { processInclude } from 'util/common';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n processInclude(require('./storeLocator/storeRegionProvince'));\n});\n","'use strict';\n\nimport StoreHours from '../storeLocator/storeHours';\n\nmodule.exports = {\n initStoreHours: function () {\n StoreHours.run();\n },\n\n loadMoreStores: function () {\n $('body').on('click', '.js-load-store-results', function (e) {\n e.preventDefault();\n\n var url = $(e.currentTarget).data('url');\n $.spinner().start();\n $.ajax(url).then(function (data) {\n $('.js-more-store-list-container').html(data);\n StoreHours.run();\n $('.js-load-store-results-container').addClass('hidden');\n $.spinner().stop();\n });\n });\n }\n};\n","/**\n * Core SFRA function for run everything everywhere\n * @param {Function || Object} include - stuff to run\n */\nconst processInclude = 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\n// Enqueues tasks to be executed afterwards\nfunction enqueueTask (task) {\n window.requestAnimationFrame(task);\n}\n\n/**\n * Parses the html for a modal window\n * @param {string} html - representing the body and footer of the modal window\n *\n * @return {Object} - Object with properties body and footer.\n */\nconst parseHtml = (html, map) => {\n const el = document.createElement('div');\n el.innerHTML = html;\n\n let htmlMap = {};\n for (var key in map) {\n if (map.hasOwnProperty(key)) {\n htmlMap[key] = el.querySelector(map[key]);\n }\n }\n\n return htmlMap;\n};\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 */\nconst 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\nconst lockScroll = () => {\n $('body, html').css('overflow-y', 'hidden');\n $('body, html').css('position', 'fixed'); // iOS issue\n};\n\nconst unlockScroll = () => {\n $('body, html').css('overflow-y', '');\n $('body, html').css('position', ''); // iOS issue\n};\n\nconst cookieExists = (name) => {\n return document.cookie.split(';').filter((item) => {\n return item.trim().indexOf(`${name}=`) === 0;\n }).length;\n};\n\nconst createCookie = (name, value = false, days = 0) => {\n var expires;\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toGMTString();\n } else {\n expires = '';\n }\n document.cookie = name + '=' + value + expires + '; path=/';\n};\n\nexport {\n appendToUrl,\n cookieExists,\n createCookie,\n enqueueTask,\n processInclude,\n parseHtml,\n lockScroll,\n unlockScroll\n};\n","'use strict';\nvar additionDispoHours = parseInt($('#additionalDispoHours').val());\n\nexport class StoreHours {\n run () {\n var daysOfTheWeek = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n this.currentDate = new Date();\n this.today = daysOfTheWeek[this.currentDate.getDay()];\n this.tomorrow = daysOfTheWeek[this.currentDate.getDay() + 1] || daysOfTheWeek[0];\n this.storeHoursList = $('.js-store-hours-list li[data-name=\"' + this.today + '\"]:not(.active)');\n\n this.init();\n this.addEventListeners();\n }\n\n init () {\n var _self = this;\n\n this.storeHoursList.each(function (_idx, storeHours) {\n $(storeHours).addClass('active');\n\n var currentStore = $(storeHours).parents('.js-store-hours');\n var nextPhase = _self.getStoreHoursPhase(storeHours, currentStore);\n\n var isBopis = $(storeHours).parents('.result').hasClass('is-bopis');\n var dispoArrival = isBopis ? _self.getDispoArrival(storeHours, currentStore) : null;\n var noDispoArrival = $('.shipping-method-selected .estimated-delivery-interval').html();\n\n // Check for temporarily closed store\n var isTemporarilyClosed = currentStore.data('temporarily-closed');\n var reopDate = currentStore.data('reopening-date') ? currentStore.data('reopening-date').split('-') : false; // Format: yyyy-mm-dd\n var reopeningDate = reopDate ? new Date(reopDate[0], (reopDate[1] - 1), reopDate[2]) : false;\n\n if (isTemporarilyClosed) {\n if (!reopeningDate) {\n currentStore.find('.js-store-hours-temporarily-closed').removeClass('hidden');\n } else if (_self.currentDate < reopeningDate) {\n currentStore.find('.js-store-hours-temporarily-closed').removeClass('hidden');\n currentStore.find('.js-store-hours-reopens-on').removeClass('hidden');\n nextPhase = reopeningDate.toLocaleDateString($('html').attr('lang'));\n } else {\n isTemporarilyClosed = false;\n }\n }\n\n if (!isTemporarilyClosed) {\n if (_self.isStoreOpen(storeHours)) {\n currentStore.find('.js-store-hours-open').removeClass('hidden');\n currentStore.find('.js-store-hours-open-until').removeClass('hidden');\n } else {\n currentStore.find('.js-store-hours-closed').removeClass('hidden');\n\n if (nextPhase) {\n currentStore.find('.js-store-hours-reopens-at').removeClass('hidden');\n }\n }\n }\n\n currentStore.find('.js-store-next-phase').html(nextPhase);\n\n if (noDispoArrival) {\n currentStore.parent('.result').find('.js-store-dispo-info-collection').html(noDispoArrival.split('-')[0]);\n }\n currentStore.parent('.is-bopis').find('.js-store-dispo-info-collection').html(dispoArrival);\n });\n }\n\n addEventListeners () {\n // Toggle store hours list dropdown\n $('.js-toggle-store-hours').off('click').on('click', function (e) {\n e.preventDefault();\n $(this).find('.js-toggle-store-hours-dropdown').toggleClass('cc-storeHours-rotate');\n $(this).find('.toggle-store-hours-dropdown').toggleClass('cc-storeHours-rotate');\n $(this).closest('.js-store-hours').find('.js-store-hours-list').toggleClass('hidden');\n });\n }\n\n /**\n * Get next store hours phase to be appended to \"open until\" or \"re-opens at\"\n * @param {object} storeHours\n * @param {object} store\n * @returns {string} return next store hours phase\n */\n getStoreHoursPhase (storeHours, store) {\n var phases = $(storeHours).data('first-phase') ? $(storeHours).data('phases').split(' ; ') : false;\n var tomorrowFirstPhase = $('[data-store-id=\"' + store.data('store-id') + '\"] li[data-name=\"' + this.tomorrow + '\"]').data('first-phase');\n var currentPhase = -1;\n\n // Loop through x phases\n for (var i = 0; i < phases.length; i++) {\n var phase = phases[i].split('-'); // Split start and end time\n var startPhase = phase[0].split(':'); // Split hours and mins for\n\n var startDate = new Date(this.currentDate.getTime()); // Create Date object based on currentDate\n startDate.setHours(startPhase[0]); // Set hours and mins based on\n startDate.setMinutes(startPhase[1]);\n\n // Check if today occured a phase\n if (startDate <= this.currentDate) {\n currentPhase = i;\n }\n }\n\n var nextPhase;\n\n if (this.isStoreOpen(storeHours)) {\n // If store is open returns current phase end time\n nextPhase = phases[currentPhase].split('-')[1];\n } else if (currentPhase < phases.length - 1) {\n // Store closed, show next phase start time if available\n nextPhase = phases[currentPhase + 1].split('-')[0];\n } else if (tomorrowFirstPhase) {\n var tomorrowStartTime = tomorrowFirstPhase.split(':');\n if (phases || (this.currentDate.getHours() >= tomorrowStartTime[0] && this.currentDate.getMinutes() >= tomorrowStartTime[1])) {\n // End of phases show next day start time if available\n nextPhase = tomorrowFirstPhase;\n }\n } else {\n // End of phases and closed next day\n nextPhase = false;\n }\n\n return nextPhase || false;\n }\n\n /**\n * Check if store is open in a specific date\n * @param {object} storeHours\n * @returns {boolean} return next phase if open, otherwise false\n */\n isStoreOpen (storeHours) {\n var phases = $(storeHours).data('first-phase') ? $(storeHours).data('phases').split(' ; ') : false;\n var isStoreOpen = false;\n\n // Check if today has store hours\n if (!phases) {\n return false;\n }\n\n // Loop through x phases\n for (var i = 0; i < phases.length; i++) {\n // Split phases to start and end\n var phase = phases[i].split('-');\n // Split time to hours and minutes\n var startPhase = phase[0].split(':');\n var endPhase = phase[1] ? phase[1].split(':') : '';\n\n // Create Date object based on currentDate and fill with new data\n var startDate = new Date(this.currentDate.getTime());\n startDate.setHours(startPhase[0]);\n startDate.setMinutes(startPhase[1]);\n\n var endDate = new Date(this.currentDate.getTime());\n // If start time hour is greater than end time hour (e.g. 16:00-03:00) the end time must be valued as the day after\n if (startPhase[0] > endPhase[0]) {\n endDate.setDate(endDate.getDate() + 1);\n }\n\n endDate.setHours(endPhase[0]);\n endDate.setMinutes(endPhase[1]);\n\n // Check if currentDate is between start and end time\n if (startDate <= this.currentDate && endDate > this.currentDate) {\n isStoreOpen = true;\n }\n }\n\n return isStoreOpen;\n }\n\n // Function to convert hours and minutes to total minutes\n convertToMinutes (hoursAndMinutes) {\n var hours = hoursAndMinutes[0];\n var minutes = hoursAndMinutes[1];\n return hours * 60 + minutes;\n }\n\n // Function to convert total minutes to hours and minutes\n convertToHoursAndMinutes (totalMinutes) {\n var hours = Math.floor(totalMinutes / 60);\n var minutes = totalMinutes % 60;\n return [hours, minutes];\n }\n\n // Function that returns the hours in which the disponibilità allargata shipping will be available considering the closing times\n getDispoArrival (storeHours, store) {\n var _self = this;\n\n var phases = $(storeHours).data('phases') ? $(storeHours).data('phases').split(' / ') : false;\n var tomorrowFirstPhase = $('[data-store-id=\"' + store.data('store-id') + '\"] li[data-name=\"' + this.tomorrow + '\"]').data('first-phase');\n var currentPhase = -1;\n var isTomorrow = false;\n\n // Loop through x phases\n for (var i = 0; i < phases.length; i++) {\n var phase = phases[i].split('-'); // Split start and end time\n var startPhase = phase[0].split(':'); // Split hours and mins for\n\n var startDate = new Date(this.currentDate.getTime()); // Create Date object based on currentDate\n var currentHourArray = [startDate.getHours(), startDate.getMinutes()];\n startDate.setHours(startPhase[0]); // Set hours and mins based on\n startDate.setMinutes(startPhase[1]);\n\n // Check if today occured a phase\n if (startDate <= this.currentDate) {\n currentPhase = i;\n }\n }\n var endCurrentPhaseArray = currentPhase > -1 ? ((phases[currentPhase].split('-'))[1]).split(':') : false;\n\n var nextPhase;\n\n if (this.isStoreOpen(storeHours) && _self.isStoreOpenInThreeHours(phases[currentPhase])) {\n // If store is open returns current phase end time\n nextPhase = phases[currentPhase].split('-')[1];\n } else if (currentPhase < phases.length - 1) {\n // Store closed, show next phase start time if available\n nextPhase = phases[currentPhase + 1].split('-')[0];\n } else if (tomorrowFirstPhase) {\n var tomorrowStartTime = tomorrowFirstPhase.split(':');\n if (phases || (this.currentDate.getHours() >= tomorrowStartTime[0] && this.currentDate.getMinutes() >= tomorrowStartTime[1])) {\n // End of phases show next day start time if available\n nextPhase = tomorrowFirstPhase;\n isTomorrow = true;\n }\n } else {\n // End of phases and closed next day\n nextPhase = false;\n }\n var nextPhaseArray = nextPhase.split(':');\n nextPhaseArray = [parseInt(nextPhaseArray[0]), parseInt(nextPhaseArray[1])];\n var dispoArrivalHour;\n var dispoMinutes;\n // If the store is closed\n if (!endCurrentPhaseArray) {\n dispoMinutes = nextPhaseArray[1] < 10 ? '0' + parseInt(nextPhaseArray[1]) : parseInt(nextPhaseArray[1]);\n dispoArrivalHour = (parseInt(nextPhaseArray[0]) + additionDispoHours) + ':' + dispoMinutes;\n } else {\n endCurrentPhaseArray = [parseInt(endCurrentPhaseArray[0]), parseInt(endCurrentPhaseArray[1])];\n // If the store will not be closed in three hours\n if (parseInt(currentHourArray[0]) + additionDispoHours < endCurrentPhaseArray[0]) {\n dispoMinutes = parseInt(currentHourArray[1]) < 10 ? '0' + parseInt(currentHourArray[1]) : parseInt(currentHourArray[1]);\n dispoArrivalHour = (parseInt(currentHourArray[0]) + additionDispoHours) + ':' + dispoMinutes;\n store.parents('.result').find('.today-bopis').removeClass('hidden');\n store.parents('.result').find('.tomorrow-bopis').remove();\n } else if (isTomorrow) {\n var currentMinutes = _self.convertToMinutes(currentHourArray);\n var endPhaseMinutes = _self.convertToMinutes(endCurrentPhaseArray);\n var nextPhaseMinutes = _self.convertToMinutes(nextPhaseArray);\n var residualMinutes = endPhaseMinutes - currentMinutes;\n nextPhaseMinutes = nextPhaseMinutes + (additionDispoHours * 60) - residualMinutes;\n var newCurrentHourArray = _self.convertToHoursAndMinutes(nextPhaseMinutes);\n newCurrentHourArray[1] = parseInt(newCurrentHourArray[1]) < 10 ? '0' + parseInt(newCurrentHourArray[1]) : parseInt(newCurrentHourArray[1]);\n // nextPhaseArray[0] = parseInt(nextPhaseArray[0]) + additionDispoHours;\n // nextPhaseArray[1] = parseInt(nextPhaseArray[1]) < 10 ? '0' + parseInt(nextPhaseArray[1]) : parseInt(nextPhaseArray[1]);\n dispoArrivalHour = newCurrentHourArray.join(':');\n store.parents('.result').find('.today-bopis').remove();\n store.parents('.result').find('.tomorrow-bopis').removeClass('hidden');\n } else {\n // If the store will be closed in three hours\n // Convert the current time and closing time to total minutes\n var currentMinutes = _self.convertToMinutes(currentHourArray);\n var endPhaseMinutes = _self.convertToMinutes(endCurrentPhaseArray);\n var nextPhaseMinutes = _self.convertToMinutes(nextPhaseArray);\n var residualMinutes = endPhaseMinutes - currentMinutes;\n nextPhaseMinutes = nextPhaseMinutes + (additionDispoHours * 60) - residualMinutes;\n var newCurrentHourArray = _self.convertToHoursAndMinutes(nextPhaseMinutes);\n newCurrentHourArray[1] = parseInt(newCurrentHourArray[1]) < 10 ? '0' + parseInt(newCurrentHourArray[1]) : parseInt(newCurrentHourArray[1]);\n dispoArrivalHour = newCurrentHourArray.join(':');\n store.parents('.result').find('.today-bopis').removeClass('hidden');\n store.parents('.result').find('.tomorrow-bopis').remove();\n }\n }\n dispoArrivalHour = _self.reachNextQuarter(dispoArrivalHour);\n return dispoArrivalHour || false;\n }\n\n isStoreOpenInThreeHours (currentPhase) {\n var currentPhaseArray = currentPhase.split('-');\n var nowInThreeHourse = new Date();\n nowInThreeHourse.setHours(nowInThreeHourse.getHours() + additionDispoHours);\n var closingHourArray = currentPhaseArray[1].split(':');\n var closingDate = new Date();\n closingDate.setHours(closingHourArray[0]);\n closingDate.setMinutes(closingHourArray[1]);\n return closingDate > nowInThreeHourse;\n }\n\n reachNextQuarter (dispoArrivalHour) {\n var [hours, minutes] = dispoArrivalHour.split(':').map(Number);\n var totalMinutes = hours * 60 + minutes;\n var roundedMinutes = Math.ceil(totalMinutes / 15) * 15;\n var roundedHours = Math.floor(roundedMinutes / 60);\n var remainingMinutes = roundedMinutes % 60;\n var roundedTime = `${String(roundedHours).padStart(2, '0')}:${String(remainingMinutes).padStart(2, '0')}`;\n return roundedTime;\n }\n}\n\nconst storeHoursObject = new StoreHours();\nexport default storeHoursObject;\n"],"sourceRoot":""}