vendor: 3,634 bytes, lines 1-88
1/******/ (function(modules) { // webpackBootstrap 2/******/ // The module cache 3/******/ var installedModules = {}; 4/******/ 5/******/ // The require function 6/******/ function __webpack_require__(moduleId) { 7/******/ 8/******/ // Check if module is in cache 9/******/ if(installedModules[moduleId]) { 10/******/ return installedModules[moduleId].exports; 11/******/ } 12/******/ // Create a new module (and put it into the cache) 13/******/ var module = installedModules[moduleId] = { 14/******/ i: moduleId, 15/******/ l: false, 16/******/ exports: {} 17/******/ }; 18/******/ 19/******/ // Execute the module function 20/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 21/******/ 22/******/ // Flag the module as loaded 23/******/ module.l = true; 24/******/ 25/******/ // Return the exports of the module 26/******/ return module.exports; 27/******/ } 28/******/ 29/******/ 30/******/ // expose the modules object (__webpack_modules__) 31/******/ __webpack_require__.m = modules; 32/******/ 33/******/ // expose the module cache 34/******/ __webpack_require__.c = installedModules; 35/******/ 36/******/ // define getter function for harmony exports 37/******/ __webpack_require__.d = function(exports, name, getter) { 38/******/ if(!__webpack_require__.o(exports, name)) { 39/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 40/******/ } 41/******/ }; 42/******/ 43/******/ // define __esModule on exports 44/******/ __webpack_require__.r = function(exports) { 45/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 46/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 47/******/ } 48/******/ Object.defineProperty(exports, '__esModule', { value: true }); 49/******/ }; 50/******/ 51/******/ // create a fake namespace object 52/******/ // mode & 1: value is a module id, require it 53/******/ // mode & 2: merge all properties of value into the ns 54/******/ // mode & 4: return value when already ns object 55/******/ // mode & 8|1: behave like require 56/******/ __webpack_require__.t = function(value, mode) { 57/******/ if(mode & 1) value = __webpack_require__(value); 58/******/ if(mode & 8) return value; 59/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 60/******/ var ns = Object.create(null); 61/******/ __webpack_require__.r(ns); 62/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 63/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 64/******/ return ns; 65/******/ }; 66/******/ 67/******/ // getDefaultExport function for compatibility with non-harmony modules 68/******/ __webpack_require__.n = function(module) { 69/******/ var getter = module && module.__esModule ? 70/******/ function getDefault() { return module['default']; } : 71/******/ function getModuleExports() { return module; }; 72/******/ __webpack_require__.d(getter, 'a', getter); 73/******/ return getter; 74/******/ }; 75/******/ 76/******/ // Object.prototype.hasOwnProperty.call 77/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 78/******/ 79/******/ // __webpack_public_path__ 80/******/ __webpack_require__.p = ""; 81/******/ 82/******/ 83/******/ // Load entry module and return exports 84/******/ return __webpack_require__(__webpack_require__.s = "./.tmp/app_col_eu_core/js/emailPopup.js"); 85/******/ }) 86/************************************************************************/ 87/******/ ({ 88
89/***/ "./.tmp/app_col_eu_core/js/components/breakpoints.js": 90/*!***********************************************************!*\ 91 !*** ./.tmp/app_col_eu_core/js/components/breakpoints.js ***! 92 \***********************************************************/ 93/*! no static exports found */ 94/***/ (function(module, exports, __webpack_require__) { 95 96"use strict"; 97 98 99/** 100* Checks if the current bootstrap UI breakpoint matches the breakpoint abbreviation. 101* @param {string} breakpointAbbreviation Breakpoint abbreviations. Options are: xs, sm, md, lg, xl 102* @returns {boolean} True if the breakpoint abbreviation is the current breakpoint. 103*/ 104function isCurrentBreakpointAbbreviation(breakpointAbbreviation) { 105 if (!['xs', 'sm', 'md', 'lg', 'xl', '2xl'].includes(breakpointAbbreviation)) { 106 throw new Error('Invalid breakpoint abbreviation: ' + breakpointAbbreviation); 107 } 108 var selector = '.bootstrap-breakpoints-' + breakpointAbbreviation; 109 var $breakpointIndicator = $(selector); 110 if ($breakpointIndicator.length === 0) { 111 throw new Error('Breakpoint indicator not found for: ' + breakpointAbbreviation); 112 } 113 return $breakpointIndicator.css('display') === 'block'; 114} 115 116/** 117 * Finds the current breakpoint from the hidden .bootstrap-breakpoints element. 118 * @returns {string} The currently active breakpoint abbreviation. ('xs', 'sm', 'md', 'lg', or 'xl') 119 */ 120function getCurrentBreakpoint() { 121 var $breakpointIndicators = $('.bootstrap-breakpoints > div'); 122 var currentBP; 123 $breakpointIndicators.each(function () { 124 var $bpIndicator = $(this); 125 if ($bpIndicator.css('display') === 'block') { 126 currentBP = $bpIndicator.data('bp'); 127 return false; // break out of the each loop 128 } 129 130 return true; // continue to next item in loop 131 }); 132 133 return currentBP; 134} 135module.exports = { 136 /** 137 * This check is only for the resolution of the screen, it should 138 * not be used to infer device type or user interaction (touch/click). 139 * @returns {boolean} True if the screen is low resolution. 140 */ 141 isLowRes: function isLowRes() { 142 return this.isCurrentBreakpoint('xs', 'sm', 'md'); 143 }, 144 /** 145 * This check is only for the resolution of the screen, it should 146 * not be used to infer device type or user interaction (touch/click). 147 * @returns {boolean} True if the screen is high resolution. 148 */ 149 isHighRes: function isHighRes() { 150 return this.isCurrentBreakpoint('lg', 'xl', '2xl'); 151 }, 152 /** 153 * Checks if the current bootstrap UI breakpoint matches a parameter. 154 * @example isCurrentBreakpoint('xs', 'sm') 155 * @param {arguments} breakpointAbbreviations One of more comma separated string breakpoint parameters. Options are: xs, sm, md, lg, xl 156 * @returns {boolean} True if any of the breakpoint abbreviations are the current breakpoint. 157 */ 158 isCurrentBreakpoint: function isCurrentBreakpoint() { 159 if (arguments.length === 0) { 160 throw new Error('No breakpoint abbreviations specified.'); 161 } 162 for (var i = 0, len = arguments.length; i < len; i++) { 163 var abbreviation = arguments[i]; 164 if (isCurrentBreakpointAbbreviation(abbreviation)) { 165 return true; 166 } 167 } 168 169 /** 170 * NOTE: it is explicitly intentional that this function accepts the breakpoint abbreviations and returns a boolean. 171 * If the function was instead 'getCurrentBreakpoint' where it returns the breakpoint abbreviation... 172 * then it might make future refactors and bootstrap updates more difficult if the abbreviations change 173 * because the return value may not be consumed near the function call (difficult to track/update). 174 */ 175 return false; 176 }, 177 getCurrentBreakpoint: getCurrentBreakpoint 178}; 179 180/***/ }), 181
182/***/ "./.tmp/app_col_eu_core/js/components/processInclude.js": 183/*!**************************************************************!*\ 184 !*** ./.tmp/app_col_eu_core/js/components/processInclude.js ***! 185 \**************************************************************/ 186/*! no static exports found */ 187/***/ (function(module, exports, __webpack_require__) { 188 189"use strict"; 190 191 192function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 193module.exports = function (include) { 194 if (typeof include === 'function') { 195 include(); 196 } else if (_typeof(include) === 'object') { 197 Object.keys(include).forEach(function (key) { 198 if (typeof include[key] === 'function') { 199 include[key](); 200 } 201 }); 202 } 203}; 204 205/***/ }), 206
207/***/ "./.tmp/app_col_eu_core/js/emailPopup.js": 208/*!***********************************************!*\ 209 !*** ./.tmp/app_col_eu_core/js/emailPopup.js ***! 210 \***********************************************/ 211/*! no static exports found */ 212/***/ (function(module, exports, __webpack_require__) { 213 214"use strict"; 215 216 217var processInclude = __webpack_require__(/*! ./components/processInclude */ "./.tmp/app_col_eu_core/js/components/processInclude.js"); 218$(document).ready(function () { 219 processInclude(__webpack_require__(/*! ./emailPopup/emailPopup */ "./.tmp/app_col_eu_core/js/emailPopup/emailPopup.js")); 220}); 221 222/***/ }), 223
224/***/ "./.tmp/app_col_eu_core/js/emailPopup/emailPopup.js": 225/*!**********************************************************!*\ 226 !*** ./.tmp/app_col_eu_core/js/emailPopup/emailPopup.js ***! 227 \**********************************************************/ 228/*! no static exports found */ 229/***/ (function(module, exports, __webpack_require__) { 230 231"use strict"; 232 233 234var Cookies = __webpack_require__(/*! js-cookie/src/js.cookie */ "./node_modules/js-cookie/src/js.cookie.js"); 235var breakpoints = __webpack_require__(/*! ../components/breakpoints */ "./.tmp/app_col_eu_core/js/components/breakpoints.js"); 236module.exports = { 237 showModal: function showModal() { 238 var $emailSignupModal = $('.email-signup-modal'); 239 var $hideOnMobile = $emailSignupModal.hasClass('js-disabled-mobile') && breakpoints.isLowRes() || false; 240 /** 241 * Displays the modal after the timeout concludes and/or during an exit intent scenario. 242 */ 243 function displayModal() { 244 var domain = window.location.host.replace('www.', ''); 245 var cookieDays = $emailSignupModal.data('expires') || 'session'; // days until cookie expires (or 'session') 246 var cookieOptions = { 247 // path: '/', // the default path is '/'. 248 domain: domain 249 }; 250 if (cookieDays !== 'session') { 251 cookieOptions.expires = cookieDays; 252 } // if cookieDays IS 'session', do NOT set expires on the cookieOptions object. 253 254 $emailSignupModal.modal('show'); 255 // set the cookie 256 Cookies.set(cookieName, 1, cookieOptions); // eslint-disable-line 257 } 258 259 if ($emailSignupModal.length) { 260 var cookieName = $emailSignupModal.data('cookie') || 'unnamedModal'; 261 if (!Cookies.get(cookieName) && !$hideOnMobile) { 262 window.setTimeout(function () { 263 displayModal(); 264 }, $emailSignupModal.data('timeout')); 265 } 266 } 267 }, 268 submitForm: function submitForm() { 269 $('.email-signup-popup-form').on('submit', function (e) { 270 e.preventDefault(); 271 var $form = $(this); 272 var url = $form.attr('action'); 273 $.ajax({ 274 url: url, 275 type: 'post', 276 dataType: 'json', 277 data: $form.serialize(), 278 success: function success(data) { 279 if (data.success) { 280 $('.signup-form-container').addClass('d-none'); 281 $('.signup-success-container').removeClass('d-none'); // Checkout shipping radio 282 283 if ('dtmLayer' in data && 'digitalData' in window) { 284 if (data.dtmLayer.page && data.dtmLayer.page.form && window.digitalData.page && window.digitalData.page.form) { 285 window.digitalData.page.form.registrationType = data.dtmLayer.page.form.registrationType; 286 } 287 if (data.dtmLayer.user) { 288 window.digitalData.user = data.dtmLayer.user; 289 } 290 } 291 } else { 292 $form.find('.email-subscribed-error').removeClass('d-none'); 293 } 294 } 295 }); 296 }); 297 },
298 showDetails: function showDetails() { 299 $('.details-btn-link').on('click', function () { 300 $('.signup-form-container').addClass('d-none'); 301 $('.details-back-btn').removeClass('d-none').addClass('d-flex'); 302 $('.signup-details-container').removeClass('d-none'); 303 }); 304 }, 305 backButton: function backButton() { 306 $('.details-back-btn').on('click', function () { 307 $('.signup-form-container').removeClass('d-none'); 308 $('.details-back-btn').addClass('d-none').removeClass('d-flex'); 309 $('.signup-details-container').addClass('d-none'); 310 }); 311 } 312}; 313 314/***/ }), 315
vendor: 5,245 bytes, lines 316-465
316/***/ "./node_modules/js-cookie/src/js.cookie.js": 317/*!*************************************************!*\ 318 !*** ./node_modules/js-cookie/src/js.cookie.js ***! 319 \*************************************************/ 320/*! no static exports found */ 321/***/ (function(module, exports, __webpack_require__) { 322 323var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 324/*! 325 * JavaScript Cookie v2.2.1 326 * https://github.com/js-cookie/js-cookie 327 * 328 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack 329 * Released under the MIT license 330 */ 331; 332(function (factory) { 333 var registeredInModuleLoader; 334 if (true) { 335 !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 336 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 337 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 338 __WEBPACK_AMD_DEFINE_FACTORY__), 339 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 340 registeredInModuleLoader = true; 341 } 342 if (( false ? undefined : _typeof(exports)) === 'object') { 343 module.exports = factory(); 344 registeredInModuleLoader = true; 345 } 346 if (!registeredInModuleLoader) { 347 var OldCookies = window.Cookies; 348 var api = window.Cookies = factory(); 349 api.noConflict = function () { 350 window.Cookies = OldCookies; 351 return api; 352 }; 353 } 354})(function () { 355 function extend() { 356 var i = 0; 357 var result = {}; 358 for (; i < arguments.length; i++) { 359 var attributes = arguments[i]; 360 for (var key in attributes) { 361 result[key] = attributes[key]; 362 } 363 } 364 return result; 365 } 366 function decode(s) { 367 return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); 368 } 369 function init(converter) { 370 function api() {} 371 function set(key, value, attributes) { 372 if (typeof document === 'undefined') { 373 return; 374 } 375 attributes = extend({ 376 path: '/' 377 }, api.defaults, attributes); 378 if (typeof attributes.expires === 'number') { 379 attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5); 380 } 381 382 // We're using "expires" because "max-age" is not supported by IE 383 attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; 384 try { 385 var result = JSON.stringify(value); 386 if (/^[\{\[]/.test(result)) { 387 value = result; 388 } 389 } catch (e) {} 390 value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); 391 key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape); 392 var stringifiedAttributes = ''; 393 for (var attributeName in attributes) { 394 if (!attributes[attributeName]) { 395 continue; 396 } 397 stringifiedAttributes += '; ' + attributeName; 398 if (attributes[attributeName] === true) { 399 continue; 400 } 401 402 // Considers RFC 6265 section 5.2: 403 // ... 404 // 3. If the remaining unparsed-attributes contains a %x3B (";") 405 // character: 406 // Consume the characters of the unparsed-attributes up to, 407 // not including, the first %x3B (";") character. 408 // ... 409 stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; 410 } 411 return document.cookie = key + '=' + value + stringifiedAttributes; 412 } 413 function get(key, json) { 414 if (typeof document === 'undefined') { 415 return; 416 } 417 var jar = {}; 418 // To prevent the for loop in the first place assign an empty array 419 // in case there are no cookies at all. 420 var cookies = document.cookie ? document.cookie.split('; ') : []; 421 var i = 0; 422 for (; i < cookies.length; i++) { 423 var parts = cookies[i].split('='); 424 var cookie = parts.slice(1).join('='); 425 if (!json && cookie.charAt(0) === '"') { 426 cookie = cookie.slice(1, -1); 427 } 428 try { 429 var name = decode(parts[0]); 430 cookie = (converter.read || converter)(cookie, name) || decode(cookie); 431 if (json) { 432 try { 433 cookie = JSON.parse(cookie); 434 } catch (e) {} 435 } 436 jar[name] = cookie; 437 if (key === name) { 438 break; 439 } 440 } catch (e) {} 441 } 442 return key ? jar[key] : jar; 443 } 444 api.set = set; 445 api.get = function (key) { 446 return get(key, false /* read as raw */); 447 }; 448 449 api.getJSON = function (key) { 450 return get(key, true /* read as json */); 451 }; 452 453 api.remove = function (key, attributes) { 454 set(key, '', extend(attributes, { 455 expires: -1 456 })); 457 }; 458 api.defaults = {}; 459 api.withConverter = init; 460 return api; 461 } 462 return init(function () {}); 463}); 464 465/***/ })
465 466 467/******/ }); 468//# sourceMappingURL=emailPopup.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.