PageSourceSearch

https://www.columbiasportswear.it/on/demandware.static/Sites-Colum…/-/it_IT/v1790387193026/js/emailPopup.js

js columbiasportswear.it collected 2026-09-26 11:53:40 UTC 17,784 bytes, 468 lines download raw bytes

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.