1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ 2function _OverloadYield(e, d) { 3 this.v = e, this.k = d; 4} 5module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports; 6},{}],2:[function(require,module,exports){ 7function _arrayLikeToArray(r, a) { 8 (null == a || a > r.length) && (a = r.length); 9 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; 10 return n; 11} 12module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; 13},{}],3:[function(require,module,exports){ 14var arrayLikeToArray = require("./arrayLikeToArray.js"); 15function _arrayWithoutHoles(r) { 16 if (Array.isArray(r)) return arrayLikeToArray(r); 17} 18module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; 19},{"./arrayLikeToArray.js":2}],4:[function(require,module,exports){ 20function asyncGeneratorStep(n, t, e, r, o, a, c) { 21 try { 22 var i = n[a](c), 23 u = i.value; 24 } catch (n) { 25 return void e(n); 26 } 27 i.done ? t(u) : Promise.resolve(u).then(r, o); 28} 29function _asyncToGenerator(n) { 30 return function () { 31 var t = this, 32 e = arguments; 33 return new Promise(function (r, o) { 34 var a = n.apply(t, e); 35 function _next(n) { 36 asyncGeneratorStep(a, r, o, _next, _throw, "next", n); 37 } 38 function _throw(n) { 39 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); 40 } 41 _next(void 0); 42 }); 43 }; 44} 45module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; 46},{}],5:[function(require,module,exports){ 47var toPropertyKey = require("./toPropertyKey.js"); 48function _defineProperty(e, r, t) { 49 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { 50 value: t, 51 enumerable: !0, 52 configurable: !0, 53 writable: !0 54 }) : e[r] = t, e; 55} 56module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; 57},{"./toPropertyKey.js":19}],6:[function(require,module,exports){ 58function _interopRequireDefault(e) { 59 return e && e.__esModule ? e : { 60 "default": e 61 }; 62} 63module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; 64},{}],7:[function(require,module,exports){ 65function _iterableToArray(r) { 66 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); 67} 68module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; 69},{}],8:[function(require,module,exports){ 70function _nonIterableSpread() { 71 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 72} 73module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; 74},{}],9:[function(require,module,exports){ 75var regeneratorDefine = require("./regeneratorDefine.js"); 76function _regenerator() { 77 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ 78 var e, 79 t, 80 r = "function" == typeof Symbol ? Symbol : {}, 81 n = r.iterator || "@@iterator", 82 o = r.toStringTag || "@@toStringTag"; 83 function i(r, n, o, i) { 84 var c = n && n.prototype instanceof Generator ? n : Generator, 85 u = Object.create(c.prototype); 86 return regeneratorDefine(u, "_invoke", function (r, n, o) { 87 var i, 88 c, 89 u, 90 f = 0, 91 p = o || [], 92 y = !1, 93 G = { 94 p: 0, 95 n: 0, 96 v: e, 97 a: d, 98 f: d.bind(e, 4), 99 d: function d(t, r) { 100 return i = t, c = 0, u = e, G.n = r, a; 101 } 102 }; 103 function d(r, n) { 104 for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { 105 var o, 106 i = p[t],
vendor: 7,116 bytes, lines 107-278
107 d = G.p, 108 l = i[2]; 109 r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); 110 } 111 if (o || r > 1) return a; 112 throw y = !0, n; 113 } 114 return function (o, p, l) { 115 if (f > 1) throw TypeError("Generator is already running"); 116 for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { 117 i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); 118 try { 119 if (f = 2, i) { 120 if (c || (o = "next"), t = i[o]) { 121 if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); 122 if (!t.done) return t; 123 u = t.value, c < 2 && (c = 0); 124 } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); 125 i = e; 126 } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; 127 } catch (t) { 128 i = e, c = 1, u = t; 129 } finally { 130 f = 1; 131 } 132 } 133 return { 134 value: t, 135 done: y 136 }; 137 }; 138 }(r, o, i), !0), u; 139 } 140 var a = {}; 141 function Generator() {} 142 function GeneratorFunction() {} 143 function GeneratorFunctionPrototype() {} 144 t = Object.getPrototypeOf; 145 var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () { 146 return this; 147 }), t), 148 u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); 149 function f(e) { 150 return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; 151 } 152 return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () { 153 return this; 154 }), regeneratorDefine(u, "toString", function () { 155 return "[object Generator]"; 156 }), (module.exports = _regenerator = function _regenerator() { 157 return { 158 w: i, 159 m: f 160 }; 161 }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); 162} 163module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; 164},{"./regeneratorDefine.js":13}],10:[function(require,module,exports){ 165var regeneratorAsyncGen = require("./regeneratorAsyncGen.js"); 166function _regeneratorAsync(n, e, r, t, o) { 167 var a = regeneratorAsyncGen(n, e, r, t, o); 168 return a.next().then(function (n) { 169 return n.done ? n.value : a.next(); 170 }); 171} 172module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports; 173},{"./regeneratorAsyncGen.js":11}],11:[function(require,module,exports){ 174var regenerator = require("./regenerator.js"); 175var regeneratorAsyncIterator = require("./regeneratorAsyncIterator.js"); 176function _regeneratorAsyncGen(r, e, t, o, n) { 177 return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise); 178} 179module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports; 180},{"./regenerator.js":9,"./regeneratorAsyncIterator.js":12}],12:[function(require,module,exports){ 181var OverloadYield = require("./OverloadYield.js"); 182var regeneratorDefine = require("./regeneratorDefine.js"); 183function AsyncIterator(t, e) { 184 function n(r, o, i, f) { 185 try { 186 var c = t[r](o), 187 u = c.value; 188 return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) { 189 n("next", t, i, f); 190 }, function (t) { 191 n("throw", t, i, f); 192 }) : e.resolve(u).then(function (t) { 193 c.value = t, i(c); 194 }, function (t) { 195 return n("throw", t, i, f); 196 }); 197 } catch (t) { 198 f(t); 199 } 200 } 201 var r; 202 this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () { 203 return this; 204 })), regeneratorDefine(this, "_invoke", function (t, o, i) { 205 function f() { 206 return new e(function (e, r) { 207 n(t, i, e, r); 208 }); 209 } 210 return r = r ? r.then(f, f) : f(); 211 }, !0); 212} 213module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports; 214},{"./OverloadYield.js":1,"./regeneratorDefine.js":13}],13:[function(require,module,exports){ 215function _regeneratorDefine(e, r, n, t) { 216 var i = Object.defineProperty; 217 try { 218 i({}, "", {}); 219 } catch (e) { 220 i = 0; 221 } 222 module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) { 223 function o(r, n) { 224 _regeneratorDefine(e, r, function (e) { 225 return this._invoke(r, n, e); 226 }); 227 } 228 r ? i ? i(e, r, { 229 value: n, 230 enumerable: !t, 231 configurable: !t, 232 writable: !t 233 }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); 234 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t); 235} 236module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports; 237},{}],14:[function(require,module,exports){ 238function _regeneratorKeys(e) { 239 var n = Object(e), 240 r = []; 241 for (var t in n) r.unshift(t); 242 return function e() { 243 for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; 244 return e.done = !0, e; 245 }; 246} 247module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports; 248},{}],15:[function(require,module,exports){ 249var OverloadYield = require("./OverloadYield.js"); 250var regenerator = require("./regenerator.js"); 251var regeneratorAsync = require("./regeneratorAsync.js"); 252var regeneratorAsyncGen = require("./regeneratorAsyncGen.js"); 253var regeneratorAsyncIterator = require("./regeneratorAsyncIterator.js"); 254var regeneratorKeys = require("./regeneratorKeys.js"); 255var regeneratorValues = require("./regeneratorValues.js"); 256function _regeneratorRuntime() { 257 "use strict"; 258 259 var r = regenerator(), 260 e = r.m(_regeneratorRuntime), 261 t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor; 262 function n(r) { 263 var e = "function" == typeof r && r.constructor; 264 return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); 265 } 266 var o = { 267 "throw": 1, 268 "return": 2, 269 "break": 3, 270 "continue": 3 271 }; 272 function a(r) { 273 var e, t; 274 return function (n) { 275 e || (e = { 276 stop: function stop() { 277 return t(n.a, 2); 278 },
279 "catch": function _catch() { 280 return n.v; 281 }, 282 abrupt: function abrupt(r, e) { 283 return t(n.a, o[r], e); 284 }, 285 delegateYield: function delegateYield(r, o, a) { 286 return e.resultName = o, t(n.d, regeneratorValues(r), a); 287 }, 288 finish: function finish(r) { 289 return t(n.f, r); 290 } 291 }, t = function t(r, _t, o) { 292 n.p = e.prev, n.n = e.next; 293 try { 294 return r(_t, o); 295 } finally { 296 e.next = n.n; 297 } 298 }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; 299 try { 300 return r.call(this, e); 301 } finally { 302 n.p = e.prev, n.n = e.next; 303 } 304 }; 305 } 306 return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() { 307 return { 308 wrap: function wrap(e, t, n, o) { 309 return r.w(a(e), t, n, o && o.reverse()); 310 }, 311 isGeneratorFunction: n, 312 mark: r.m, 313 awrap: function awrap(r, e) { 314 return new OverloadYield(r, e); 315 }, 316 AsyncIterator: regeneratorAsyncIterator, 317 async: function async(r, e, t, o, u) { 318 return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u); 319 }, 320 keys: regeneratorKeys, 321 values: regeneratorValues 322 }; 323 }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); 324} 325module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; 326},{"./OverloadYield.js":1,"./regenerator.js":9,"./regeneratorAsync.js":10,"./regeneratorAsyncGen.js":11,"./regeneratorAsyncIterator.js":12,"./regeneratorKeys.js":14,"./regeneratorValues.js":16}],16:[function(require,module,exports){ 327var _typeof = require("./typeof.js")["default"]; 328function _regeneratorValues(e) { 329 if (null != e) { 330 var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], 331 r = 0; 332 if (t) return t.call(e); 333 if ("function" == typeof e.next) return e; 334 if (!isNaN(e.length)) return { 335 next: function next() { 336 return e && r >= e.length && (e = void 0), { 337 value: e && e[r++], 338 done: !e 339 }; 340 } 341 }; 342 } 343 throw new TypeError(_typeof(e) + " is not iterable"); 344} 345module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports; 346},{"./typeof.js":20}],17:[function(require,module,exports){ 347var arrayWithoutHoles = require("./arrayWithoutHoles.js"); 348var iterableToArray = require("./iterableToArray.js"); 349var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); 350var nonIterableSpread = require("./nonIterableSpread.js"); 351function _toConsumableArray(r) { 352 return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread(); 353} 354module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports; 355},{"./arrayWithoutHoles.js":3,"./iterableToArray.js":7,"./nonIterableSpread.js":8,"./unsupportedIterableToArray.js":21}],18:[function(require,module,exports){ 356var _typeof = require("./typeof.js")["default"]; 357function toPrimitive(t, r) { 358 if ("object" != _typeof(t) || !t) return t; 359 var e = t[Symbol.toPrimitive]; 360 if (void 0 !== e) { 361 var i = e.call(t, r || "default"); 362 if ("object" != _typeof(i)) return i; 363 throw new TypeError("@@toPrimitive must return a primitive value."); 364 } 365 return ("string" === r ? String : Number)(t); 366} 367module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; 368},{"./typeof.js":20}],19:[function(require,module,exports){ 369var _typeof = require("./typeof.js")["default"]; 370var toPrimitive = require("./toPrimitive.js"); 371function toPropertyKey(t) { 372 var i = toPrimitive(t, "string"); 373 return "symbol" == _typeof(i) ? i : i + ""; 374} 375module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; 376},{"./toPrimitive.js":18,"./typeof.js":20}],20:[function(require,module,exports){ 377function _typeof(o) { 378 "@babel/helpers - typeof"; 379 380 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { 381 return typeof o; 382 } : function (o) { 383 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; 384 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); 385} 386module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; 387},{}],21:[function(require,module,exports){ 388var arrayLikeToArray = require("./arrayLikeToArray.js"); 389function _unsupportedIterableToArray(r, a) { 390 if (r) { 391 if ("string" == typeof r) return arrayLikeToArray(r, a); 392 var t = {}.toString.call(r).slice(8, -1); 393 return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0; 394 } 395} 396module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; 397},{"./arrayLikeToArray.js":2}],22:[function(require,module,exports){ 398// TODO(Babel 8): Remove this file. 399 400var runtime = require("../helpers/regeneratorRuntime")(); 401module.exports = runtime; 402 403// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= 404try { 405 regeneratorRuntime = runtime; 406} catch (accidentalStrictMode) { 407 if (typeof globalThis === "object") { 408 globalThis.regeneratorRuntime = runtime; 409 } else { 410 Function("r", "regeneratorRuntime = r")(runtime); 411 } 412} 413 414},{"../helpers/regeneratorRuntime":15}],23:[function(require,module,exports){ 415/** 416 * @category Cookies 417 * @summary Remove a cookie value. 418 * @tutorial 03_Usage 419 * 420 * @description 421 * This method removes a cookie, given a cookie name and optionally, a domain. 422 * @memberOf ILMN 423 * @module clearCookie 424 * @exports clearCookie 425 * @param {string} name - the name of the cookie 426 * @param {string} domain - the domain of the cookie 427 * @example 428 * 429 * clearCookie('ILMN_PrefSegment', '.illumina.com'); 430 */ 431 432var getCookieDomain = require('../getCookieDomain'); 433var getCookie = require('../getCookie'); 434 435function clearCookie(name, domain) { 436 if (!domain) { 437 domain = getCookieDomain(); 438 } 439 if (getCookie(name)) { 440 document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/' + ((domain) ? ";domain=" + domain : ""); 441 } 442} 443 444module.exports = clearCookie; 445},{"../getCookie":24,"../getCookieDomain":25}],24:[function(require,module,exports){ 446/** 447 * @category Cookies 448 * @summary Get the cookie value based on name. 449 * @tutorial 03_Usage 450 * 451 * @description 452 * This Method will return a string value matching the name of the cookie store 453 * @memberOf ILMN 454 * @module getCookie 455 * @exports getCookie 456 * @param {string} name - the name of the cookie 457 * @returns {string} Cookie value 458 * @example 459 * // given that you have a cookie called 'ILMN_PrefSegement' with the value of 'cancer_research' 460 * getCookie('ILMN_PrefSegment') 461 * // => 'cancer_research' 462 */ 463 464function getCookie(cname) { 465 var name = cname + "="; 466 var ca = document.cookie.split(';'); 467 for (var i = 0; i < ca.length; i++) { 468 var c = ca[i]; 469 while (c.charAt(0) == ' ') { 470 c = c.substring(1); 471 } 472 if (c.indexOf(name) == 0) {
473 try { 474 return decodeURIComponent(c.substring(name.length, c.length)); 475 } catch(e) { 476 return c.substring(name.length, c.length); 477 } 478 } 479 } 480 return ""; 481} 482 483module.exports = getCookie; 484},{}],25:[function(require,module,exports){ 485var getEnvironment = require('../getEnvironment'); 486 487/** 488 * @category Cookies 489 * @summary Get cookie domain. 490 * @tutorial 03_Usage 491 * 492 * @description 493 * This method returns the domain of the current site relevant for setting/removing cookies. 494 * @memberOf ILMN 495 * @module getCookieDomain 496 * @exports getCookieDomain 497 * @returns {string} Cookie domain 498 * @example 499 * 500 * var currentCookieDomain = getCookieDomain(); 501 * 502 */ 503 504function getCookieDomain() { 505 var domain = '.illumina.com'; // default 506 if (window.location.href.indexOf("illumina.com.cn") > -1 || window.location.href.indexOf("apac/zh_CN") > -1) { 507 domain = '.illumina.com.cn'; 508 } else if (getEnvironment() === 'localhost') { 509 domain = 'localhost'; 510 } 511 return domain; 512} 513 514module.exports = getCookieDomain; 515},{"../getEnvironment":26}],26:[function(require,module,exports){ 516/** 517 * @category Environment 518 * @summary Gets current server environment and returns it as a kebab-case string 519 * @tutorial 03_Usage 520 * 521 * @description 522 * A module that gets the current AEM or publish environment 523 * @module getEnvironment 524 * @exports getEnvironment 525 * @returns {string} Environment 526 * @example 527 * 528 * getEnvironment() 529 * // => 'localhost' 530 * // => 'server' 531 */ 532 533function getEnvironment() { 534 return window.location.hostname === 'localhost' ? 'localhost' : 'server'; 535} 536 537module.exports = getEnvironment; 538},{}],27:[function(require,module,exports){ 539/** 540 * @category Locale 541 * @summary Get the Locale code for the current page 542 * @tutorial 03_Usage 543 * 544 * @description 545 * Get the Locale code for the current page 546 * @module getLocale 547 * @exports getLocale 548 * @returns {string} Locale code 549 * @example 550 * 551 * getLocale() 552 * // => 'ja_JP' 553 */ 554 555function getLocale() { 556 var locale; 557 var metaLocaleElem = document.querySelector("meta[name='locale']"); 558 if (metaLocaleElem) { 559 locale = metaLocaleElem.getAttribute("content"); 560 } 561 return locale; 562} 563module.exports = getLocale; 564},{}],28:[function(require,module,exports){ 565/** 566 * @category Region 567 * @summary Get the Region code for the current page 568 * @tutorial 03_Usage 569 * 570 * @description 571 * Get the Region code for the current page 572 * @memberOf ILMN 573 * @module getRegion 574 * @exports getRegion 575 * @returns {string} Region code 576 * @example 577 * 578 * getRegion() 579 * // => 'apac' 580 */ 581 582function getRegion() { 583 var region; 584 var metaRegionElem = document.querySelector("meta[name='region']"); 585 if (metaRegionElem) { 586 region = metaRegionElem.getAttribute("content"); 587 } 588 return region; 589} 590module.exports = getRegion; 591},{}],29:[function(require,module,exports){ 592/** 593 * @category User Info 594 * @summary Get authenticated user object 595 * @tutorial 03_Usage 596 * 597 * @description 598 * Get the user object 599 * @module getUser 600 * @exports getUser 601 * @returns {object} User object 602 * @example 603 * 604 * getUser() 605 * // => { 606 * 607 * } 608 */ 609 610function getUser() { 611 // TODO: cartPlugin.js line 623 // _wcs.currentUser function - pair program with @fshanley 612} 613 614// exports the variables and functions above so that other modules can use them 615module.exports.getUser = getUser; 616},{}],30:[function(require,module,exports){ 617module.exports = { 618 // Browser helpers 619 isChrome: require('./isChrome/index.js'), 620 isEdge: require('./isEdge/index.js'), 621 isFirefox: require('./isFirefox/index.js'), 622 isIE: require('./isIE/index.js'), 623 isSafari: require('./isSafari/index.js'), 624 625 // Cookies helpers 626 getCookie: require('./getCookie/index.js'), 627 setCookie: require('./setCookie/index.js'), 628 getCookieDomain: require('./getCookieDomain/index.js'), 629 630 // Device helpers 631 isAndroid: require('./isAndroid/index.js'), 632 isiOS: require('./isiOS/index.js'), 633 isMobile: require('./isMobile/index.js'), 634 635 // Environment helpers 636 getEnvironment: require('./getEnvironment/index.js'), 637 638 // Locale helpers 639 getLocale: require('./getLocale/index.js'), 640 isAustralia: require('./isAustralia/index.js'), 641 isGreatBritain: require('./isGreatBritain/index.js'), 642 isUnitedStates: require('./isUnitedStates/index.js'), 643 isJapan: require('./isJapan/index.js'), 644 isChina: require('./isChina/index.js'), 645 646 // Region helpers 647 getRegion: require('./getRegion/index.js'), 648 regionContentPath: require('./regionContentPath/index.js'), 649 isAMR: require('./isAMR/index.js'), 650 isAPAC: require('./isAPAC/index.js'), 651 isSAPAC: require('./isSAPAC/index.js'), 652 isEMEA: require('./isEMEA/index.js'), 653 654 // UI helpers 655 smoothScroll: require('./smoothScroll/index.js'), 656 whenDefined: require('./whenDefined/index.js'), 657 whenObjDefined: require('./whenObjDefined/index.js'), 658 659 // User helpers 660 getUser: require('./getUser/index.js'), 661 isLoggedIn: require('./isLoggedIn/index.js') 662}; 663},{"./getCookie/index.js":24,"./getCookieDomain/index.js":25,"./getEnvironment/index.js":26,"./getLocale/index.js":27,"./getRegion/index.js":28,"./getUser/index.js":29,"./isAMR/index.js":31,"./isAPAC/index.js":32,"./isAndroid/index.js":33,"./isAustralia/index.js":34,"./isChina/index.js":35,"./isChrome/index.js":36,"./isEMEA/index.js":37,"./isEdge/index.js":38,"./isFirefox/index.js":39,"./isGreatBritain/index.js":40,"./isIE/index.js":41,"./isJapan/index.js":42,"./isLoggedIn/index.js":43,"./isMobile/index.js":44,"./isSAPAC/index.js":45,"./isSafari/index.js":46,"./isUnitedStates/index.js":47,"./isiOS/index.js":48,"./regionContentPath/index.js":49,"./setCookie/index.js":50,"./smoothScroll/index.js":51,"./whenDefined/index.js":52,"./whenObjDefined/index.js":53}],31:[function(require,module,exports){ 664var getRegion = require('../getRegion/index.js'); 665 666/** 667 * @category Region 668 * @summary Check if Region Code is AMR. Returns true if user is on AMR region. 669 * @tutorial 03_Usage 670 * 671 * @description 672 * Check if Region Code is AMR 673 * @module isAMR 674 * @exports isAMR 675 * @returns {boolean} true or false 676 * @example 677 * 678 * isAMR() 679 * // => 'true' 680 */ 681 682function isAMR() { 683 return getRegion() === 'amr'; 684} 685module.exports = isAMR; 686},{"../getRegion/index.js":28}],32:[function(require,module,exports){ 687var getRegion = require('../getRegion/index.js'); 688 689/** 690 * @category Region 691 * @summary Check if Region Code is APAC. Returns true if page is in the APAC region. 692 * @tutorial 03_Usage 693 * 694 * @description 695 * Check if Region Code is APAC 696 * @module isAPAC 697 * @exports isAPAC 698 * @returns {boolean} true or false 699 * @example 700 * 701 * isAPAC() 702 * // => 'true' 703 */ 704 705function isAPAC() { 706 return getRegion() === 'apac'; 707} 708module.exports = isAPAC; 709},{"../getRegion/index.js":28}],33:[function(require,module,exports){ 710/** 711 * @category Devices 712 * @summary Target user's device for Android-specific functionality. Returns true if the user is using an Android-operated mobile device. 713 * @tutorial 03_Usage 714 * 715 * @description 716 * Target user's device for Android-specific functionality 717 * @module isAndroid 718 * @exports isAndroid 719 * @returns {boolean} true or false 720 * @example 721 * // given the current device is Android. 722 * isAndroid() 723 * // => true 724 */ 725 726function isAndroid() { 727 return navigator.userAgent.toLowerCase().indexOf("android") > -1; 728} 729 730module.exports = isAndroid; 731},{}],34:[function(require,module,exports){ 732var getLocale = require('../getLocale/index.js'); 733 734/** 735 * @category Locale 736 * @summary Check if Locale Code is en_AU. Returns true if page is in the en_AU locale. 737 * @tutorial 03_Usage 738 * 739 * @description 740 * Check if Locale Code is en_AU 741 * @module isAustralia 742 * @exports isAustralia 743 * @returns {boolean} true or false 744 * @example 745 * 746 * isAustralia() 747 * // => 'true' 748 */ 749 750function isAustralia() { 751 return getLocale() === 'en_AU'; 752} 753module.exports = isAustralia; 754},{"../getLocale/index.js":27}],35:[function(require,module,exports){ 755var getLocale = require('../getLocale/index.js'); 756 757/** 758 * @category Locale 759 * @summary Check if Locale Code is zh_CN. Returns true if page is in the zg_CN locale 760 * @tutorial 03_Usage 761 * 762 * @description 763 * Check if Locale Code is zh_CN 764 * @module isChina 765 * @exports isChina 766 * @returns {boolean} true or false 767 * @example 768 * 769 * isChina() 770 * // => 'true' 771 */ 772 773function isChina() { 774 return getLocale() === 'zh_CN'; 775} 776module.exports = isChina; 777},{"../getLocale/index.js":27}],36:[function(require,module,exports){ 778/** 779 * @category Browser 780 * @summary Target Chrome for browser-specific functionality. Checks if the browser is Chrome and returns true or false 781 * @tutorial 03_Usage 782 * 783 * @description 784 * Target Chrome for browser-specific functionality 785 * @module isChrome 786 * @exports isChrome 787 * @returns {boolean} true or false 788 * @example 789 * // given the browser is Chrome 790 * isChrome(); 791 * // => true 792 */ 793 794function isChrome() { 795 return window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1; 796} 797 798module.exports = isChrome; 799},{}],37:[function(require,module,exports){ 800var getRegion = require('../getRegion/index.js'); 801 802/** 803 * @category Region 804 * @summary Check if Region Code is EMEA. Returns true if page is in the EMEA region. 805 * @tutorial 03_Usage 806 * 807 * @description 808 * Check if Region Code is EMEA 809 * @module isEMEA 810 * @exports isEMEA 811 * @returns {boolean} true or false 812 * @example 813 * 814 * isEMEA() 815 * // => 'true' 816 */ 817 818function isEMEA() { 819 return getRegion() === 'emea'; 820} 821module.exports = isEMEA; 822},{"../getRegion/index.js":28}],38:[function(require,module,exports){ 823/** 824 * @category Browser 825 * @summary Target Internet Explorer Edge for browser-specific functionality. Returns true if the browser is Internet Explorer Edge. 826 * @tutorial 03_Usage 827 * 828 * @description 829 * Target Internet Explorer Edge for browser-specific functionality 830 * @module isEdge 831 * @exports isEdge 832 * @returns {boolean} true or false 833 * @example 834 * // given the browser is Edge 835 * isEdge() 836 * // => true 837 */ 838 839function isEdge() { 840 return window.navigator.userAgent.toLowerCase().indexOf('edge') > -1; 841} 842 843module.exports = isEdge; 844},{}],39:[function(require,module,exports){ 845/** 846 * @category Browser 847 * @summary Target Firefox for browser-specific functionality. Returns true if the browser is Firefox. 848 * @tutorial 03_Usage 849 * 850 * @description 851 * Target Firefox for browser-specific functionality 852 * @module isFirefox 853 * @exports isFirefox 854 * @returns {boolean} true or false 855 * @example 856 * //given the browser is FireFox 857 * isFirefox() 858 * // => true 859 */ 860 861function isFirefox() { 862 return window.navigator.userAgent.toLowerCase().indexOf('firefox') > -1; 863} 864 865module.exports = isFirefox; 866},{}],40:[function(require,module,exports){ 867var getLocale = require('../getLocale/index.js'); 868 869/** 870 * @category Locale 871 * @summary Check if Locale Code is en_GB. Returns true if page is in the en_GB locale. 872 * @tutorial 03_Usage 873 * 874 * @description 875 * Check if Locale Code is en_GB 876 * @module isGreatBritain 877 * @exports isGreatBritain 878 * @returns {boolean} true or false 879 * @example 880 * 881 * isGreatBritain() 882 * // => 'true' 883 */ 884 885function isGreatBritain() { 886 return getLocale() === 'en_GB'; 887} 888module.exports = isGreatBritain; 889},{"../getLocale/index.js":27}],41:[function(require,module,exports){ 890/** 891 * @category Browser 892 * @summary Target Internet Explorer for browser-specific functionality. Returns true if the browser is Internet Explorer. 893 * @tutorial 03_Usage 894 * 895 * @description 896 * Target Internet Explorer for browser-specific functionality 897 * @module isIE 898 * @exports isIE 899 * @returns {boolean} true or false 900 * @example 901 * // given the browser is Internet Explorer 902 * isIE() 903 * // => true 904 */ 905 906function isIE() { 907 var $index = window.navigator.userAgent.toLowerCase().indexOf("MSIE"), 908 $isIE = false;
909 910 // If IE, return true. 911 if ($index > 0 || !!navigator.userAgent.match(/Trident\/7\./)) 912 $isIE = true; 913 914 return $isIE; 915} 916 917module.exports = isIE; 918},{}],42:[function(require,module,exports){ 919var getLocale = require('../getLocale/index.js'); 920 921/** 922 * @category Locale 923 * @summary Check if Locale Code is ja_JP. Returns true if page is in the ja_JP locale. 924 * @tutorial 03_Usage 925 * 926 * @description 927 * Check if Locale Code is ja_jP 928 * @module isJapan 929 * @exports isJapan 930 * @returns {boolean} true or false 931 * @example 932 * 933 * isJapan() 934 * // => 'true' 935 */ 936 937function isJapan() { 938 return getLocale() === 'ja_JP'; 939} 940module.exports = isJapan; 941},{"../getLocale/index.js":27}],43:[function(require,module,exports){ 942/** 943 * @category User Info 944 * @summary Identify if a user is logged in. Returns true if a user is logged in. 945 * @tutorial 03_Usage 946 * 947 * @description 948 * Identify is a user is logged in. 949 * @module isLoggedIn 950 * @exports isLoggedIn 951 * @returns {boolean} true or false 952 * @example 953 * 954 * isLoggedIn() 955 * // => true 956 */ 957 958function isLoggedIn() { 959 if (window._ecom) { 960 return window._ecom.isLoggedIn; 961 } 962 return false; 963} 964 965// exports the variables and functions above so that other modules can use them 966module.exports.isLoggedIn = isLoggedIn; 967},{}],44:[function(require,module,exports){ 968/** 969 * @category Devices 970 * @summary Target user's device for mobile-specific functionality. Returns true if the user is using a mobile device. 971 * @tutorial 03_Usage 972 * 973 * @description 974 * Target user's device for mobile-specific functionality 975 * @module isMobile 976 * @exports isMobile 977 * @returns {boolean} true or false 978 * @example 979 * 980 * isMobile() 981 * // => true 982 */ 983 984function isMobile() { 985 var $isMobile = false; //initiate as false 986 // device detection 987 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) || 988 /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.
988substr(0, 4)) || 989 (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && !window.MSStream)) { 990 $isMobile = true; 991 } 992 993 return $isMobile; 994} 995 996module.exports = isMobile; 997},{}],45:[function(require,module,exports){ 998var getRegion = require('../getRegion/index.js'); 999 1000/** 1001 * @category Region 1002 * @summary Check if Region Code is SAPAC. Returns true if page is in the SAPAC region. 1003 * @tutorial 03_Usage 1004 * 1005 * @description 1006 * Check if Region Code is SAPAC 1007 * @module isSAPAC 1008 * @exports isSAPAC 1009 * @returns {boolean} true or false 1010 * @example 1011 * 1012 * isSAPAC() 1013 * // => 'true' 1014 */ 1015 1016function isSAPAC() { 1017 return getRegion() === 'spac'; 1018} 1019module.exports = isSAPAC; 1020},{"../getRegion/index.js":28}],46:[function(require,module,exports){ 1021/** 1022 * @category Browser 1023 * @summary Target Safari for browser-specific functionality. Returns true if the browser is Safari. 1024 * @tutorial 03_Usage 1025 * 1026 * @description 1027 * Target Safari for browser-specific functionality 1028 * @module isSafari 1029 * @exports isSafari 1030 * @returns {boolean} true or false 1031 * @example 1032 * // given the browser is Safari 1033 * isSafari() 1034 * // => true 1035 */ 1036 1037function isSafari() { 1038 var $agent = window.navigator.userAgent.toLowerCase(); 1039 return $agent.indexOf('safari') !== -1 && $agent.indexOf('chrome') === -1; 1040} 1041 1042module.exports = isSafari; 1043},{}],47:[function(require,module,exports){ 1044var getLocale = require('../getLocale/index.js'); 1045 1046/** 1047 * @category Locale 1048 * @summary Check if Locale Code is en_US. Returns true if page is in the en_US locale. 1049 * @tutorial 03_Usage 1050 * 1051 * @description 1052 * Check if Locale Code is en_US 1053 * @module isUnitedStates 1054 * @exports isUnitedStates 1055 * @returns {boolean} true or false 1056 * @example 1057 * 1058 * isUnitedStates() 1059 * // => 'true' 1060 */ 1061 1062function isUnitedStates() { 1063 return getLocale() === 'en_US'; 1064} 1065module.exports = isUnitedStates; 1066},{"../getLocale/index.js":27}],48:[function(require,module,exports){ 1067/** 1068 * @category Devices 1069 * @summary Target user's mobile device for iOS-specific functionality. Returns true if the user is using a iOS mobile device. 1070 * @tutorial 03_Usage 1071 * 1072 * @description 1073 * Target user's mobile device for iOS-specific functionality 1074 * @module isiOS 1075 * @exports isiOS 1076 * @returns {boolean} true or false 1077 * @example 1078 * 1079 * isiOS() 1080 * // => true 1081 */ 1082 1083function isiOS() { 1084 return (/iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) && !window.MSStream; 1085} 1086 1087module.exports = isiOS; 1088},{}],49:[function(require,module,exports){ 1089/** 1090 * @category Region 1091 * @summary Include proper AEM regional content path 1092 * @tutorial 03_Usage 1093 * 1094 * @description 1095 * Get the Region code for the current page 1096 * @memberOf ILMN 1097 * @module regionContentPath 1098 * @exports regionContentPath 1099 * @param {string} url - AEM full relative path to page, starting with /content/.... 1100 * @returns {string} relative content path 1101 * @example 1102 * 1103 * regionContentPath.getPath('<relative-url>') 1104 * // => '/content/illumina-marketing/en' + path-to-page.html (default) 1105 * // => '/content/illumina-marketing/apac/zh_CN/path/to/page.html' 1106 * // => '/content/illumina-marketing/apac/ja_JP/path/to/page.html' 1107 * // => '/content/illumina-marketing/emea/en_GB/path/to/page.html' 1108 * // => '/content/illumina-marketing/spac/en_AU/path/to/page.html' 1109 */ 1110 1111var regionContentPath = { 1112 getPath: function(enPath) { 1113 var hostname = window.location.hostname; 1114 var dataRegion = '/content/illumina-marketing/en'; 1115 switch (hostname) { 1116 case 'www.illumina.com': 1117 case 'support.illumina.com': 1118 dataRegion = '/content/illumina-marketing/en'; 1119 break; 1120 case 'www.illumina.com.cn': 1121 case 'support.illumina.com.cn': 1122 dataRegion = '/content/illumina-marketing/apac/zh_CN'; 1123 break; 1124 case 'jp.illumina.com': 1125 case 'jp.support.illumina.com': 1126 dataRegion = '/content/illumina-marketing/apac/ja_JP'; 1127 break; 1128 case 'emea.illumina.com': 1129 case 'emea.support.illumina.com': 1130 dataRegion = '/content/illumina-marketing/emea/en_GB'; 1131 break; 1132 case 'sapac.illumina.com': 1133 case 'sapac.support.illumina.com': 1134 dataRegion = '/content/illumina-marketing/spac/en_AU'; 1135 break; 1136 default: 1137 dataRegion = '/content/illumina-marketing/en'; 1138 } 1139 return enPath ? enPath.replace('/content/illumina-marketing/en', dataRegion) : ''; 1140 } 1141}; 1142 1143 1144module.exports = regionContentPath; 1145},{}],50:[function(require,module,exports){ 1146var getCookieDomain = require('../getCookieDomain'); 1147 1148/** 1149 * @category Cookies 1150 * @summary set the cookie based on name, value, expiration (in days), and domain. 1151 * @tutorial 03_Usage 1152 * 1153 * @description 1154 * This Method will set a cookie based using the name, value, expiration, and domain that you specify 1155 * @memberOf ILMN
1156 * @module setCookie 1157 * @exports setCookie 1158 * @param {string} name - the name of the cookie 1159 * @param {string} value - the value of the named cookie 1160 * @param {number} days - the number of day until the cookie expires 1161 * @param {string} domain - the domain of the cookie 1162 * @param {string} path - the path for where the cookie will be matched. ex: /docs (/docs, /docs/Web/, and /docs/Web/HTTP will all match.) 1163 * @param {string} samesite - the samesite value for the cookie - takes 'lax', 'strict', or 'none' 1164 * @param {string} secure - true if the cookie should be written as secure 1165 * @example 1166 * 1167 * setCookie('ILMN_PrefSegment', 'cancer_research', 365, '.illumina.com', '/') 1168 * // => undefined 1169 */ 1170 1171function setCookie(name, value, days, domain, path, samesite, secure) { 1172 if (!domain) { 1173 domain = getCookieDomain(); 1174 } 1175 if(!path) { 1176 path = '/'; 1177 } 1178 var samesiteOptions = ['lax', 'strict', 'none']; 1179 if ((typeof samesite !== 'undefined') && (samesiteOptions.indexOf(samesite) > -1) && !(!secure && samesite === 'none')) { 1180 samesite = '; samesite=' + samesite; 1181 } else { 1182 samesite = ''; 1183 } 1184 secure = typeof secure !== 'undefined' ? '; secure' : ''; 1185 var expires = ''; 1186 if (days) { 1187 var date = new Date(); 1188 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 1189 expires = '; expires=' + date.toUTCString(); 1190 } 1191 document.cookie = name + '=' + (value || '') + expires + '; path=' + path + ((domain) ? "; domain=" + domain : "") + samesite + secure; 1192} 1193 1194module.exports = setCookie; 1195},{"../getCookieDomain":25}],51:[function(require,module,exports){ 1196var debounce = require('lodash/debounce'); 1197 1198/** 1199 * @category UI Helpers 1200 * @summary Smoothly scroll to an element on the page. 1201 * @tutorial 03_Usage 1202 * 1203 * @description 1204 * Smoothly scroll to an element on the page with an optional offset pixel value. Accepts a function as an optional 3rd 1205 * parameter that runs after scrolling. Returns nothing. 1206 * Note: For Safari, Edge, and IE11 smooth scroll functionality, you will need a polyfill. 1207 * As-is, calling the function will jump to the location in Safari and not do anything in IE11/Edge. 1208 * https://github.com/iamdustan/smoothscroll 1209 * 1210 * @module smoothScroll 1211 * @exports smoothScroll 1212 * @param {object} elem - (required) Visible DOM node to scroll to. 1213 * @param {number} offset - (optional) Pixel height to offset the final scrolled position, to account for fixed elements, padding, etc. 1214 * @param {function} callback - (optional) Function to run after scroll is completed. 1215 * 1216 * @example 1217 * smoothScroll(elem, 50, callbackFn); 1218 */ 1219 1220function smoothScroll(elem, offset, callback) { 1221 offset = typeof offset !== 'undefined' ? offset : 0; 1222 callback = typeof callback !== 'undefined' ? callback : function() {}; 1223 if (elem) { 1224 var scrollDest = Math.floor(elem.getBoundingClientRect().top + window.pageYOffset - offset); 1225 var onScroll = function () { 1226 var scrollTop = window.scrollTop || window.pageYOffset; 1227 if (scrollTop >= scrollDest) { 1228 callback(); 1229 window.removeEventListener('scroll', debounceFn); 1230 } 1231 }; 1232 1233 var debounceFn = debounce(onScroll, 250); 1234 window.addEventListener('scroll', debounceFn); 1235 1236 window.scrollTo({ 1237 top: scrollDest, 1238 behavior: 'smooth' 1239 }); 1240 } 1241} 1242 1243module.exports = smoothScroll; 1244},{"lodash/debounce":63}],52:[function(require,module,exports){ 1245/** 1246 * @category UI Helpers 1247 * @summary Legacy: Wait for an object to load before executing a function. 1248 * @tutorial 03_Usage 1249 * 1250 * @description 1251 * Legacy: This function works like a promise, waiting for a passed object name to be defined before executing a passed 1252 * function. Please use whenObjDefined function 1253 * 1254 * @module whenDefined 1255 * @exports whenDefined 1256 * @param {string} objName - (required) Object name to wait for. 1257 * @param {function} callbackFn - (required) Function to fire when object has loaded 1258 * @param {function} parentObj - (optional) If the object is not scoped to the window, you can scope it here. 1259 * 1260 * @example 1261 * whenDefined('OneTrust', handleGDPCContent); 1262 */ 1263 1264function whenDefined(objName, callbackFn, parentObj) { 1265 objName = typeof objName === 'string' ? objName : ''; 1266 callbackFn = typeof callbackFn === 'function' ? callbackFn : function() {}; 1267 parentObj = typeof parentObj === 'object' ? parentObj : window; 1268 1269 if (window[objName]) { 1270 callbackFn(); 1271 } else { 1272 Object.defineProperty(parentObj, objName, { 1273 configurable: true, 1274 enumerable: true, 1275 get: function() { 1276 return this['_' + objName]; 1277 }, 1278 set: function(val) { 1279 this['_' + objName] = val; 1280 whenDefined(objName, callbackFn, parentObj); 1281 } 1282 }); 1283 } 1284} 1285 1286module.exports = whenDefined; 1287},{}],53:[function(require,module,exports){ 1288/** 1289 * @category UI Helpers 1290 * @summary Wait for an object to load before executing a function. 1291 * @tutorial 03_Usage 1292 * 1293 * @description 1294 * This function works like a promise, waiting for a passed object name to be defined before executing a passed 1295 * function. 1296 * 1297 * @module whenObjDefined 1298 * @exports whenObjDefined 1299 * @param {string} objName - (required) Object name to wait for. 1300 * @param {function} callbackFn - (required) Function to fire when object has loaded 1301 * @param {function} parentObj - (optional) If the object is not scoped to the window, you can scope it here. 1302 * 1303 * @example 1304 * whenObjDefined('OneTrust', handleGDPCContent); 1305 */ 1306 1307 1308 function whenObjDefined(objName,callbackFn,parentObj) { 1309 1310 // IE11 polyfill because it doesn't support custom events. *party* 1311 (function () { 1312 1313 if ( typeof window.CustomEvent === "function" ) return false;
1314 1315 function CustomEvent ( event, params ) { 1316 params = params || { bubbles: false, cancelable: false, detail: undefined }; 1317 var evt = document.createEvent('CustomEvent'); 1318 evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail ); 1319 return evt; 1320 } 1321 1322 CustomEvent.prototype = window.Event.prototype; 1323 1324 window.CustomEvent = CustomEvent; 1325 })(); 1326 1327 1328 var myEvent = new CustomEvent(objName + '-defined'); 1329 window.addEventListener(myEvent.type,callbackFn) 1330 objName = typeof objName === 'string' ? objName : ''; 1331 callbackFn = typeof callbackFn === 'function' ? callbackFn : function() {}; 1332 parentObj = typeof parentObj === 'object' ? parentObj : window; 1333 1334 if (window[objName]) { 1335 callbackFn(); 1336 // console.log("Function called from if clause") 1337 } else { 1338 Object.defineProperty(parentObj, objName, {//Used to define on existing object (window in this case) 1339 configurable: true, 1340 enumerable: true, 1341 get: function() { 1342 return window['_' + objName];//Get reference object 1343 }, 1344 set: function(val) {//Called whenever the property is assigned (window.OneTrust = blah), this function is called with val equal to the right hand assignment 1345 window['_' + objName] = val; //Underline character prevents recursive setting of objName, and creates window._OneTrust 1346 // console.log("object set") 1347 window.dispatchEvent(myEvent); 1348 } 1349 }); 1350 } 1351} 1352 1353 1354module.exports = whenObjDefined; 1355},{}],54:[function(require,module,exports){ 1356;(function (root) { 1357 function throttle (fn, threshhold, scope) { 1358 threshhold || (threshhold = 100) 1359 var last, 1360 deferTimer 1361 1362 return function () { 1363 var context = scope || this 1364 1365 var now = +(new Date()) 1366 1367 var args = arguments 1368 if (last && now < last + threshhold) { 1369 clearTimeout(deferTimer) 1370 deferTimer = setTimeout(function () { 1371 last = now 1372 fn.apply(context, args) 1373 }, threshhold) 1374 } else { 1375 last = now 1376 fn.apply(context, args) 1377 } 1378 } 1379 } 1380 1381 function hasClass (el, name) { 1382 return new RegExp(' ' + name + ' ').test(' ' + el.className + ' ') 1383 } 1384 1385 function addClass (el, name) { 1386 if (!hasClass(el, name)) { 1387 el.className += ' ' + name 1388 } 1389 return el 1390 } 1391 1392 function removeClass (el, name) { 1393 var newClass = ' ' + el.className.replace(/[\t\r\n]/g, ' ') + ' ' 1394 if (hasClass(el, name)) { 1395 while (newClass.indexOf(' ' + name + ' ') >= 0) { 1396 newClass = newClass.replace(' ' + name + ' ', ' ') 1397 } 1398 el.className = newClass.replace(/^\s+|\s+$/g, '') 1399 } 1400 return el 1401 } 1402 1403 function removeEvent (el, name, fn) { 1404 if (el.removeEventListener) { 1405 return el.removeEventListener(name, fn) 1406 } else if (el.detachEvent) { 1407 return el.detachEvent('on' + name, fn) 1408 } 1409 } 1410 1411 function addEvent (el, name, fn) { 1412 if (el.addEventListener) { 1413 return el.addEventListener(name, fn, false) 1414 } else if (el.attachEvent) { 1415 return el.attachEvent('on' + name, fn) 1416 } 1417 } 1418 1419 function getScrollTop () { 1420 if (typeof window.pageYOffset !== 'undefined') { 1421 return window.pageYOffset 1422 } else { 1423 var b = document.body 1424 var d = document.documentElement 1425 d = d.clientHeight ? d : b 1426 return d.scrollTop 1427 } 1428 } 1429 1430 function isInView (obj) { 1431 var winTop = getScrollTop() 1432 1433 var winBottom = winTop + window.innerHeight 1434 1435 var objTop = obj.getBoundingClientRect().top + document.documentElement.scrollTop 1436 1437 var objBottom = objTop + obj.offsetHeight 1438 1439 var offset = 0 1440 1441 if ((objTop <= winBottom + offset) && (objBottom >= winTop)) { 1442 return true 1443 } 1444 1445 return false 1446 } 1447 1448 /** 1449 * @desc Create an InView instance. 1450 * 1451 * @class 1452 * @func InView 1453 * @param {HTMLElement} element - element to detect when scrolled to view 1454 * @param {scrollCallback} scrollCallback - callback function fired on scroll event 1455 * @return {HTMLElement} - element 1456 * 1457 * @example 1458 * var el = document.querySelector('.item'); 1459 * 1460 * var InView = InView(el, function(isInView, data) { 1461 * if (isInView) { 1462 * console.log('in view'); 1463 * } else { 1464 * if (data.windowScrollTop - (data.elementOffsetTop - data.inViewHeight) > data.inViewHeight) { 1465 * console.log('not in view (scroll up)'); 1466 * } else { 1467 * console.log('not in view (scroll down)'); 1468 * } 1469 * } 1470 * }); 1471 */ 1472 function InView (el, callback) { 1473 var _this = this 1474 if (!(_this instanceof InView)) { 1475 return new InView(el, callback) 1476 } 1477 1478 _this.el = el 1479 _this.callback = callback.bind(_this) 1480 _this.destroy = function () {} 1481 1482 if (!el) { 1483 return _this 1484 } 1485 1486 var isDestroyed = false 1487 1488 var check = function check (e) { 1489 if (isDestroyed) return false 1490 1491 var params = { 1492 windowScrollTop: getScrollTop(), 1493 elementOffsetTop: _this.el.offsetTop, 1494 inViewHeight: window.innerHeight, 1495 elementOffsetTopInViewHeight: window.innerHeight - (getScrollTop() - (_this.el.offsetTop - window.innerHeight)) 1496 } 1497 if (isInView(_this.el)) { 1498 addClass(_this.el, 'inview') 1499 _this.callback.call(_this, true, params) 1500 } else { 1501 removeClass(_this.el, 'inview') 1502 _this.callback.call(_this, false, params) 1503 } 1504 } 1505 1506 var throttledCheck = throttle(check, 100) 1507 1508 addEvent(window, 'scroll', throttledCheck) 1509 1510 _this.destroy = function () { 1511 isDestroyed = true 1512 removeEvent(window, 'scroll', throttledCheck) 1513 } 1514 1515 throttledCheck() 1516 1517 return _this 1518 } 1519 1520 /** 1521 * @desc InView callback 1522 * 1523 * @callback scrollCallback 1524 * @param {boolean} isInView - is in view 1525 * @param {object} data - scroll data 1526 * @param {number} data.windowScrollTop - scrolled amount
1527 * @param {number} data.elementOffsetTop - element top offset 1528 * @param {number} data.inViewHeight - height of visible area 1529 * @param {number} data.elementOffsetTopInViewHeight - element top offset relative to height of visible area 1530 */ 1531 1532 if (typeof exports !== 'undefined') { 1533 if (typeof module !== 'undefined' && module.exports) { 1534 exports = module.exports = InView 1535 } 1536 exports.InView = InView 1537 } else { 1538 root.InView = InView 1539 } 1540})(window); 1541 1542},{}],55:[function(require,module,exports){ 1543var root = require('./_root'); 1544 1545/** Built-in value references. */ 1546var Symbol = root.Symbol; 1547 1548module.exports = Symbol; 1549 1550},{"./_root":61}],56:[function(require,module,exports){ 1551var Symbol = require('./_Symbol'), 1552 getRawTag = require('./_getRawTag'), 1553 objectToString = require('./_objectToString'); 1554 1555/** `Object#toString` result references. */ 1556var nullTag = '[object Null]', 1557 undefinedTag = '[object Undefined]'; 1558 1559/** Built-in value references. */ 1560var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 1561 1562/** 1563 * The base implementation of `getTag` without fallbacks for buggy environments. 1564 * 1565 * @private 1566 * @param {*} value The value to query. 1567 * @returns {string} Returns the `toStringTag`. 1568 */ 1569function baseGetTag(value) { 1570 if (value == null) { 1571 return value === undefined ? undefinedTag : nullTag; 1572 } 1573 return (symToStringTag && symToStringTag in Object(value)) 1574 ? getRawTag(value) 1575 : objectToString(value); 1576} 1577 1578module.exports = baseGetTag; 1579 1580},{"./_Symbol":55,"./_getRawTag":59,"./_objectToString":60}],57:[function(require,module,exports){ 1581var trimmedEndIndex = require('./_trimmedEndIndex'); 1582 1583/** Used to match leading whitespace. */ 1584var reTrimStart = /^\s+/; 1585 1586/** 1587 * The base implementation of `_.trim`. 1588 * 1589 * @private 1590 * @param {string} string The string to trim. 1591 * @returns {string} Returns the trimmed string. 1592 */ 1593function baseTrim(string) { 1594 return string 1595 ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') 1596 : string; 1597} 1598 1599module.exports = baseTrim; 1600 1601},{"./_trimmedEndIndex":62}],58:[function(require,module,exports){ 1602(function (global){(function (){ 1603/** Detect free variable `global` from Node.js. */ 1604var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 1605 1606module.exports = freeGlobal; 1607 1608}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) 1609},{}],59:[function(require,module,exports){ 1610var Symbol = require('./_Symbol'); 1611 1612/** Used for built-in method references. */ 1613var objectProto = Object.prototype; 1614 1615/** Used to check objects for own properties. */ 1616var hasOwnProperty = objectProto.hasOwnProperty; 1617 1618/** 1619 * Used to resolve the 1620 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 1621 * of values. 1622 */ 1623var nativeObjectToString = objectProto.toString; 1624 1625/** Built-in value references. */ 1626var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 1627 1628/** 1629 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 1630 * 1631 * @private 1632 * @param {*} value The value to query. 1633 * @returns {string} Returns the raw `toStringTag`. 1634 */ 1635function getRawTag(value) { 1636 var isOwn = hasOwnProperty.call(value, symToStringTag), 1637 tag = value[symToStringTag]; 1638 1639 try { 1640 value[symToStringTag] = undefined; 1641 var unmasked = true; 1642 } catch (e) {} 1643 1644 var result = nativeObjectToString.call(value); 1645 if (unmasked) { 1646 if (isOwn) { 1647 value[symToStringTag] = tag; 1648 } else { 1649 delete value[symToStringTag]; 1650 } 1651 } 1652 return result; 1653} 1654 1655module.exports = getRawTag; 1656 1657},{"./_Symbol":55}],60:[function(require,module,exports){ 1658/** Used for built-in method references. */ 1659var objectProto = Object.prototype; 1660 1661/** 1662 * Used to resolve the 1663 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 1664 * of values. 1665 */ 1666var nativeObjectToString = objectProto.toString; 1667 1668/** 1669 * Converts `value` to a string using `Object.prototype.toString`. 1670 * 1671 * @private 1672 * @param {*} value The value to convert. 1673 * @returns {string} Returns the converted string. 1674 */ 1675function objectToString(value) { 1676 return nativeObjectToString.call(value); 1677} 1678 1679module.exports = objectToString; 1680 1681},{}],61:[function(require,module,exports){ 1682var freeGlobal = require('./_freeGlobal'); 1683 1684/** Detect free variable `self`. */ 1685var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 1686 1687/** Used as a reference to the global object. */ 1688var root = freeGlobal || freeSelf || Function('return this')(); 1689 1690module.exports = root; 1691 1692},{"./_freeGlobal":58}],62:[function(require,module,exports){ 1693/** Used to match a single whitespace character. */ 1694var reWhitespace = /\s/; 1695 1696/** 1697 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace 1698 * character of `string`. 1699 * 1700 * @private 1701 * @param {string} string The string to inspect. 1702 * @returns {number} Returns the index of the last non-whitespace character. 1703 */ 1704function trimmedEndIndex(string) { 1705 var index = string.length; 1706 1707 while (index-- && reWhitespace.test(string.charAt(index))) {} 1708 return index; 1709} 1710 1711module.exports = trimmedEndIndex; 1712 1713},{}],63:[function(require,module,exports){ 1714var isObject = require('./isObject'), 1715 now = require('./now'), 1716 toNumber = require('./toNumber'); 1717 1718/** Error message constants. */
1719var FUNC_ERROR_TEXT = 'Expected a function'; 1720 1721/* Built-in method references for those with the same name as other `lodash` methods. */ 1722var nativeMax = Math.max, 1723 nativeMin = Math.min; 1724 1725/** 1726 * Creates a debounced function that delays invoking `func` until after `wait` 1727 * milliseconds have elapsed since the last time the debounced function was 1728 * invoked. The debounced function comes with a `cancel` method to cancel 1729 * delayed `func` invocations and a `flush` method to immediately invoke them. 1730 * Provide `options` to indicate whether `func` should be invoked on the 1731 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 1732 * with the last arguments provided to the debounced function. Subsequent 1733 * calls to the debounced function return the result of the last `func` 1734 * invocation. 1735 * 1736 * **Note:** If `leading` and `trailing` options are `true`, `func` is 1737 * invoked on the trailing edge of the timeout only if the debounced function 1738 * is invoked more than once during the `wait` timeout. 1739 * 1740 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 1741 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 1742 * 1743 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 1744 * for details over the differences between `_.debounce` and `_.throttle`. 1745 * 1746 * @static 1747 * @memberOf _ 1748 * @since 0.1.0 1749 * @category Function 1750 * @param {Function} func The function to debounce. 1751 * @param {number} [wait=0] The number of milliseconds to delay. 1752 * @param {Object} [options={}] The options object. 1753 * @param {boolean} [options.leading=false] 1754 * Specify invoking on the leading edge of the timeout. 1755 * @param {number} [options.maxWait] 1756 * The maximum time `func` is allowed to be delayed before it's invoked. 1757 * @param {boolean} [options.trailing=true] 1758 * Specify invoking on the trailing edge of the timeout. 1759 * @returns {Function} Returns the new debounced function. 1760 * @example 1761 * 1762 * // Avoid costly calculations while the window size is in flux. 1763 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 1764 * 1765 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 1766 * jQuery(element).on('click', _.debounce(sendMail, 300, { 1767 * 'leading': true, 1768 * 'trailing': false 1769 * })); 1770 * 1771 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 1772 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 1773 * var source = new EventSource('/stream'); 1774 * jQuery(source).on('message', debounced); 1775 * 1776 * // Cancel the trailing debounced invocation. 1777 * jQuery(window).on('popstate', debounced.cancel); 1778 */ 1779function debounce(func, wait, options) { 1780 var lastArgs, 1781 lastThis, 1782 maxWait, 1783 result, 1784 timerId, 1785 lastCallTime, 1786 lastInvokeTime = 0, 1787 leading = false, 1788 maxing = false, 1789 trailing = true; 1790 1791 if (typeof func != 'function') { 1792 throw new TypeError(FUNC_ERROR_TEXT); 1793 } 1794 wait = toNumber(wait) || 0; 1795 if (isObject(options)) { 1796 leading = !!options.leading; 1797 maxing = 'maxWait' in options; 1798 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 1799 trailing = 'trailing' in options ? !!options.trailing : trailing; 1800 } 1801 1802 function invokeFunc(time) { 1803 var args = lastArgs, 1804 thisArg = lastThis; 1805 1806 lastArgs = lastThis = undefined; 1807 lastInvokeTime = time; 1808 result = func.apply(thisArg, args); 1809 return result; 1810 } 1811 1812 function leadingEdge(time) { 1813 // Reset any `maxWait` timer. 1814 lastInvokeTime = time; 1815 // Start the timer for the trailing edge. 1816 timerId = setTimeout(timerExpired, wait); 1817 // Invoke the leading edge. 1818 return leading ? invokeFunc(time) : result; 1819 } 1820 1821 function remainingWait(time) { 1822 var timeSinceLastCall = time - lastCallTime, 1823 timeSinceLastInvoke = time - lastInvokeTime, 1824 timeWaiting = wait - timeSinceLastCall; 1825 1826 return maxing 1827 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) 1828 : timeWaiting; 1829 } 1830 1831 function shouldInvoke(time) { 1832 var timeSinceLastCall = time - lastCallTime, 1833 timeSinceLastInvoke = time - lastInvokeTime; 1834 1835 // Either this is the first call, activity has stopped and we're at the 1836 // trailing edge, the system time has gone backwards and we're treating 1837 // it as the trailing edge, or we've hit the `maxWait` limit. 1838 return (lastCallTime === undefined || (timeSinceLastCall >= wait) || 1839 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); 1840 } 1841 1842 function timerExpired() { 1843 var time = now(); 1844 if (shouldInvoke(time)) { 1845 return trailingEdge(time); 1846 } 1847 // Restart the timer. 1848 timerId = setTimeout(timerExpired, remainingWait(time)); 1849 } 1850 1851 function trailingEdge(time) { 1852 timerId = undefined; 1853 1854 // Only invoke if we have `lastArgs` which means `func` has been 1855 // debounced at least once. 1856 if (trailing && lastArgs) { 1857 return invokeFunc(time); 1858 } 1859 lastArgs = lastThis = undefined; 1860 return result; 1861 } 1862 1863 function cancel() { 1864 if (timerId !== undefined) { 1865 clearTimeout(timerId); 1866 } 1867 lastInvokeTime = 0; 1868 lastArgs = lastCallTime = lastThis = timerId = undefined; 1869 } 1870 1871 function flush() { 1872 return timerId === undefined ? result : trailingEdge(now()); 1873 } 1874 1875 function debounced() { 1876 var time = now(), 1877 isInvoking = shouldInvoke(time); 1878 1879 lastArgs = arguments; 1880 lastThis = this; 1881 lastCallTime = time; 1882 1883 if (isInvoking) { 1884 if (timerId === undefined) { 1885 return leadingEdge(lastCallTime); 1886 } 1887 if (maxing) { 1888 // Handle invocations in a tight loop. 1889 clearTimeout(timerId); 1890 timerId = setTimeout(timerExpired, wait); 1891 return invokeFunc(lastCallTime); 1892 } 1893 } 1894 if (timerId === undefined) { 1895 timerId = setTimeout(timerExpired, wait); 1896 } 1897 return result; 1898 } 1899 debounced.cancel = cancel; 1900 debounced.flush = flush; 1901 return debounced; 1902} 1903 1904module.exports = debounce; 1905 1906},{"./isObject":64,"./now":67,"./toNumber":68}],64:[function(require,module,exports){ 1907/** 1908 * Checks if `value` is the 1909 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) 1910 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) 1911 * 1912 * @static 1913 * @memberOf _ 1914 * @since 0.1.0 1915 * @category Lang 1916 * @param {*} value The value to check. 1917 * @returns {boolean} Returns `true` if `value` is an object, else `false`. 1918 * @example 1919 * 1920 * _.isObject({}); 1921 * // => true 1922 * 1923 * _.isObject([1, 2, 3]); 1924 * // => true 1925 * 1926 * _.isObject(_.noop); 1927 * // => true 1928 * 1929 * _.isObject(null); 1930 * // => false 1931 */ 1932function isObject(value) { 1933 var type = typeof value; 1934 return value != null && (type == 'object' || type == 'function'); 1935} 1936 1937module.exports = isObject; 1938 1939},{}],65:[function(require,module,exports){ 1940/** 1941 * Checks if `value` is object-like. A value is object-like if it's not `null` 1942 * and has a `typeof` result of "object". 1943 * 1944 * @static 1945 * @memberOf _ 1946 * @since 4.0.0 1947 * @category Lang 1948 * @param {*} value The value to check. 1949 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 1950 * @example 1951 * 1952 * _.isObjectLike({}); 1953 * // => true 1954 * 1955 * _.isObjectLike([1, 2, 3]); 1956 * // => true 1957 * 1958 * _.isObjectLike(_.noop); 1959 * // => false 1960 * 1961 * _.isObjectLike(null); 1962 * // => false 1963 */ 1964function isObjectLike(value) { 1965 return value != null && typeof value == 'object'; 1966} 1967 1968module.exports = isObjectLike; 1969 1970},{}],66:[function(require,module,exports){ 1971var baseGetTag = require('./_baseGetTag'), 1972 isObjectLike = require('./isObjectLike'); 1973 1974/** `Object#toString` result references. */ 1975var symbolTag = '[object Symbol]'; 1976 1977/** 1978 * Checks if `value` is classified as a `Symbol` primitive or object. 1979 * 1980 * @static 1981 * @memberOf _ 1982 * @since 4.0.0 1983 * @category Lang 1984 * @param {*} value The value to check. 1985 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. 1986 * @example 1987 * 1988 * _.isSymbol(Symbol.iterator); 1989 * // => true 1990 * 1991 * _.isSymbol('abc'); 1992 * // => false 1993 */ 1994function isSymbol(value) { 1995 return typeof value == 'symbol' || 1996 (isObjectLike(value) && baseGetTag(value) == symbolTag); 1997} 1998 1999module.exports = isSymbol; 2000 2001},{"./_baseGetTag":56,"./isObjectLike":65}],67:[function(require,module,exports){ 2002var root = require('./_root'); 2003 2004/** 2005 * Gets the timestamp of the number of milliseconds that have elapsed since 2006 * the Unix epoch (1 January 1970 00:00:00 UTC). 2007 * 2008 * @static 2009 * @memberOf _ 2010 * @since 2.4.0 2011 * @category Date 2012 * @returns {number} Returns the timestamp. 2013 * @example 2014 * 2015 * _.defer(function(stamp) { 2016 * console.log(_.now() - stamp); 2017 * }, _.now()); 2018 * // => Logs the number of milliseconds it took for the deferred invocation. 2019 */ 2020var now = function() { 2021 return root.Date.now(); 2022}; 2023 2024module.exports = now; 2025 2026},{"./_root":61}],68:[function(require,module,exports){ 2027var baseTrim = require('./_baseTrim'), 2028 isObject = require('./isObject'), 2029 isSymbol = require('./isSymbol'); 2030 2031/** Used as references for various `Number` constants. */ 2032var NAN = 0 / 0; 2033 2034/** Used to detect bad signed hexadecimal string values. */ 2035var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 2036 2037/** Used to detect binary string values. */
2038var reIsBinary = /^0b[01]+$/i; 2039 2040/** Used to detect octal string values. */ 2041var reIsOctal = /^0o[0-7]+$/i; 2042 2043/** Built-in method references without a dependency on `root`. */ 2044var freeParseInt = parseInt; 2045 2046/** 2047 * Converts `value` to a number. 2048 * 2049 * @static 2050 * @memberOf _ 2051 * @since 4.0.0 2052 * @category Lang 2053 * @param {*} value The value to process. 2054 * @returns {number} Returns the number. 2055 * @example 2056 * 2057 * _.toNumber(3.2); 2058 * // => 3.2 2059 * 2060 * _.toNumber(Number.MIN_VALUE); 2061 * // => 5e-324 2062 * 2063 * _.toNumber(Infinity); 2064 * // => Infinity 2065 * 2066 * _.toNumber('3.2'); 2067 * // => 3.2 2068 */ 2069function toNumber(value) { 2070 if (typeof value == 'number') { 2071 return value; 2072 } 2073 if (isSymbol(value)) { 2074 return NAN; 2075 } 2076 if (isObject(value)) { 2077 var other = typeof value.valueOf == 'function' ? value.valueOf() : value; 2078 value = isObject(other) ? (other + '') : other; 2079 } 2080 if (typeof value != 'string') { 2081 return value === 0 ? value : +value; 2082 } 2083 value = baseTrim(value); 2084 var isBinary = reIsBinary.test(value); 2085 return (isBinary || reIsOctal.test(value)) 2086 ? freeParseInt(value.slice(2), isBinary ? 2 : 8) 2087 : (reIsBadHex.test(value) ? NAN : +value); 2088} 2089 2090module.exports = toNumber; 2091 2092},{"./_baseTrim":57,"./isObject":64,"./isSymbol":66}],69:[function(require,module,exports){ 2093"use strict"; 2094 2095Object.defineProperty(exports, "__esModule", { 2096 value: true 2097}); 2098exports.ATTRIBUTION_EVENT = void 0; 2099exports.getChannel = getChannel; 2100exports.initAttribution = initAttribution; 2101var _ilmn = require("ilmn"); 2102var _domainValues = require("./domain-values"); 2103/** Custom event name for attribution data. Listen on document to push to external layers (e.g. analytics). */ 2104var ATTRIBUTION_EVENT = exports.ATTRIBUTION_EVENT = 'illumina:attribution'; 2105function getChannel(utmMedium, referrerDomain, scid, media) { 2106 if (utmMedium && _domainValues.utmValues[utmMedium]) { 2107 return _domainValues.utmValues[utmMedium]; 2108 } else if (_domainValues.organicSocialDomains.has(referrerDomain)) { 2109 return 'Organic Social Media'; 2110 } else if (_domainValues.organicSearchDomains.has(referrerDomain)) { 2111 return 'Natural Search'; 2112 } else if (scid || media) { 2113 return 'Other Campaigns'; 2114 } 2115 return 'Direct'; 2116} 2117function setAttributionCookie() { 2118 try { 2119 var userOptedOutPerformanceCookies = window.OnetrustActiveGroups.indexOf('C0002') === -1; 2120 if (userOptedOutPerformanceCookies) { 2121 return; 2122 } 2123 var existingCookie = (0, _ilmn.getCookie)('ILMNAttribution'); 2124 if (existingCookie !== null && existingCookie !== void 0 && existingCookie.length) { 2125 return; 2126 } 2127 var urlParams = new URLSearchParams(window.location.search); 2128 var utmMedium = urlParams.get('utm_medium'); 2129 var scid = urlParams.get('scid'); 2130 var media = urlParams.get('media'); 2131 var referrerPath = ''; 2132 var referrerDomain = ''; 2133 if (document.referrer) { 2134 var referrerUrl = new URL(document.referrer); 2135 referrerPath = "".concat(referrerUrl.origin).concat(referrerUrl.pathname); 2136 referrerDomain = referrerUrl.hostname.replace('www.', ''); 2137 } 2138 var channel = getChannel(utmMedium, referrerDomain, scid, media); 2139 var encodedChannel = encodeURIComponent(channel).substring(0, _domainValues.characterLimit); 2140 var encodedReferrer = encodeURIComponent(referrerPath).substring(0, _domainValues.characterLimit); 2141 var cookieValue = "".concat(encodedChannel, "|").concat(encodedReferrer); 2142 var cookieDomain = (0, _ilmn.getCookieDomain)(); 2143 document.cookie = "ILMNAttribution=".concat(cookieValue, "; path=/;domain=").concat(cookieDomain); 2144 var attributionData = { 2145 channel: channel, 2146 referrerPath: referrerPath || null, 2147 referrerDomain: referrerDomain || null, 2148 cookieValue: cookieValue 2149 }; 2150 var event = new CustomEvent(ATTRIBUTION_EVENT, { 2151 detail: attributionData, 2152 bubbles: true 2153 }); 2154 document.dispatchEvent(event); 2155 } catch (_unused) { 2156 console.warn('Unable to set referrer attribution cookie'); 2157 } 2158} 2159function initAttribution() { 2160 if (!window.CookieConsentLoaded) { 2161 document.addEventListener('CookieConsentLoaded', function () { 2162 setAttributionCookie(); 2163 }); 2164 } else { 2165 setAttributionCookie(); 2166 } 2167} 2168 2169// potential future state: region specific UTM handling (e.g. Baidu for China) 2170 2171},{"./domain-values":70,"ilmn":30}],70:[function(require,module,exports){ 2172"use strict"; 2173 2174Object.defineProperty(exports, "__esModule", { 2175 value: true 2176});
2177exports.utmValues = exports.organicSocialDomains = exports.organicSearchDomains = exports.characterLimit = void 0; 2178var characterLimit = exports.characterLimit = 255; 2179var organicSocialDomains = exports.organicSocialDomains = new Set(['12seconds.tv', '2ch.net', '4travel.jp', '51.com', 'advogato.org', 'ameba.jp', 'anobii.com', 'asmallworld.net', 'backtype.com', 'badoo.com', 'bebo.com', 'bigadda.com', 'bigtent.com', 'biip.no', 'blackplanet.com', 'blog.seesaa.jp', 'blogspot.com', 'blogster.com', 'blomotion.jp', 'bolt.com', 'brightkite.com', 'buzznet.com', 'cafemom.com', 'care2.com', 'chiebukuro.yahoo.co.jp', 'classmates.com', 'cloob.com', 'collegeblender.com', 'cyworld.co.kr', 'cyworld.com.cn', 'dailymotion.com', 'delicious.com', 'deviantart.com', 'digg.com', 'diigo.com', 'disqus.com', 'douban.com', 'draugiem.lv', 'facebook.com', 'faceparty.com', 'fc2.com', 'flickr.com', 'flixster.com', 'fotolog.com', 'foursquare.com', 'friendfeed.com', 'friendsreunited.com', 'friendster.com', 'fubar.com', 'gaiaonline.com', 'geni.com', 'goodreads.com', 'gree.jp', 'grono.net', 'habbo.com', 'hatena.ne.jp', 'hi5.com', 'hotnews.infoseek.co.jp', 'hyves.nlibibo.comidenti.ca', 'identi.ca', 'imeem.com', 'instagram.com', 'intensedebate.com', 'irc-galleria.net', 'iwiw.hu', 'jaiku.com', 'jiayuan.com', 'jp.myspace.com', 'kaixin001.com', 'kaixin002.com', 'kakaku.com', 'kanshin.com', 'kozocom.com', 'last.fm', 'line.me', 'linkedin.com', 'livejournal.com', 'matome.naver.jp', 'me2day.net', 'meetup.com', 'mister-wong.com', 'mixi.jp', 'mixx.com', 'mouthshut.com', 'multiply.com', 'myheritage.com', 'mylife.com', 'myspace.com', 'myyearbook.com', 'nasza-klasa.pl', 'naver.com', 'naver.jp', 'netlog.com', 'nettby.no', 'netvibes.com', 'nicovideo.jp', 'ning.com', 'odnoklassniki.ru', 'okwave.jp', 'orkut.com', 'pakila.jp', 'pengyou.com', 'photobucket.com', 'pinterest.com', 'plaxo.com', 'plurk.com', 'plus.google.com', 'qzon.qq.com', 'reddit.com', 'renren.com', 'sina.com', 'skyrock.com', 'slideshare.net', 'smcb.jp', 'smugmug.com', 'sonico.com', 'studivz.net', 'stumbleupon.com', 't.163.com', 't.co', 't.hexun.com', 't.ifeng.com', 't.people.com.cn', 't.qq.com', 't.sina.com.cn', 't.sohu.com', 'tabelog.com', 'tagged.com', 'taringa.net', 'tencent.com', 'thefancy.com', 'tianya.cn', 'tripit.com', 'trombi.com', 'trytrend.jp', 'tuenti.com', 'tumblr.com', 'twine.com', 'twitter.com', 'uhuru.jp', 'viadeo.comvimeo.com', 'vimeo.com', 'vk.com', 'vox.com', 'wayn.com', 'wechat.com', 'weibo.com', 'weourfamily.com', 'wer-kennt-wen.de', 'wordpress.com', 'xanga.com', 'xing.com', 'yammer.com', 'yaplog.jp', 'yelp.com', 'youku.com', 'youtube.com', 'yozm.daum.net', 'yuku.com', 'zhihu.com', 'zooomr.com', 'glassdoor.com', 'glassdoor.ca', 'glassdoor.co.uk']); 2180var organicSearchDomains = exports.organicSearchDomains = new Set(['360.cn', 'alice.com', 'aol.com', 'ask.com', 'search.auone.jp', 'isearch.avg.com', 'search.babylon.com', 'baidu.com', 'biglobe.ne.jp', 'bing.com', 'search.centrum.cz', 'cnn.com/SEARCH', 'search.comcast.net', 'search.conduit.com', 'daum.net', 'dogpile.com', 'duckduckgo.com', 'ecosia.org', 'eniro.se', 'firmy.cz', 'globo.com/busca', 'go.mail.ru', 'google.com', 'google.co.uk', 'google.de', 'google.fr', 'google.es', 'google.it', 'google.nl', 'google.com.au', 'google.ca', 'google.co.jp', 'google.com.br', 'google.com.mx', 'google.co.in', 'google.com.sg', 'google.com.hk', 'google.ie', 'google.ch', 'google.at', 'google.be', 'google.dk', 'google.fi', 'google.no', 'google.se', 'google.pt', 'google.pl', 'google.cz', 'google.gr', 'google.hu', 'google.co.za', 'google.com.tr', 'google.com.ar', 'google.com.pe', 'google.com.co', 'google.com.ve', 'google.com.ec', 'google.com.uy', 'google.com.bo', 'google.com.py', 'google.com.gt', 'google.com.do', 'google.com.pa', 'google.com.cr', 'google.com.ni', 'google.com.sv', 'google.com.hn', 'google.com.pr', 'google.com.ph', 'google.com.my', 'google.com.vn', 'google.co.th', 'google.co.kr', 'google.com.tw', 'google.co.id', 'google.com.sa', 'google.ae', 'google.co.il', 'google.com.eg', 'google.com.qa', 'google.com.kw', 'google.com.om', 'google.com.bh', 'google.com.lb', 'google.com.jo', 'google.com.cy', 'google.com.mt', 'google.com.ma', 'google.com.tn', 'google.com.dz', 'google.com.ng', 'google.com.gh', 'google.com.ke', 'google.com.et', 'google.com.zm', 'google.com.mz', 'google.com.n
2180a', 'google.com.bw', 'google.com.sz', 'google.com.ls', 'search.incredimail.com', 'kvasir.no', 'lycos.com', 'lycos.co.uk', 'lycos.de', 'lycos.fr', 'lycos.es', 'lycos.it', 'lycos.nl', 'lycos.ch', 'lycos.at', 'lycos.pt', 'lycos.be', 'lycos.se', 'lycos.dk', 'lycos.fi', 'lycos.no', 'msn.com', 'money.msn.com', 'local.msn.com', 'najdi.si', 'naver.com', 'szukaj.onet.pl', 'qwant.com', 'rakuten.co.jp', 'rambler.ru', 'search-results.com', 'search.smt.docomo.ne.jp', 'seznam.cz', 'so.com/s', 'sogou.com', 'startsiden.no/sok', 'buscador.terra.com.br', 'search.tut.by', 'search.ukr.net', 'search.virgilio.it', 'yahoo.com', 'yahoo.co.jp', 'yahoo.co.uk', 'yahoo.de', 'yahoo.fr', 'yahoo.it', 'yahoo.es', 'yahoo.ca', 'yahoo.com.au', 'yahoo.com.sg', 'yahoo.com.hk', 'yahoo.com.tw', 'yahoo.co.in', 'yahoo.com.br', 'yahoo.com.mx', 'yandex.com', 'yandex.ru']); 2181var utmValues = exports.utmValues = { 2182 'paidsearch': 'Paid Search', 2183 'paidsocial': 'Paid Social Media', 2184 'display': 'Paid Display (Banner)', 2185 'email': 'Email', 2186 'affiliate': 'Affiliates', 2187 'referral': 'Referring Domains' 2188}; 2189 2190},{}],71:[function(require,module,exports){ 2191"use strict"; 2192 2193var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 2194Object.defineProperty(exports, "__esModule", { 2195 value: true 2196}); 2197exports.default = void 0; 2198var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); 2199var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); 2200var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); 2201var _ilmn = require("ilmn"); 2202var _clearCookie = _interopRequireDefault(require("ilmn/clearCookie")); 2203var _global = require("../global"); 2204var _user = _interopRequireDefault(require("./user")); 2205function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } 2206function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } 2207function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } 2208function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } 2209function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } 2210var stripXssiPrefix = function stripXssiPrefix() { 2211 var responseText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; 2212 return responseText.replace(/^\)\]\}',?\s*/, ''); 2213}; 2214var ecommerce = { 2215 userProfileKey: 'il_usprl', 2216 isLoggedIn: false, 2217 config: {}, 2218 isFetchingConfig: false, 2219 initialized: false, 2220 globalNavElement: document.getElementById('global-nav'), 2221 ribbonElement: document.querySelector('ilmn-global-ribbon'), 2222 pricingLoaded: null, 2223 pricingFailed: null, 2224 waitForPricingLoad: null, 2225 isBasicUser: false, 2226 init: function () { 2227 var _init = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() { 2228 return _regenerator.default.wrap(function (_context) { 2229 while (1) switch (_context.prev = _context.next) { 2230 case 0: 2231 if (!(ecommerce.globalNavElement && !ecommerce.initialized)) { 2232 _context.next = 1; 2233 break; 2234 } 2235 ecommerce.initialized = true; 2236 ecommerce.waitForPricingLoad = new Promise(function (resolve, reject) { 2237 ecommerce.pricingLoaded = resolve; 2238 ecommerce.pricingFailed = reject; 2239 }); 2240 return _context.abrupt("return", ecommerce.getECommerceConfig().then(function (config) { 2241 if (!ecommerce.isEmptyObject(config)) {
2242 ecommerce.ecommerceStatus(config); 2243 ecommerce.removeXSRFTokenOnUserTimeOut(config); 2244 return _user.default.loadUserProfile(ecommerce); 2245 } else { 2246 return ecommerce.initialized; 2247 } 2248 })); 2249 case 1: 2250 return _context.abrupt("return", ecommerce.initialized); 2251 case 2: 2252 case "end": 2253 return _context.stop(); 2254 } 2255 }, _callee); 2256 })); 2257 function init() { 2258 return _init.apply(this, arguments); 2259 } 2260 return init; 2261 }(), 2262 setLoggedInState: function setLoggedInState(value) { 2263 ecommerce.isLoggedIn = value; 2264 window.localStorage.setItem('loggedInStatus', true); 2265 }, 2266 setLoggedOutState: function setLoggedOutState() { 2267 window.localStorage.setItem('loggedInStatus', false); 2268 }, 2269 getECommerceConfig: function () { 2270 var _getECommerceConfig = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { 2271 var _ecommerce$globalNavE, _ecommerce$globalNavE2, url, dataNative, dataHost; 2272 return _regenerator.default.wrap(function (_context2) { 2273 while (1) switch (_context2.prev = _context2.next) { 2274 case 0: 2275 ecommerce.globalNavElement = document.getElementById('global-nav'); 2276 // if config object already populated, return it immediately 2277 if (ecommerce.isEmptyObject(ecommerce.config)) { 2278 _context2.next = 1; 2279 break; 2280 } 2281 return _context2.abrupt("return", ecommerce.config); 2282 case 1: 2283 if (!ecommerce.isFetchingConfig) { 2284 _context2.next = 2; 2285 break; 2286 } 2287 return _context2.abrupt("return", ecommerce.configFetch); 2288 case 2: 2289 if (!ecommerce.isEmptyObject(ecommerce.config)) { 2290 _context2.next = 4; 2291 break; 2292 } 2293 url = ''; 2294 dataNative = ((_ecommerce$globalNavE = ecommerce.globalNavElement) === null || _ecommerce$globalNavE === void 0 ? void 0 : _ecommerce$globalNavE.getAttribute('data-native')) === 'true'; 2295 dataHost = (_ecommerce$globalNavE2 = ecommerce.globalNavElement) === null || _ecommerce$globalNavE2 === void 0 ? void 0 : _ecommerce$globalNavE2.getAttribute('data-host'); 2296 if (dataNative) { 2297 url = '/bin/aem/ecommerceconfig'; 2298 } else if (dataHost) { 2299 url = "".concat(dataHost, "/bin/aem/ecommerceconfig"); 2300 } 2301 if (!url.length) { 2302 _context2.next = 3; 2303 break; 2304 } 2305 ecommerce.isFetchingConfig = true; 2306 ecommerce.configFetch = ecommerce.getData(url).then(function (response) { 2307 var responseData = response.data; 2308 ecommerce.isFetchingConfig = false; 2309 try { 2310 if (responseData !== null && responseData !== void 0 && responseData.commerceHttpsProtocolHost) { 2311 ecommerce.config = responseData; 2312 return responseData; 2313 } 2314 } catch (error) { 2315 console.debug('Unable to parse commerce config'); 2316 } 2317 return {}; 2318 }).catch(function (error) { 2319 console.debug('Unable to get commerce config'); 2320 ecommerce.isFetchingConfig = false; 2321 return {}; 2322 }); 2323 return _context2.abrupt("return", ecommerce.configFetch); 2324 case 3: 2325 return _context2.abrupt("return", {}); 2326 case 4: 2327 return _context2.abrupt("return", {}); 2328 case 5: 2329 case "end": 2330 return _context2.stop(); 2331 } 2332 }, _callee2); 2333 })); 2334 function getECommerceConfig() { 2335 return _getECommerceConfig.apply(this, arguments); 2336 } 2337 return getECommerceConfig; 2338 }(), 2339 formatPrice: function formatPrice(price) { 2340 if (price && price !== 'NaN' && price !== 'null') { 2341 var locale = (0, _ilmn.getLocale)().replace(/_/g, '-'); 2342 var currencyCode = ecommerce.currencyCode || 'USD'; 2343 var formattedPrice = new Intl.NumberFormat(locale, { 2344 style: 'currency', 2345 currency: currencyCode 2346 }).format(price); 2347 if (currencyCode === 'TWD') { 2348 formattedPrice = formattedPrice.replace('$', 'NT$'); 2349 } 2350 return formattedPrice; 2351 } else { 2352 return ''; 2353 } 2354 }, 2355 getToken: function () { 2356 var _getToken = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() { 2357 var xsrfTokenCookie; 2358 return _regenerator.default.wrap(function (_context3) { 2359 while (1) switch (_context3.prev = _context3.next) { 2360 case 0: 2361 if (!ecommerce.isLoggedIn) { 2362 _context3.next = 2; 2363 break; 2364 } 2365 xsrfTokenCookie = (0, _ilmn.getCookie)('xsrf-token'); 2366 if (!xsrfTokenCookie) { 2367 _context3.next = 1; 2368 break; 2369 } 2370 return _context3.abrupt("return", xsrfTokenCookie); 2371 case 1: 2372 return _context3.abrupt("return", _user.default.userProfile(ecommerce).then(function (response) { 2373 return (0, _ilmn.getCookie)('xsrf-token'); 2374 })); 2375 case 2: 2376 return _context3.abrupt("return", ''); 2377 case 3: 2378 case "end": 2379 return _context3.stop(); 2380 } 2381 }, _callee3); 2382 })); 2383 function getToken() { 2384 return _getToken.apply(this, arguments); 2385 } 2386 return getToken; 2387 }(), 2388 getFromLocalStorage: function () { 2389 var _getFromLocalStorage = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(key, timer) { 2390 var localStorageValue; 2391 return _regenerator.default.wrap(function (_context4) { 2392 while (1) switch (_context4.prev = _context4.next) { 2393 case 0: 2394 localStorageValue = localStorage.getItem(key); 2395 if (localStorageValue) { 2396 _context4.next = 1; 2397 break; 2398 } 2399 return _context4.abrupt("return", setTimeout(ecommerce.getFromLocalStorage.bind(null, key), 250)); 2400 case 1: 2401 clearTimeout(timer); 2402 return _context4.abrupt("return", localStorageValue); 2403 case 2: 2404 case "end": 2405 return _context4.stop(); 2406 } 2407 }, _callee4); 2408 })); 2409 function getFromLocalStorage(_x, _x2) { 2410 return _getFromLocalStorage.apply(this, arguments); 2411 } 2412 return getFromLocalStorage; 2413 }(), 2414 ecommerceStatus: function ecommerceStatus(config) { 2415 if (ecommerce.isEmptyObject(config)) { 2416 return; 2417 } 2418 // handle ribbon log out event 2419 window.ribbonLogoutUrl = config.logoutUrl; 2420 if (ecommerce.ribbonElement) { 2421 ecommerce.ribbonElement.addEventListener('userSignOut', function (event) { 2422 // always redirect to home page when logging out on AEM/Storefront 2423 window.location = "".concat(window.location.protocol, "//").concat(window.location.hostname.indexOf('my.') > -1 ? 'www.illumina.com' : window.location.hostname); 2424 }); 2425 } 2426 ecommerce.loadCart(config); 2427 }, 2428 removeXSRFTokenOnUserTimeOut: function removeXSRFTokenOnUserTimeOut(config) { 2429 if (ecommerce.ribbonElement) { 2430 ecommerce.ribbonElement.addEventListener('userTimeout', function (event) { 2431 var xsrfCookie = (0, _ilmn.getCookie)('xsrf-token'); 2432 if (xsrfCookie) { 2433 (0, _clearCookie.default)('xsrf-token', null); 2434 } 2435 }); 2436 } 2437 }, 2438 loadCart: function loadCart(config) { 2439 var refreshMiniCartEvent = new Event('refreshMiniCart'); 2440 window.dispatchEvent(refreshMiniCartEvent); 2441 (0, _ilmn.setCookie)('returnUrl', window.location.href, 365, null); 2442 }, 2443 goToCart: function goToCart() { 2444 var _ecommerce$config, _ecommerce$config2; 2445 var targetCookie = (0, _ilmn.getCookie)('returnUrl'); 2446 if (targetCookie.length && (_ecommerce$config = ecommerce.config) !== null && _ecommerce$config !== void 0 && _ecommerce$config.cartUrl) { 2447 (0, _ilmn.setCookie)('returnUrl', ecommerce.config.cartUrl, 365, null); 2448 } 2449 if ((_ecommerce$config2 = ecommerce.config) !== null && _ecommerce$config2 !== void 0 && _ecommerce$config2.checkOutUrl) { 2450 window.location.href = ecommerce.config.checkOutUrl; 2451 } 2452 }, 2453 addToCart: function () { 2454 var _addToCart = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(callType, payload) { 2455 return _regenerator.default.wrap(function (_context5) { 2456 while (1) switch (_context5.prev = _context5.next) { 2457 case 0: 2458 return _context5.abrupt("return", ecommerce.getECommerceConfig().then(function (config) { 2459 return ecommerce.getToken().then(function (token) { 2460 return _user.default.getUserCartId(ecommerce).then(function (cartId) { 2461 var psTokenCookie = (0, _ilmn.getCookie)('psToken'); 2462 var epGuestTokenCookie = (0, _ilmn.getCookie)('ep-guest-token'); 2463 var addToCartAPIUrl = ecommerce.getAddToCartAPIUrl(config, psTokenCookie, callType, cartId); 2464 var headers = _objectSpread(_objectSpread(_objectSpread({ 2465 'Content-Type': 'application/json' 2466 }, psTokenCookie ? { 2467 'psToken': psTokenCookie 2468 } : {}), !psTokenCookie && epGuestTokenCookie ? { 2469 'ep-guest-token': epGuestTokenCookie 2470 } : {}), token ? { 2471 'x-xsrf-token': token 2472 } : {}); 2473 return ecommerce.setData(addToCartAPIUrl, headers, payload).then(function (response) { 2474 var responseObject = (response === null || response === void 0 ? void 0 : response.data) || {}; 2475 try { 2476 responseObject.status = response.status; 2477 responseObject.cartId = cartId; 2478 } catch (error) { 2479 console.debug('Failed to add products to the cart'); 2480 } 2481 return responseObject; 2482 }); 2483 }); 2484 }); 2485 })); 2486 case 1: 2487 case "end": 2488 return _context5.stop(); 2489 } 2490 }, _callee5); 2491 })); 2492 function addToCart(_x3, _x4) { 2493 return _addToCart.apply(this, arguments); 2494 } 2495 return addToCart; 2496 }(), 2497 getAddToCartAPIUrl: function getAddToCartAPIUrl(config, psTokenCookie, callType, cartId) { 2498 var _config$addToCart; 2499 var protocolHost = config.commerceHttpsProtocolHost; 2500 var url = "".concat(protocolHost, "/public").concat((_config$addToCart = config.addToCart) === null || _config$addToCart === void 0 ? void 0 : _config$addToCart.replace('{cartId}', cartId)); 2501 if (callType === 'customAddToCart') {
2502 url = protocolHost + config.addCustomProductsToCart; 2503 } else if (psTokenCookie) { 2504 url = protocolHost + config.addToCart.replace('{cartId}', cartId); 2505 } 2506 return url; 2507 }, 2508 getRegionLocale: function getRegionLocale() { 2509 var regionTag = document.querySelector('meta[name="region"]'); 2510 var localeTag = document.querySelector('meta[name="locale"]'); 2511 if (regionTag && localeTag) { 2512 var region = "/".concat(regionTag.getAttribute('content')); 2513 var locale = "/".concat(localeTag.getAttribute('content')); 2514 return region + locale; 2515 } else { 2516 return '/amr/en_US'; 2517 } 2518 }, 2519 findProducts: function () { 2520 var _findProducts = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6(skus) { 2521 return _regenerator.default.wrap(function (_context6) { 2522 while (1) switch (_context6.prev = _context6.next) { 2523 case 0: 2524 if (!ecommerce.isLoggedIn) { 2525 _context6.next = 1; 2526 break; 2527 } 2528 return _context6.abrupt("return", ecommerce.findProductsSignedIn(skus)); 2529 case 1: 2530 return _context6.abrupt("return", ecommerce.findProductsSignedOut(skus)); 2531 case 2: 2532 case "end": 2533 return _context6.stop(); 2534 } 2535 }, _callee6); 2536 })); 2537 function findProducts(_x5) { 2538 return _findProducts.apply(this, arguments); 2539 } 2540 return findProducts; 2541 }(), 2542 findProductsSignedOut: function () { 2543 var _findProductsSignedOut = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(skus) { 2544 var productIds, currentPagePath, locale, productsAPIUrl; 2545 return _regenerator.default.wrap(function (_context7) { 2546 while (1) switch (_context7.prev = _context7.next) { 2547 case 0: 2548 if (!(skus && skus.length)) { 2549 _context7.next = 1; 2550 break; 2551 } 2552 productIds = skus.join(','); 2553 currentPagePath = window.location.pathname.replace('.html', ''); 2554 locale = ecommerce.getRegionLocale(); 2555 productsAPIUrl = "".concat(currentPagePath, ".productsbyid.json?productIds=").concat(productIds, "&locale=").concat(locale); 2556 return _context7.abrupt("return", ecommerce.getData(productsAPIUrl).then(function (response) { 2557 ecommerce.currencyCode = ecommerce.getCurrencyCodeFromProductLookup(response); 2558 return response || {}; 2559 })); 2560 case 1: 2561 return _context7.abrupt("return", {}); 2562 case 2: 2563 case "end": 2564 return _context7.stop(); 2565 } 2566 }, _callee7); 2567 })); 2568 function findProductsSignedOut(_x6) { 2569 return _findProductsSignedOut.apply(this, arguments); 2570 } 2571 return findProductsSignedOut; 2572 }(), 2573 findProductsSignedIn: function () { 2574 var _findProductsSignedIn = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8(skus) { 2575 return _regenerator.default.wrap(function (_context8) { 2576 while (1) switch (_context8.prev = _context8.next) { 2577 case 0: 2578 return _context8.abrupt("return", ecommerce.getECommerceConfig().then(function (ecommerceConfig) { 2579 var productLookupsEndpoint = '/bin/myillumina/v1/product/lookups'; 2580 if (productLookupsEndpoint) { 2581 return ecommerce.getToken().then(function (token) { 2582 var psTokenCookie = (0, _ilmn.getCookie)('psToken'); 2583 var epGuestTokenCookie = (0, _ilmn.getCookie)('ep-guest-token'); 2584 var priceAPIUrl = "".concat(productLookupsEndpoint); 2585 var productCodesData = JSON.stringify({ 2586 productId: skus, 2587 locale: ecommerce.getRegionLocale() 2588 }); 2589 var headers = _objectSpread(_objectSpread(_objectSpread({ 2590 'Content-Type': 'application/json' 2591 }, psTokenCookie ? { 2592 'psToken': psTokenCookie 2593 } : {}), epGuestTokenCookie ? { 2594 'ep-guest-token': epGuestTokenCookie 2595 } : {}), {}, { 2596 'x-xsrf-token': token 2597 }); 2598 return ecommerce.setData(priceAPIUrl, headers, productC
2598odesData).then(function (response) { 2599 ecommerce.currencyCode = ecommerce.getCurrencyCodeFromProductLookup(response); 2600 return response || {}; 2601 }); 2602 }); 2603 } else { 2604 return {}; 2605 } 2606 })); 2607 case 1: 2608 case "end": 2609 return _context8.stop(); 2610 } 2611 }, _callee8); 2612 })); 2613 function findProductsSignedIn(_x7) { 2614 return _findProductsSignedIn.apply(this, arguments); 2615 } 2616 return findProductsSignedIn; 2617 }(), 2618 getCurrencyCodeFromProductLookup: function getCurrencyCodeFromProductLookup(response) { 2619 var _response$data; 2620 var currencyCode = 'USD'; 2621 var responseProducts = response === null || response === void 0 || (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.products; 2622 if (responseProducts) { 2623 var _iterator = _createForOfIteratorHelper(responseProducts), 2624 _step; 2625 try { 2626 for (_iterator.s(); !(_step = _iterator.n()).done;) { 2627 var product = _step.value; 2628 if (product !== null && product !== void 0 && product.currencyCode) { 2629 currencyCode = product.currencyCode; 2630 break; 2631 } 2632 } 2633 } catch (err) { 2634 _iterator.e(err); 2635 } finally { 2636 _iterator.f(); 2637 } 2638 } 2639 return currencyCode; 2640 }, 2641 findCustomProducts: function () { 2642 var _findCustomProducts = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9(projectIds) { 2643 return _regenerator.default.wrap(function (_context9) { 2644 while (1) switch (_context9.prev = _context9.next) { 2645 case 0: 2646 return _context9.abrupt("return", ecommerce.getECommerceConfig().then(function (ecommerceConfig) { 2647 if (ecommerceConfig.getCustomProducts) { 2648 var psTokenCookie = (0, _ilmn.getCookie)('psToken'); 2649 var priceEndPoint = ecommerceConfig.getCustomProducts; 2650 if ((projectIds === null || projectIds === void 0 ? void 0 : projectIds.length) > 0) { 2651 var priceAPIUrl = priceEndPoint.replace(/<project_id>/, projectIds.join(",")); 2652 var headers = _objectSpread({ 2653 'Content-Type': 'application/json' 2654 }, psTokenCookie ? { 2655 'psToken': psTokenCookie 2656 } : {}); 2657 if (priceAPIUrl.length) { 2658 return ecommerce.getData(priceAPIUrl, headers).then(function (response) { 2659 var respObj = response === null || response === void 0 ? void 0 : response.data; 2660 if (respObj !== null && respObj !== void 0 && respObj.length) { 2661 var products = []; 2662 respObj.forEach(function (project) { 2663 var _project$Products; 2664 if (project !== null && project !== void 0 && (_project$Products = project.Products) !== null && _project$Products !== void 0 && _project$Products.length) { 2665 var vcs = []; 2666 project.Products[0].ConfigurationItems.forEach(function (vc) { 2667 return vcs.push({ 2668 'Key': vc.Key, 2669 'Value': vc.Value 2670 }); 2671 }); 2672 products.push({ 2673 'ConfigurationItems': vcs, 2674 'AccountID': null, 2675 'Price': project.Products[0].Price, 2676 'BaseSpace': 'N', 2677 'Quantity': project.Products[0].Quantity, 2678 'ConfigurationName': project.Products[0].ConfigurationName, 2679 'CatalogId': project.Products[0].CatalogId, 2680 'ConfigurationId': project.ConfigurationId, 2681 'IsReadOnly': project.Products[0].Mandatory, 2682 'CurrencySymbol': project.Products[0].CurrencySymbol, 2683 'Errors': project.Errors 2684 }); 2685 } 2686 }); 2687 return products; 2688 } else { 2689 return {}; 2690 } 2691 }); 2692 } else { 2693 return {}; 2694 } 2695 } else { 2696 return {}; 2697 } 2698 } else { 2699 return {}; 2700 } 2701 })); 2702 case 1: 2703 case "end": 2704 return _context9.stop(); 2705 } 2706 }, _callee9); 2707 })); 2708 function findCustomProducts(_x8) { 2709 return _findCustomProducts.apply(this, arguments); 2710 } 2711 return findCustomProducts; 2712 }(),
2713 // TODO: perhaps move get/set data helpers to a separate file for reusability 2714 getData: function () { 2715 var _getData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0(url, headers) { 2716 var options; 2717 return _regenerator.default.wrap(function (_context0) { 2718 while (1) switch (_context0.prev = _context0.next) { 2719 case 0: 2720 if (!(url !== null && url !== void 0 && url.length)) { 2721 _context0.next = 1; 2722 break; 2723 } 2724 options = { 2725 method: 'GET' 2726 }; 2727 if (!ecommerce.isEmptyObject(headers)) { 2728 options.headers = headers; 2729 } 2730 return _context0.abrupt("return", fetch(url, options).then(function (response) { 2731 return response.text().then(function (text) { 2732 var json = (0, _global.safeJsonParse)(stripXssiPrefix(text)); 2733 var responseObject = { 2734 'headers': response.headers, 2735 'status': response.status, 2736 'data': json 2737 }; 2738 return responseObject; 2739 }); 2740 }).catch(function (error) { 2741 console.log(error); 2742 return {}; 2743 })); 2744 case 1: 2745 return _context0.abrupt("return", 'no url passed'); 2746 case 2: 2747 case "end": 2748 return _context0.stop(); 2749 } 2750 }, _callee0); 2751 })); 2752 function getData(_x9, _x0) { 2753 return _getData.apply(this, arguments); 2754 } 2755 return getData; 2756 }(), 2757 setData: function () { 2758 var _setData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1(url, headers, data) { 2759 var options; 2760 return _regenerator.default.wrap(function (_context1) { 2761 while (1) switch (_context1.prev = _context1.next) { 2762 case 0: 2763 if (!(url !== null && url !== void 0 && url.length)) { 2764 _context1.next = 1; 2765 break; 2766 } 2767 options = { 2768 method: 'POST', 2769 headers: { 2770 'Content-Type': 'application/json' 2771 }, 2772 body: data 2773 }; 2774 if (!ecommerce.isEmptyObject(headers)) { 2775 options.headers = headers; 2776 } 2777 return _context1.abrupt("return", fetch(url, options).then(function (response) { 2778 return response.text().then(function (text) { 2779 var json = (0, _global.safeJsonParse)(stripXssiPrefix(text)); 2780 var responseObject = { 2781 'headers': response.headers, 2782 'status': response.status, 2783 'data': json 2784 }; 2785 return responseObject; 2786 }); 2787 }).catch(function (error) { 2788 console.log(error); 2789 })); 2790 case 1: 2791 return _context1.abrupt("return", 'no url passed'); 2792 case 2: 2793 case "end": 2794 return _context1.stop(); 2795 } 2796 }, _callee1); 2797 })); 2798 function setData(_x1, _x10, _x11) { 2799 return _setData.apply(this, arguments); 2800 } 2801 return setData; 2802 }(), 2803 isEmptyObject: function isEmptyObject(obj) { 2804 for (var prop in obj) { 2805 if (Object.prototype.hasOwnProperty.call(obj, prop)) { 2806 return false; 2807 } 2808 } 2809 return true; 2810 }, 2811 showLegacyAddToCartErrorMessage: function showLegacyAddToCartErrorMessage(errorData) { 2812 var msgElement = document.getElementById('errorModalMsg'); 2813 if (!msgElement) return; 2814 if (msgElement.parentNode) { 2815 var existingContainers = msgElement.parentNode.querySelectorAll('.modal-error-list'); 2816 existingContainers.forEach(function (container) { 2817 return container.remove(); 2818 }); 2819 } 2820 var sourceData = (errorData === null || errorData === void 0 ? void 0 : errorData.debugMessages) || errorData; 2821 var errorList = Array.isArray(sourceData) ? sourceData : [sourceData]; 2822 var getI18n = function getI18n(text) { 2823 if (window.Granite && window.Granite.I18n) { 2824 return window.Granite.I18n.get(text); 2825 } 2826 return text; 2827 }; 2828 msgElement.innerHTML = "\n <h5 class=\"modal-error-title\">".concat(getI18n('Error'), "</h5>\n "); 2829 var itemsHtml = errorList.map(function (item, index) { 2830 var text = (item === null || item === void 0 ? void 0 : item.debugMessage) || (item === null || item === void 0 ? void 0 : item.message) || item; 2831 return "\n <div class=\"alert alert-error\">\n <div class=\"error-message-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\">\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" \n fill=\"red\" \n stroke=\"red\" \n stroke-width=\"2\" \n stroke-linecap=\"round\" \n stroke-linejoin=\"round\"/>\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" stroke=\"white\" stroke-width=\"3\" stroke-linecap=\"round\"/>\n </svg>\n </div>\n <p class=\"modal-error-item-text\">".concat(text, "</p>\n </div>\n "); 2832 }).join(''); 2833 msgElement.insertAdjacentHTML('afterend', "\n <div class=\"modal-error-list\">\n ".concat(itemsHtml, "\n </div>\n ")); 2834 if (window.$) {
2835 window.$('#errorModal').modal('show'); 2836 } 2837 } 2838}; 2839 2840// expose to window for legacy libraries 2841window.ecommerce = ecommerce; 2842window.ecommerceUser = _user.default; 2843var _default = exports.default = ecommerce; 2844 2845},{"../global":73,"./user":72,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/defineProperty":5,"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/regenerator":22,"ilmn":30,"ilmn/clearCookie":23}],72:[function(require,module,exports){ 2846"use strict"; 2847 2848var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 2849Object.defineProperty(exports, "__esModule", { 2850 value: true 2851}); 2852exports.default = void 0; 2853var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); 2854var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); 2855var _ilmn = require("ilmn"); 2856var _global = require("../global"); 2857/* 2858 * Contains user-specific logic ported from globalnav/js/ecom-functions.js 2859 */ 2860 2861var user = { 2862 isUserProfileSet: false, 2863 isFetchingUserData: false, 2864 getProfileLocalStorage: function getProfileLocalStorage(ecommerce) { 2865 var userLocalStorage = window.localStorage.getItem(ecommerce.userProfileKey); 2866 return userLocalStorage ? (0, _global.safeJsonParse)(userLocalStorage) : null; 2867 }, 2868 setProfileLocalStorage: function setProfileLocalStorage(userProfileObj, ecommerce) { 2869 localStorage.setItem(ecommerce.userProfileKey, JSON.stringify(userProfileObj)); 2870 }, 2871 loadUserProfile: function () { 2872 var _loadUserProfile = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(ecommerce) { 2873 var epGuestTokenCookie; 2874 return _regenerator.default.wrap(function (_context) { 2875 while (1) switch (_context.prev = _context.next) { 2876 case 0: 2877 epGuestTokenCookie = (0, _ilmn.getCookie)('ep-guest-token'); 2878 if (!epGuestTokenCookie) { 2879 localStorage.removeItem(ecommerce.userProfileKey); 2880 } 2881 return _context.abrupt("return", user.userProfile(ecommerce).then(function (userProfileData) { 2882 user.setProfileLocalStorage(userProfileData, ecommerce); 2883 })); 2884 case 1: 2885 case "end": 2886 return _context.stop(); 2887 } 2888 }, _callee); 2889 })); 2890 function loadUserProfile(_x) { 2891 return _loadUserProfile.apply(this, arguments); 2892 } 2893 return loadUserProfile; 2894 }(), 2895 userProfile: function () { 2896 var _userProfile = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(ecommerce) { 2897 return _regenerator.default.wrap(function (_context2) { 2898 while (1) switch (_context2.prev = _context2.next) { 2899 case 0: 2900 if (!user.isFetchingUserData) { 2901 _context2.next = 1; 2902 break; 2903 } 2904 return _context2.abrupt("return", user.userFetch); 2905 case 1: 2906 if (user.isUserProfileSet) { 2907 _context2.next = 2; 2908 break; 2909 } 2910 user.isFetchingUserData = true; 2911 user.userFetch = ecommerce.getECommerceConfig().then(function (ecommerceConfig) { 2912 var configHost = ecommerceConfig === null || ecommerceConfig === void 0 ? void 0 : ecommerceConfig.commerceHttpsProtocolHost; 2913 var configProfile = ecommerceConfig.profile; 2914 if (configHost && configProfile) { 2915 var profileApiUrl = configHost + configProfile; 2916 var psTokenCookie = (0, _ilmn.getCookie)('psToken'); 2917 var headers = psTokenCookie ? { 2918 'Content-Type': 'application/json', 2919 'psToken': psTokenCookie 2920 } : {}; 2921 if (profileApiUrl !== null && profileApiUrl !== void 0 && profileApiUrl.length) { 2922 return ecommerce.getData(profileApiUrl, headers).then(function (response) { 2923 var responseData = response.data; 2924 var profile = responseData.data; 2925 var status = response.status; 2926 var unauthorizedPage = responseData.unauthorizedPage; // TODO: not sure which scenario returns this 2927 user.isUserProfileSet = true; 2928 if (profile) { 2929 return user.setKnownUserProfileState(response, ecommerce); 2930 } else if (status === 401) { 2931 return user.setGuestUserProfileState(ecommerce); 2932 } else if (status === 403) { 2933 return responseData.error; 2934 } 2935 return {}; 2936 }); 2937 } else { 2938 return {}; 2939 } 2940 } else { 2941 return {}; 2942 } 2943 }); 2944 return _context2.abrupt("return", user.userFetch); 2945 case 2: 2946 return _context2.abrupt("return", {}); 2947 case 3: 2948 case "end": 2949 return _context2.stop(); 2950 } 2951 }, _callee2); 2952 })); 2953 function userProfile(_x2) { 2954 return _userProfile.apply(this, arguments); 2955 } 2956 return userProfile; 2957 }(), 2958 setKnownUserProfileState: function setKnownUserProfileState(response, ecommerce) { 2959 var responseData = response === null || response === void 0 ? void 0 : response.data; 2960 var profile = responseData === null || responseData === void 0 ? void 0 : responseData.data; 2961 var myIlluminaRoles = (profile === null || profile === void 0 ? void 0 : profile.roles) || [];
2962 var myIlluminaUserType = myIlluminaRoles.map(function (myIlluminaRole) { 2963 return myIlluminaRole.toLowerCase(); 2964 }); 2965 var myIlluminaID = (profile === null || profile === void 0 ? void 0 : profile.pGuid) || ''; 2966 var xsrfToken = response.headers.get('xsrf-token'); 2967 if (xsrfToken) { 2968 var _profile$sessionDetai; 2969 var sameSiteOption = (profile === null || profile === void 0 || (_profile$sessionDetai = profile.sessionDetails) === null || _profile$sessionDetai === void 0 ? void 0 : _profile$sessionDetai.sessionType) === 'punch_out' ? 'none' : 'strict'; 2970 (0, _ilmn.setCookie)('xsrf-token', xsrfToken, '', null, '/', sameSiteOption, true); 2971 } 2972 (0, _ilmn.setCookie)('ep-guest-token', null, -1, null); 2973 ecommerce.setLoggedInState(true); 2974 window.localStorage.setItem('myIlluminaID', myIlluminaID); 2975 window.localStorage.setItem('myIlluminaUserType', JSON.stringify(myIlluminaUserType)); 2976 return profile; 2977 }, 2978 setGuestUserProfileState: function () { 2979 var _setGuestUserProfileState = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(ecommerce) { 2980 var _profileObject$roles; 2981 var guestProfile, profileObject, epGuestTokenCookie; 2982 return _regenerator.default.wrap(function (_context3) { 2983 while (1) switch (_context3.prev = _context3.next) { 2984 case 0: 2985 (0, _ilmn.setCookie)('psToken', null, -1, null); 2986 guestProfile = localStorage.getItem(ecommerce.userProfileKey); 2987 profileObject = guestProfile && guestProfile !== 'undefined' ? (0, _global.safeJsonParse)(guestProfile) : {}; 2988 epGuestTokenCookie = (0, _ilmn.getCookie)('ep-guest-token'); 2989 ecommerce.setLoggedOutState(); 2990 // retain guest profile if already present 2991 if (!(epGuestTokenCookie && ((_profileObject$roles = profileObject.roles) === null || _profileObject$roles === void 0 ? void 0 : _profileObject$roles.indexOf('GUEST')) >= 0)) { 2992 _context3.next = 1; 2993 break; 2994 } 2995 return _context3.abrupt("return", profileObject); 2996 case 1: 2997 return _context3.abrupt("return", {}); 2998 case 2: 2999 case "end": 3000 return _context3.stop(); 3001 } 3002 }, _callee3); 3003 })); 3004 function setGuestUserProfileState(_x3) { 3005 return _setGuestUserProfileState.apply(this, arguments); 3006 } 3007 return setGuestUserProfileState; 3008 }(), 3009 guestProfile: function () { 3010 var _guestProfile = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(ecommerce) { 3011 return _regenerator.default.wrap(function (_context4) { 3012 while (1) switch (_context4.prev = _context4.next) { 3013 case 0: 3014 return _context4.abrupt("return", ecommerce.getECommerceConfig().then(function (ecommerceConfig) { 3015 if (ecommerceConfig.commerceHttpsProtocolHost && ecommerceConfig.profile) { 3016 var COOKIE_EXPIRE_IN = 7; 3017 var profileAPIurl = "".concat(ecommerceConfig.commerceHttpsProtocolHost, "/public").concat(ecommerceConfig.profile); 3018 var epGuestTokenCookie = (0, _ilmn.getCookie)('ep-guest-token'); 3019 var headers = epGuestTokenCookie ? { 3020 'Content-Type': 'application/json', 3021 'ep-guest-token': epGuestTokenCookie 3022 } : {}; 3023 return ecommerce.getData(profileAPIurl, headers).then(function (response) { 3024 // handle 403 + ecommerceConfig.unauthorizedPage condition 3025 if (response.status === '403' && ecommerceConfig.unauthorizedPage) { 3026 window.location = ecommerceConfig.unauthorizedPage; 3027 } else { 3028 var _response$headers, _response$data; 3029 var epGuestToken = (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers.get('ep-guest-token'); 3030 if (epGuestToken) { 3031 (0, _ilmn.setCookie)('ep-guest-token', epGuestToken, COOKIE_EXPIRE_IN, null); 3032 } 3033 if ((_response$data = response.data) !== null && _response$data !== void 0 && _response$data.data) { 3034 user.setProfileLocalStorage(response.data.data, ecommerce); 3035 return response.data.data; 3036 } 3037 return {}; 3038 } 3039 return {}; 3040 }); 3041 } else { 3042 return {}; 3043 } 3044 })); 3045 case 1: 3046 case "end": 3047 return _context4.stop(); 3048 } 3049 }, _callee4); 3050 })); 3051 function guestProfile(_x4) { 3052 return _guestProfile.apply(this, arguments); 3053 } 3054 return guestProfile; 3055 }(), 3056 getUserCartId: function () { 3057 var _getUserCartId = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(ecommerce) { 3058 return _regenerator.default.wrap(function (_context5) { 3059 while (1) switch (_context5.prev = _context5.next) { 3060 case 0: 3061 return _context5.abrupt("return", ecommerce.getFromLocalStorage(ecommerce.userProfileKey).then(function (data) { 3062 var userData = (0, _global.safeJsonParse)(data); 3063 if (!(userData !== null && userData !== void 0 && userData.cartId)) { 3064 return user.guestProfile(ecommerce).then(function (guestProfile) { 3065 return (guestProfile === null || guestProfile === void 0 ? void 0 : guestProfile.cartId) || null; 3066 }); 3067 } else { 3068 return userData.cartId; 3069 } 3070 })); 3071 case 1: 3072 case "end": 3073 return _context5.stop(); 3074 } 3075 }, _callee5); 3076 })); 3077 function getUserCartId(_x5) { 3078 return _getUserCartId.apply(this, arguments); 3079 } 3080 return getUserCartId; 3081 }() 3082}; 3083var _default = exports.default = user; 3084 3085},{"../global":73,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/regenerator":22,"ilmn":30}],73:[function(require,module,exports){ 3086"use strict"; 3087 3088Object.defineProperty(exports, "__esModule", { 3089 value: true 3090}); 3091exports.debounce = debounce; 3092exports.getScrollBarWidth = getScrollBarWidth; 3093exports.isMobileDevice = isMobileDevice; 3094exports.mediaQueryLg = mediaQueryLg; 3095exports.mediaQuerySm = mediaQuerySm; 3096exports.round10 = round10; 3097exports.safeJsonParse = safeJsonParse; 3098exports.smoothScroll = smoothScroll; 3099exports.throttle = throttle; 3100function isMobileDevice() { 3101 return window.matchMedia('only screen and (max-width: 768px)').matches; 3102} // TODO: Comment-we should revisit this function to determine whether max-width should 767px or 768px 3103 3104function mediaQuerySm() { 3105 return window.matchMedia('only screen and (max-width: 767px)').matches; 3106} 3107function mediaQueryLg() { 3108 return window.matchMedia('only screen and (max-width: 1023px)').matches; 3109} 3110function debounce(func, delay) { 3111 var timer; 3112 return function () { 3113 var _this = this; 3114 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 3115 args[_key] = arguments[_key]; 3116 } 3117 clearTimeout(timer); 3118 timer = setTimeout(function () { 3119 func.apply(_this, args); 3120 }, delay); 3121 }; 3122} 3123function throttle(func, delay) { 3124 var timerFlag = null; 3125 return function () { 3126 if (timerFlag === null) { 3127 func.apply(void 0, arguments); 3128 timerFlag = setTimeout(function () { 3129 timerFlag = null; 3130 }, delay); 3131 } 3132 }; 3133} 3134function round10(x) { 3135 return x % 10 >= 5 ? Math.trunc(x / 10) * 10 + 10 : Math.trunc(x / 10) * 10; 3136} 3137function safeJsonParse(jsonString) { 3138 var parsedData = null; 3139 try { 3140 parsedData = JSON.parse(jsonString); 3141 } catch (_unused) { 3142 console.log('Unable to parse JSON string'); 3143 } 3144 return parsedData || {}; 3145} 3146 3147// src: adapted from a couple SO posts, which were based on a blog post. Bootstrap 4 uses the same general approach 3148function getScrollBarWidth() { 3149 var inner = document.createElement('p'); 3150 var outer = document.createElement('div'); 3151 inner.cssText = "\n width: 100%;\n height: 100%;\n "; 3152 outer.cssText = "\n position: absolute;\n top: 0px;\n left: 0px;\n visibility: hidden;\n width: 100px;\n height: 100px;\n overflow: hidden;\n "; 3153 outer.appendChild(inner); 3154 document.body.appendChild(outer); 3155 var fullWidth = inner.offsetWidth; 3156 outer.style.overflow = 'scroll'; 3157 var scrollWidth = inner.offsetWidth; 3158 if (fullWidth === scrollWidth) { 3159 scrollWidth = outer.clientWidth; 3160 } 3161 document.body.removeChild(outer); 3162 return "".concat(fullWidth - scrollWidth, "px"); 3163} 3164function smoothScroll(element, offset, callback) { 3165 if (!element) { 3166 return; 3167 } 3168 var scrollOffset = offset ? parseInt(offset, 10) : 0; 3169 var scrollCallback = typeof callback === 'function' ? callback : null; 3170 var debounceFn; 3171 var elementPosition = Math.floor(element.getBoundingClientRect().top + window.scrollY - scrollOffset); 3172 var lowestScrollPosition = document.body.scrollHeight - window.innerHeight; 3173 var scrollDestination = elementPosition <= lowestScrollPosition ? elementPosition : lowestScrollPosition; 3174 var onScroll = function onScroll() { 3175 var scrollTop = window.scrollY || window.pageYOffset; 3176 if (scrollTop >= scrollDestination) { 3177 if (scrollCallback) { 3178 scrollCallback(); 3179 } 3180 window.removeEventListener('scroll', debounceFn); 3181 } 3182 }; 3183 debounceFn = debounce(onScroll, 250); 3184 window.addEventListener('scroll', debounceFn); 3185 window.scrollTo({ 3186 top: scrollDestination, 3187 behavior: 'smooth' 3188 }); 3189} 3190 3191},{}],74:[function(require,module,exports){ 3192"use strict"; 3193 3194Object.defineProperty(exports, "__esModule", { 3195 value: true 3196}); 3197exports.analytics = analytics; 3198exports.handleAddToCartError = handleAddToCartError; 3199exports.handleAddToCartSuccess = handleAddToCartSuccess; 3200var _linkUtils = require("../../../acdl/js/handlers/linkUtils"); 3201var _linkData = require("../../../acdl/js/dataObject/linkData"); 3202var _formUtils = require("../../../acdl/js/handlers/formUtils"); 3203var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 3204var _cartData = require("../../../acdl/js/dataObject/cartData"); 3205var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3206var _productCartAddActionEvent = require("../../../acdl/js/pageAction/productCartAddActionEvent"); 3207var _linkAction = require("../../../acdl/js/pageAction/linkAction"); 3208var _errorActionEvent = require("../../../acdl/js/pageAction/errorActionEvent"); 3209var componentRegion = null; 3210function analytics() { 3211 componentRegion = 'addtocart'; 3212 var productCartComponents = document.querySelectorAll('.addtocart');
3213 productCartComponents.forEach(function (addToCartInstance) { 3214 addToCartInstance.addEventListener('click', handleComponentClicks); 3215 var loginButton = addToCartInstance.querySelector('.selection-summary__button--login'); 3216 var addToCartButtons = addToCartInstance.querySelectorAll('.selection-summary__button--add-to-cart, .add-to-cart__mobile-button'); 3217 var eolTriggers = addToCartInstance.querySelectorAll('.eol-message-trigger'); 3218 var viewMoreButtons = addToCartInstance.querySelectorAll('.product__description button'); 3219 if (loginButton) { 3220 loginButton.addEventListener('logInClick', function (event) { 3221 handleCustomRegionClick(event, 'add to cart'); 3222 }); 3223 } 3224 addToCartButtons.forEach(function (button) { 3225 button.addEventListener('addToCartSuccess', handleAddToCartSuccess); 3226 button.addEventListener('addToCartError', handleAddToCartError); 3227 }); 3228 eolTriggers.forEach(function (element) { 3229 element.addEventListener('click', handleEolTriggerClick); 3230 }); 3231 viewMoreButtons.forEach(function (button) { 3232 button.addEventListener('click', handleViewMoreClick); 3233 }); 3234 }); 3235} 3236function handleComponentClicks(event) { 3237 var generalLinks = ['.selection-summary__product-remove']; 3238 var isGeneralLink = generalLinks.some(function (selector) { 3239 return event.target.closest(selector); 3240 }); 3241 var isModalLink = event.target.closest('.modal'); 3242 if (isGeneralLink || isModalLink) { 3243 handleCustomRegionClick(event); 3244 } 3245} 3246function handleCustomRegionClick(event) { 3247 if ((0, _commonUtils.isClickable)(event)) { 3248 try { 3249 var domEventType = event.type; 3250 var clickableElement = (0, _commonUtils.getClickableElement)(event); 3251 var linkJson = (0, _linkUtils.getLinkData)(clickableElement, componentRegion); 3252 var dataLayerJson = (0, _linkAction.linkActionEvent)(linkJson, domEventType); 3253 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3254 } catch (_unused) {} 3255 } 3256} 3257function handleAddToCartSuccess(event) { 3258 if ((0, _commonUtils.isClickable)(event)) { 3259 var addToCartData = event.detail; 3260 var productsObject = addToCartData.productsList; 3261 var cartObject = { 3262 cartID: addToCartData.cartId, 3263 currencyCode: addToCartData.currencyCode 3264 }; 3265 // Data Objects 3266 var link; 3267 if (addToCartData.isBundlesProduct) { 3268 var targetElement = event.target; 3269 var linkUrl = targetElement.getAttribute('href') || null; 3270 var linkType = "other"; 3271 var linkRegion = "productdetail-bundles"; 3272 var gatedContent = (0, _formUtils.getGatedContentValue)(targetElement) || null; 3273 var linkContent = addToCartData.linkContent ? (0, _commonUtils.getLowerCase)(addToCartData.linkContent.trim()) : null; 3274 link = (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 3275 } else { 3276 link = (0, _linkUtils.createLinkData)(event.target, componentRegion); 3277 } 3278 var cartDetails = (0, _cartData.cartDetailsData)(cartObject); 3279 var prodFindingMethod = addToCartData.productFindingMethod; 3280 var domEventType = "click"; 3281 var dataLayerJson = (0, _productCartAddActionEvent.productCartAddActionEvent)(link, productsObject, cartDetails, prodFindingMethod, domEventType); 3282 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3283 } 3284} 3285function handleAddToCartError(event) { 3286 var dataLayerJson = (0, _errorActionEvent.errorActionEvent)(event.detail, 'click'); 3287 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3288} 3289function handleEolTriggerClick(event) { 3290 try { 3291 var domEventType = event.type; 3292 var clickableElement = event.target.closest('.eol-message-trigger'); 3293 var linkJson = (0, _linkUtils.createLinkDataFromAttribute)(clickableElement, componentRegion); 3294 var dataLayerJson = (0, _linkAction.linkActionEvent)(linkJson, domEventType); 3295 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3296 } catch (_unused2) { 3297 console.log('Unable to read data layer values from EOL Message Trigger'); 3298 } 3299} 3300function handleViewMoreClick(event) { 3301 try { 3302 var _event$target; 3303 var domEventType = event.type; 3304 var clickedText = ((_event$target = event.target) === null || _event$target === void 0 || (_event$target = _event$target.closest('.rad-btn')) === null || _event$target === void 0 ? void 0 : _event$target.dataset.swapText) || 'View more'; 3305 var linkJson = (0, _linkData.setLinkData)(clickedText, 'other', componentRegion, null, 'normal'); 3306 var dataLayerJson = (0, _linkAction.linkActionEvent)(linkJson, domEventType); 3307 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3308 } catch (_unused3) { 3309 console.log('Unable to read data layer values from view more link'); 3310 } 3311} 3312 3313},{"../../../acdl/js/dataObject/cartData":92,"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/commonUtils":102,"../../../acdl/js/handlers/formUtils":105,"../../../acdl/js/handlers/linkUtils":107,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/errorActionEvent":117,"../../../acdl/js/pageAction/linkAction":121,"../../../acdl/js/pageAction/productCartAddActionEvent":123}],75:[function(require,module,exports){ 3314"use strict"; 3315 3316Object.defineProperty(exports, "__esModule", { 3317 value: true 3318}); 3319exports.analytics = analytics; 3320var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3321var _linkData = require("../../../acdl/js/dataObject/linkData"); 3322var _productIncrementActionEvent = require("../../../acdl/js/pageAction/productIncrementActionEvent"); 3323function analytics() { 3324 var productQuantity = document.querySelectorAll('.rad-numeric-stepper__input');
3325 productQuantity.forEach(function (elm) { 3326 elm.addEventListener('changeProductQuantityClick', function (event) { 3327 pushProductIncrementActionEvent(event); 3328 }); 3329 }); 3330} 3331function pushProductIncrementActionEvent(event) { 3332 var productIncrementData = (event === null || event === void 0 ? void 0 : event.detail) || null; 3333 var productsObject = (productIncrementData === null || productIncrementData === void 0 ? void 0 : productIncrementData.linkProducts) || {}; 3334 var prodFindingMethod = (productIncrementData === null || productIncrementData === void 0 ? void 0 : productIncrementData.productFindingMethod) || null; 3335 var linkContent = (0, _linkData.setLinkData)("product-quantity-input", "other", "add to cart", null, 'normal'); 3336 var domEventType = (productIncrementData === null || productIncrementData === void 0 ? void 0 : productIncrementData.domEventType) || null; 3337 var dataLayerJson = (0, _productIncrementActionEvent.productIncrementActionEvent)(productsObject, prodFindingMethod, linkContent, domEventType); 3338 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3339} 3340 3341},{"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/productIncrementActionEvent":124}],76:[function(require,module,exports){ 3342"use strict"; 3343 3344Object.defineProperty(exports, "__esModule", { 3345 value: true 3346}); 3347exports.analytics = analytics; 3348var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 3349var _productsUtils = require("../../../acdl/js/handlers/productsUtils"); 3350var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3351var _productLinkActionEvent = require("../../../acdl/js/pageAction/productLinkActionEvent"); 3352function analytics() { 3353 var pricingDiv = document.querySelectorAll('.product__pricing'); 3354 if (pricingDiv && pricingDiv.length) { 3355 pricingDiv.forEach(function (elm) { 3356 if (elm) { 3357 elm.addEventListener('requestPricingClick', function (event) { 3358 if ((0, _commonUtils.isClickable)(event) && (0, _productsUtils.isRequestPricing)(event)) { 3359 pushProductMerchandisingActionEvent(event); 3360 } 3361 }); 3362 elm.addEventListener('customizeProductClick', function (event) { 3363 if ((0, _commonUtils.isClickable)(event) && (0, _productsUtils.isCustomizeLink)(event)) { 3364 pushProductMerchandisingActionEvent(event); 3365 } 3366 }); 3367 } 3368 }); 3369 } 3370} 3371function pushProductMerchandisingActionEvent(event) { 3372 var _requestPricingData$l, _requestPricingData$l2; 3373 var requestPricingData = (event === null || event === void 0 ? void 0 : event.detail) || null; 3374 var actionEvent = (requestPricingData === null || requestPricingData === void 0 ? void 0 : requestPricingData.event) || null; 3375 var productsObject = (requestPricingData === null || requestPricingData === void 0 || (_requestPricingData$l = requestPricingData.linkProducts) === null || _requestPricingData$l === void 0 ? void 0 : _requestPricingData$l.products) || {}; 3376 var link = (requestPricingData === null || requestPricingData === void 0 || (_requestPricingData$l2 = requestPricingData.linkProducts) === null || _requestPricingData$l2 === void 0 ? void 0 : _requestPricingData$l2.link) || {}; 3377 var prodFindingMethod = (requestPricingData === null || requestPricingData === void 0 ? void 0 : requestPricingData.productFindingMethod) || null; 3378 var domEventType = (requestPricingData === null || requestPricingData === void 0 ? void 0 : requestPricingData.domEventType) || null; 3379 var dataLayerJson = (0, _productLinkActionEvent.productLinkActionEvent)(actionEvent, link, productsObject, prodFindingMethod, domEventType); 3380 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3381} 3382 3383},{"../../../acdl/js/handlers/commonUtils":102,"../../../acdl/js/handlers/productsUtils":110,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/productLinkActionEvent":125}],77:[function(require,module,exports){ 3384"use strict"; 3385 3386Object.defineProperty(exports, "__esModule", { 3387 value: true 3388}); 3389exports.attributionAnalytics = attributionAnalytics; 3390var _attributionActionEvent = require("../../../acdl/js/pageAction/attributionActionEvent"); 3391var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3392/** 3393 * Handles attribution data and pushes it to the Adobe Data Layer (and thus 3394 * to MCP/analytics) so attribution is available even when the user never submits a form. 3395 */ 3396function attributionAnalytics(event) { 3397 if (!(event !== null && event !== void 0 && event.detail)) { 3398 return; 3399 } 3400 var dataLayerJson = (0, _attributionActionEvent.attributionActionEvent)(event.detail); 3401 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3402} 3403 3404},{"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/attributionActionEvent":115}],78:[function(require,module,exports){ 3405"use strict"; 3406 3407Object.defineProperty(exports, "__esModule", { 3408 value: true 3409}); 3410exports.analytics = analytics; 3411var _analytics = require("../add-to-cart/analytics"); 3412function analytics() { 3413 var addToCartButtonBundle = document.querySelector('.pdp-add-bundle-js'); 3414 var addToCartButtonBundleList = document.querySelector('.blp-add-bundle-js'); 3415 var addToCartButtonModalBundles = document.querySelector('.mod-add-bundle-js'); 3416 if (addToCartButtonBundle) { 3417 addToCartButtonBundle.addEventListener("addToCartBundleClick", _analytics.handleAddToCartClick); 3418 } 3419 if (addToCartButtonBundleList) { 3420 addToCartButtonBundleList.addEventListener("addToCartBundleClick", _analytics.handleAddToCartClick); 3421 } 3422 if (addToCartButtonModalBundles) { 3423 addToCartButtonModalBundles.addEventListener("addToCartBundleClick", _analytics.handleAddToCartClick); 3424 } 3425} 3426 3427},{"../add-to-cart/analytics":74}],79:[function(require,module,exports){ 3428"use strict"; 3429 3430var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 3431Object.defineProperty(exports, "__esModule", { 3432 value: true 3433}); 3434exports.analytics = analytics; 3435var _filterClickActionEvent = _interopRequireDefault(require("../../../acdl/js/pageAction/filterClickActionEvent")); 3436var _searchClickActionEvent = _interopRequireDefault(require("../../../acdl/js/pageAction/searchClickActionEvent")); 3437var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3438var _linkData = require("../../../acdl/js/dataObject/linkData"); 3439var _linkAction = require("../../../acdl/js/pageAction/linkAction"); 3440function analytics() { 3441 document.addEventListener('filterChanged', function (event) { 3442 var value = event.detail.analyticsFilterOb; 3443 var filterCategory = event.detail.category; 3444 var filterName = event.detail.name; 3445 var isFilterRemoved = event.detail.isFilterRemoved; 3446 var dataLayerJson = (0, _filterClickActionEvent.default)(value, filterCategory, filterName, isFilterRemoved); 3447 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3448 }); 3449 document.addEventListener('ResultCardClick', function (event) { 3450 var title = event.detail.title; 3451 var href = event.detail.href; 3452 var pageNo = event.detail.pageNumber; 3453 var filterObject = event.detail.filterObj; 3454 var index = event.detail.index; 3455 var dataLayerJson = (0, _searchClickActionEvent.default)(title, href, pageNo, filterObject, index); 3456 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3457 }); 3458 document.addEventListener('compareClick', function () { 3459 var linkObj = (0, _linkData.setLinkData)('compare', 'other', 'facet-search'); 3460 var dataLayerJson = (0, _linkAction.linkActionEvent)(linkObj, 'click'); 3461 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3462 }); 3463} 3464 3465},{"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/filterClickActionEvent":118,"../../../acdl/js/pageAction/linkAction":121,"../../../acdl/js/pageAction/searchClickActionEvent":130,"@babel/runtime/helpers/interopRequireDefault":6}],80:[function(require,module,exports){ 3466"use strict"; 3467 3468var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 3469Object.defineProperty(exports, "__esModule", { 3470 value: true 3471}); 3472exports.default = formLoadAnalytics; 3473var _inview = require("inview"); 3474var _formData = _interopRequireDefault(require("../../../acdl/js/dataObject/formData")); 3475var _linkData = require("../../../acdl/js/dataObject/linkData"); 3476var _formUtils = require("../../../acdl/js/handlers/formUtils"); 3477var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3478var _formLoadActionEvent = _interopRequireDefault(require("../../../acdl/js/pageAction/formLoadActionEvent")); 3479var _modalUtils = require("../../../acdl/js/handlers/modalUtils"); 3480var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 3481var trackedForms = []; 3482function destroyFormLoadActionEventListeners(inViewObject, resizeObserver, callback) { 3483 if (inViewObject && resizeObserver && !inViewObject.destroyed) { 3484 inViewObject.destroy(); 3485 resizeObserver.disconnect(); 3486 } 3487 document.removeEventListener('click', callback); 3488} 3489function createLinkDataFromLastClick(event) { 3490 var _target$dataset; 3491 var target = (0, _commonUtils.getClickableElement)(event); 3492 if (!target) { 3493 return {}; 3494 } 3495 var linkTargetUrl = null; 3496 if (target.hasAttribute('href')) { 3497 linkTargetUrl = target.getAttribute('href'); 3498 } else if (target !== null && target !== void 0 && (_target$dataset = target.dataset) !== null && _target$dataset !== void 0 && _target$dataset.target) { 3499 linkTargetUrl = target.dataset.target; 3500 } 3501 var linkContent = target !== null && target !== void 0 && target.innerText ? (0, _commonUtils.getLowerCase)(target.innerText) : null; 3502 var linkType = 'other'; 3503 var linkRegion = 'pardot form'; 3504 var linkURL = linkTargetUrl; 3505 var gatedContent = 'normal'; 3506 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkURL, gatedContent); 3507} 3508function formLoadAnalytics(containingElement) { 3509 var container = containingElement || document; 3510 var iframes = container.querySelectorAll('iframe'); 3511 if (!iframes.length > 0) return; 3512 var pardotForms = Array.from(iframes).filter(function (iframe) { 3513 return (0, _formUtils.isPardotForm)(iframe.src); 3514 }); 3515 if (!pardotForms.length > 0) return; 3516 var linkData = {}; 3517 var clickHandler = function clickHandler(event) { 3518 if ((0, _commonUtils.isClickable)(event)) { 3519 linkData = createLinkDataFromLastClick(event); 3520 } 3521 }; 3522 document.removeEventListener('click', clickHandler); 3523 document.addEventListener('click', clickHandler);
3524 pardotForms.forEach(function (iframe) { 3525 if (trackedForms.includes(iframe)) { 3526 return; 3527 } 3528 trackedForms.push(iframe); 3529 var src = iframe.src; 3530 var form = (0, _formUtils.abstractPardotFormDataFromUrl)(src) || null; 3531 var formData = (0, _formData.default)(form.formId, form.formName, form.formURL, form.formHandler, form.formUserId); 3532 var dataLayerJson = (0, _formLoadActionEvent.default)(linkData, formData, 'load'); 3533 var inViewObj = new _inview.InView(iframe, function (inView) { 3534 if (inView) { 3535 if ((0, _commonUtils.isVisible)(iframe)) { 3536 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3537 destroyFormLoadActionEventListeners(inViewObj, formLoadResizeObserver, clickHandler); 3538 } 3539 } 3540 }); 3541 var formLoadResizeObserver = new ResizeObserver(function (entries) { 3542 entries.forEach(function (entry) { 3543 var target = entry.target; 3544 if ((0, _modalUtils.elementInModal)(target) && (0, _commonUtils.isInView)(target) && (0, _commonUtils.isVisible)(target)) { 3545 dataLayerJson = (0, _formLoadActionEvent.default)(linkData, formData, 'click'); 3546 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3547 destroyFormLoadActionEventListeners(inViewObj, formLoadResizeObserver, clickHandler); 3548 } else if ((0, _modalUtils.elementInDrawer)(target) && (0, _commonUtils.isVisible)(target) && !(0, _commonUtils.isInView)(target)) { 3549 dataLayerJson = (0, _formLoadActionEvent.default)(linkData, formData, 'click'); 3550 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3551 destroyFormLoadActionEventListeners(inViewObj, formLoadResizeObserver, clickHandler); 3552 } 3553 }); 3554 }); 3555 try { 3556 formLoadResizeObserver.observe(iframe); 3557 } catch (e) { 3558 console.error("Error observing iframe with src \"".concat(iframe.src, "\": ").concat(e.message)); 3559 } 3560 }); 3561} 3562 3563},{"../../../acdl/js/dataObject/formData":93,"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/commonUtils":102,"../../../acdl/js/handlers/formUtils":105,"../../../acdl/js/handlers/modalUtils":109,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/formLoadActionEvent":119,"@babel/runtime/helpers/interopRequireDefault":6,"inview":54}],81:[function(require,module,exports){ 3564"use strict"; 3565 3566var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 3567Object.defineProperty(exports, "__esModule", { 3568 value: true 3569}); 3570exports.formSubmitAction = formSubmitAction; 3571var _formData = _interopRequireDefault(require("../../../acdl/js/dataObject/formData")); 3572var _linkData = require("../../../acdl/js/dataObject/linkData"); 3573var _formSubmitActionEvent = require("../../../acdl/js/pageAction/formSubmitActionEvent"); 3574var _formUtils = require("../../../acdl/js/handlers/formUtils"); 3575var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3576var _linkAction = require("../../../acdl/js/pageAction/linkAction"); 3577var _errorActionEvent = require("../../../acdl/js/pageAction/errorActionEvent"); 3578var _userUtils = require("../../../acdl/js/handlers/userUtils"); 3579var formSubmitted = false; 3580function formSubmitAction() { 3581 window.addEventListener('message', function (event) { 3582 var _event$data, _event$data2; 3583 if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) !== 'pardotFormEvent') { 3584 return; 3585 } 3586 var linkData; 3587 var dataLayerJson; 3588 var data = event.data; 3589 var formUrl = (data === null || data === void 0 ? void 0 : data.formUrl) || (data === null || data === void 0 ? void 0 : data.iframeFormURL) || null; 3590 var formSuccessObj = formUrl ? (0, _formUtils.abstractPardotFormDataFromUrl)(formUrl) : null; 3591 var formData = formSuccessObj ? (0, _formData.default)(formSuccessObj.formId, formSuccessObj.formName, formSuccessObj.formURL, formSuccessObj.formHandler, formSuccessObj.formUserId) : null; 3592 var defaultError = [{ 3593 'errorType': 'pardot form', 3594 'errorMessage': 'form validation error' 3595 }]; 3596 var errorMessages = (data === null || data === void 0 ? void 0 : data.customError) || defaultError; 3597 if ((event === null || event === void 0 || (_event$data2 = event.data) === null || _event$data2 === void 0 ? void 0 : _event$data2.status) === 'submit') { 3598 formSubmitted = true; 3599 return; 3600 } 3601 if (isFormSubmitSuccess(data)) { 3602 (0, _userUtils.setSessionProspectId)().then(function () { 3603 linkData = (0, _linkData.setLinkData)(data.buttonText, "other", "pardot form", null, 'normal'); 3604 dataLayerJson = (0, _formSubmitActionEvent.formSubmitActionEvent)(linkData, formData, 'submit'); 3605 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3606 if (formUrl) { 3607 sessionStorage.setItem('formUrl', formUrl.toString()); 3608 } 3609 }); 3610 } else if (isFormSubmitError(data)) { 3611 (0, _userUtils.setSessionProspectId)().then(function () { 3612 dataLayerJson = (0, _errorActionEvent.errorActionEvent)(errorMessages, 'submit'); 3613 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3614 }); 3615 } 3616 if (isLinkClickedFromIframe(data)) { 3617 var linkContent = (data === null || data === void 0 ? void 0 : data.linkContent.toLowerCase()) || null; 3618 var linkUrl = (data === null || data === void 0 ? void 0 : data.linkURL) || null; 3619 var linkRegion = (data === null || data === void 0 ? void 0 : data.linkRegion) || null; 3620 var gatedContent = (data === null || data === void 0 ? void 0 : data.gatedContent) || 'gated'; 3621 var linkType = (0, _linkData.getLinkType)(linkUrl); 3622 linkData = (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 3623 dataLayerJson = (0, _linkAction.linkActionEventFromForm)(linkData, formData); 3624 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 3625 } 3626 }); 3627} 3628function isFormSubmitSuccess(data) { 3629 return ((data === null || data === void 0 ? void 0 : data.status) === 'formSubmitSuccess' || (data === null || data === void 0 ? void 0 : data.event) === '
3629iframeFormSubmit') && formSubmitted; 3630} 3631function isFormSubmitError(data) { 3632 return (data === null || data === void 0 ? void 0 : data.status) === 'formSubmitError' && formSubmitted; 3633} 3634function isLinkClickedFromIframe(data) { 3635 return (data === null || data === void 0 ? void 0 : data.status) === 'linkClicked' || (data === null || data === void 0 ? void 0 : data.event) === 'linkClicked' || window !== top; 3636} 3637 3638},{"../../../acdl/js/dataObject/formData":93,"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/formUtils":105,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/handlers/userUtils":114,"../../../acdl/js/pageAction/errorActionEvent":117,"../../../acdl/js/pageAction/formSubmitActionEvent":120,"../../../acdl/js/pageAction/linkAction":121,"@babel/runtime/helpers/interopRequireDefault":6}],82:[function(require,module,exports){ 3639"use strict"; 3640 3641var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 3642Object.defineProperty(exports, "__esModule", { 3643 value: true 3644}); 3645exports.analytics = analytics; 3646exports.isAlreadyHandledLink = isAlreadyHandledLink; 3647exports.pushAnchorClickDataLayer = pushAnchorClickDataLayer; 3648var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); 3649var _promoUtils = require("../../../acdl/js/handlers/promoUtils"); 3650var _actionUtils = require("../../../acdl/js/handlers/actionUtils"); 3651var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 3652var _analytics = require("../search/analytics"); 3653var _linkUtils = require("../../../acdl/js/handlers/linkUtils"); 3654var _global = require("../../../../../components/utilities/global"); 3655function analytics() { 3656 var processClickEvent = function processClickEvent(event) { 3657 var isValidClick = event.type === 'click' || event.type === 'auxclick' && event.button === 1; 3658 if (!isValidClick) { 3659 return; 3660 } 3661 if ((0, _commonUtils.isClickable)(event)) { 3662 try { 3663 var clickableElement = (0, _commonUtils.getClickableElement)(event); 3664 pushAnchorClickDataLayer(event, clickableElement); 3665 } catch (_unused) { 3666 console.error('Error listening for data layer general clicks'); 3667 } 3668 } 3669 }; 3670 document.addEventListener('click', processClickEvent); 3671 document.addEventListener('auxclick', processClickEvent); 3672} 3673function pushAnchorClickDataLayer(event, element) { 3674 var domEventType = event.type; 3675 if (isAlreadyHandledLink(element)) { 3676 return; 3677 } 3678 if ((0, _promoUtils.isMerchandisingPromo)(element)) { 3679 (0, _actionUtils.pushMerchandisingPromoToDataLayer)(element, domEventType); 3680 return; 3681 } 3682 if ((0, _promoUtils.isContentPromo)(element)) { 3683 (0, _actionUtils.pushContentPromoToDataLayer)(element, domEventType); 3684 return; 3685 } 3686 if ((0, _promoUtils.isLegacyMerchandisingPromo)(element)) { 3687 (0, _actionUtils.pushLegacyMerchandisingPromoToDataLayer)(element, domEventType); 3688 return; 3689 } 3690 if ((0, _promoUtils.isLegacyContentPromo)(element)) { 3691 (0, _actionUtils.pushLegacyContentPromoToDataLayer)(element, domEventType); 3692 return; 3693 } 3694 if (window.self !== window.top) { 3695 (0, _linkUtils.createLinkDataFromIframe)(event); 3696 return; 3697 } 3698 (0, _actionUtils.pushGeneralLinkActionToDataLayer)(element, domEventType); 3699} 3700function isAlreadyHandledLink(link) { 3701 var _dataLayerObject$prod; 3702 if (!link) return false; 3703 var dataLayerAttributeValue = link.getAttribute('data-ilmn-cmp-data-layer'); 3704 var dataLayerObject = dataLayerAttributeValue ? (0, _global.safeJsonParse)(dataLayerAttributeValue) : null; 3705 var linkObjectExists = dataLayerObject === null || dataLayerObject === void 0 ? void 0 : dataLayerObject.link; 3706 var isSingleLevelDataLayerObject = dataLayerObject && Object.keys(dataLayerObject).length === 1; 3707 var hasEmptyProductArray = !!(dataLayerObject !== null && dataLayerObject !== void 0 && dataLayerObject.productFindingMethod && (((_dataLayerObject$prod = dataLayerObject.products) === null || _dataLayerObject$prod === void 0 ? void 0 : _dataLayerObject$prod.length) === 0 || dataLayerObject.products === null)); 3708 var isBasicLinkObject = dataLayerObject ? isSingleLevelDataLayerObject || hasEmptyProductArray : false;
3709 // const isPromoLink = link.closest('[data-layer-object-type="promos"]'); 3710 var isPromoOrMerchandisingLink = link.closest('[data-layer-object-type="promos"], [data-layer-object-type="merchandising-products"]'); 3711 var isSiteSearchTools = link.closest('.site-search-tools'); 3712 3713 // if ((linkObjectExists && isBasicLinkObject && !isPromoLink) || isSiteSearchTools) { 3714 if (linkObjectExists && isBasicLinkObject || isPromoOrMerchandisingLink || isSiteSearchTools) { 3715 return false; 3716 } 3717 var closestElementByType = ['[data-layer-object-type]', '.persistent-nav', '.gdpc-dialog', '#onetrust-consent-sdk', '.global-nav', '.ilmn-footer', '.addtocart', '.tabs__dropdown', '.safety-data-sheets']; 3718 var containsClassNames = ['pdp-add-bundle-js', 'blp-add-bundle-js', 'add-to-cart-cta']; 3719 var conditions = [dataLayerAttributeValue].concat((0, _toConsumableArray2.default)(closestElementByType.map(function (element) { 3720 return link.closest(element); 3721 })), (0, _toConsumableArray2.default)(containsClassNames.map(function (className) { 3722 return link.classList.contains(className); 3723 })), [(0, _analytics.isSearchIncludedElement)(link), link.classList.contains('pagin') && link.closest('.search-facet')]); 3724 return conditions.some(function (condition) { 3725 return condition; 3726 }); 3727} 3728 3729},{"../../../../../components/utilities/global":73,"../../../acdl/js/handlers/actionUtils":101,"../../../acdl/js/handlers/commonUtils":102,"../../../acdl/js/handlers/linkUtils":107,"../../../acdl/js/handlers/promoUtils":111,"../search/analytics":86,"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/toConsumableArray":17}],83:[function(require,module,exports){ 3730"use strict"; 3731 3732Object.defineProperty(exports, "__esModule", { 3733 value: true 3734}); 3735exports.analytics = analytics; 3736var _actionUtils = require("../../../acdl/js/handlers/actionUtils"); 3737function analytics() { 3738 document.addEventListener('globalNavPromoImpression', function (event) { 3739 if (!(event !== null && event !== void 0 && event.detail)) { 3740 return; 3741 } 3742 (0, _actionUtils.pushPromoImpressionToDataLayer)(event.detail); 3743 }); 3744} 3745module.exports.default = analytics; 3746 3747},{"../../../acdl/js/handlers/actionUtils":101}],84:[function(require,module,exports){ 3748"use strict"; 3749 3750var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 3751var _analytics = require("./sticky-nav/analytics"); 3752var _analytics2 = require("./global-nav/analytics"); 3753var _analytics3 = require("./search/analytics"); 3754var _productSearchSubmit = require("./search/productSearchSubmit"); 3755var _searchSubmitAction = require("./search/searchSubmitAction"); 3756var _supportSearchSubmit = require("./search/supportSearchSubmit"); 3757var _requestPricingAndCustomizeProductsAnaytics = require("./add-to-cart/requestPricingAndCustomizeProductsAnaytics"); 3758var _analytics4 = require("./add-to-cart/analytics"); 3759var _analytics5 = require("./bundles/analytics"); 3760var _analytics6 = require("./general/analytics"); 3761var _productIncrementAnalytics = require("./add-to-cart/productIncrementAnalytics"); 3762var _formLoadAction = _interopRequireDefault(require("./forms/formLoadAction")); 3763var _formSubmitAction = require("./forms/formSubmitAction"); 3764var _analytics7 = require("./facet-search/analytics"); 3765var _analytics8 = require("./tab-group/analytics"); 3766var _attribution = require("../../../../components/attribution/attribution"); 3767var _attributionAnalytics = require("./attribution/attributionAnalytics"); 3768var _analytics9 = _interopRequireDefault(require("./mcp/analytics")); 3769function analyticsInit() { 3770 (0, _formLoadAction.default)(); 3771 (0, _formSubmitAction.formSubmitAction)(); 3772 (0, _analytics.analytics)(); 3773 (0, _analytics3.searchAnalytics)(); 3774 (0, _searchSubmitAction.searchSubmitAnalytics)(); 3775 (0, _supportSearchSubmit.supportSearchAnalytics)(); 3776 (0, _productSearchSubmit.productSearchAnalytics)(); 3777 (0, _analytics6.analytics)(); 3778 (0, _analytics7.analytics)(); 3779 (0, _analytics8.analytics)(); 3780 (0, _analytics9.default)(); 3781} 3782function productsAnalytics() { 3783 (0, _requestPricingAndCustomizeProductsAnaytics.analytics)(); 3784 (0, _analytics4.analytics)(); 3785 (0, _productIncrementAnalytics.analytics)(); 3786} 3787function reattachDynamicAnalytics(event) { 3788 if (!(event !== null && event !== void 0 && event.detail)) { 3789 return; 3790 } 3791 (0, _formLoadAction.default)(event.detail); 3792} 3793document.addEventListener('DOMContentLoaded', function (event) { 3794 (0, _analytics2.analytics)(); 3795 analyticsInit(); 3796}); 3797document.addEventListener('bundlesLoadComplete', _analytics5.analytics); 3798document.addEventListener('productsLoadComplete', productsAnalytics); 3799document.addEventListener('targetContentInjected', reattachDynamicAnalytics); 3800document.addEventListener(_attribution.ATTRIBUTION_EVENT, _attributionAnalytics.attributionAnalytics); 3801 3802}
3802,{"../../../../components/attribution/attribution":69,"./add-to-cart/analytics":74,"./add-to-cart/productIncrementAnalytics":75,"./add-to-cart/requestPricingAndCustomizeProductsAnaytics":76,"./attribution/attributionAnalytics":77,"./bundles/analytics":78,"./facet-search/analytics":79,"./forms/formLoadAction":80,"./forms/formSubmitAction":81,"./general/analytics":82,"./global-nav/analytics":83,"./mcp/analytics":85,"./search/analytics":86,"./search/productSearchSubmit":87,"./search/searchSubmitAction":88,"./search/supportSearchSubmit":89,"./sticky-nav/analytics":90,"./tab-group/analytics":91,"@babel/runtime/helpers/interopRequireDefault":6}],85:[function(require,module,exports){ 3803"use strict"; 3804 3805var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 3806Object.defineProperty(exports, "__esModule", { 3807 value: true 3808}); 3809exports.default = mcpAnalytics; 3810var _errorActionEvent = require("../../../acdl/js/pageAction/errorActionEvent"); 3811var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3812var _linkUtils = require("../../../acdl/js/handlers/linkUtils"); 3813var _cartData = require("../../../acdl/js/dataObject/cartData"); 3814var _productCartAddActionEvent = require("../../../acdl/js/pageAction/productCartAddActionEvent"); 3815var _user = _interopRequireDefault(require("../../../../../components/utilities/ecommerce/user")); 3816var _ecommerce = _interopRequireDefault(require("../../../../../components/utilities/ecommerce/ecommerce")); 3817function handleAddToCartClick(event) { 3818 var _ref = (event === null || event === void 0 ? void 0 : event.detail) || {}, 3819 eventType = _ref.eventType, 3820 products = _ref.products, 3821 link = _ref.link, 3822 messageObj = _ref.messageObj, 3823 template = _ref.template; 3824 if (eventType === 'addToCartError') { 3825 var errorMessages = [{ 3826 errorType: 'mcp - add to cart', 3827 errorMessage: 'unknown error' 3828 }]; 3829 if (Object.keys(messageObj).length > 0) { 3830 errorMessages = [messageObj]; 3831 } 3832 var errorDataLayerJson = (0, _errorActionEvent.errorActionEvent)(errorMessages, 'click'); 3833 (0, _pushToDataLayer.pushToDataLayer)(errorDataLayerJson); 3834 } else if (eventType === 'addToCartSuccess') { 3835 var userProfile = _user.default.getProfileLocalStorage(_ecommerce.default); 3836 if (!userProfile) { 3837 return; 3838 } 3839 var cartObject = { 3840 cartId: userProfile.cartId || null, 3841 currencyCode: userProfile.currency || null 3842 }; 3843 var productsObject = []; 3844 products.forEach(function (product) { 3845 var _ref2 = product || {}, 3846 partNumber = _ref2.partNumber, 3847 sku = _ref2.sku, 3848 quantity = _ref2.quantity; 3849 var skuValue = partNumber || sku || ''; 3850 var productElement = document.querySelector("[data-sku=\"".concat(skuValue, "\"]")); 3851 var l04Value = productElement.getAttribute('data-l04') || ''; 3852 var nameValue = productElement.getAttribute('data-name') || ''; 3853 var idValue = productElement.getAttribute('data-material-number') || ''; 3854 productsObject.push({ 3855 numbersOfUnitsAdded: quantity, 3856 productBundle: null, 3857 productID: idValue, 3858 productL04: l04Value, 3859 productName: nameValue, 3860 productSKU: skuValue 3861 }); 3862 }); 3863 var linkData = (0, _linkUtils.createLinkData)(link, 'addtocart'); 3864 var cartDetails = (0, _cartData.cartDetailsData)(cartObject); 3865 var productFindingMethod = template; 3866 var domEventType = 'click'; 3867 var successDataLayerJson = (0, _productCartAddActionEvent.productCartAddActionEvent)(linkData, productsObject, cartDetails, productFindingMethod, domEventType); 3868 (0, _pushToDataLayer.pushToDataLayer)(successDataLayerJson); 3869 } 3870} 3871function mcpAnalytics() { 3872 document.addEventListener('mcpAnalyticsEvent', handleAddToCartClick); 3873} 3874 3875},{"../../../../../components/utilities/ecommerce/ecommerce":71,"../../../../../components/utilities/ecommerce/user":72,"../../../acdl/js/dataObject/cartData":92,"../../../acdl/js/handlers/linkUtils":107,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/errorActionEvent":117,"../../../acdl/js/pageAction/productCartAddActionEvent":123,"@babel/runtime/helpers/interopRequireDefault":6}],86:[function(require,module,exports){ 3876"use strict"; 3877 3878Object.defineProperty(exports, "__esModule", { 3879 value: true 3880}); 3881exports.handleFilterClick = handleFilterClick; 3882exports.isSearchIncludedElement = isSearchIncludedElement;
3883exports.searchAnalytics = searchAnalytics; 3884var _commonUtils = require("../../../acdl/js/handlers/commonUtils.js"); 3885var _linkData = require("../../../acdl/js/dataObject/linkData"); 3886var _searchActionEvent = require("../../../acdl/js/pageAction/searchActionEvent"); 3887var _searchUtils = require("../../../acdl/js/handlers/searchUtils.js"); 3888function searchAnalytics() { 3889 var filterArea = document.querySelector('.radio-list'); 3890 if (filterArea) { 3891 filterArea.addEventListener('click', handleFilterClick); 3892 } 3893} 3894function handleFilterClick(event) { 3895 var targetNode = event.target; 3896 if (targetNode.nodeName.toLowerCase() === 'input' && isSearchIncludedElement(targetNode)) { 3897 var filterLabel = (0, _commonUtils.getLowerCase)(targetNode.parentElement.innerText.trim()); 3898 var linkContent = (0, _linkData.setLinkData)(filterLabel, "other", "search_results", null); 3899 var searchDetails = (0, _searchUtils.getSearchDataParams)("click"); 3900 var dataLayerJson = (0, _searchActionEvent.searchSubmitActionEvent)(linkContent, searchDetails, 'click'); 3901 (0, _searchUtils.pushToDataLayerAfterSearchCompletion)(dataLayerJson); 3902 } 3903} 3904function isSearchIncludedElement(target) { 3905 if (target.closest('.ilmn-global-search__input-group') && target.classList.contains('btn-primary')) { 3906 return true; 3907 } else if (target.closest('.facet-list') && target.closest('.search-facet')) { 3908 return true; 3909 } else if (((0, _commonUtils.getLowerCase)(target.nodeName) === 'b' || (0, _commonUtils.getLowerCase)(target.nodeName) === 'a') && target.closest('.tt-topresults')) { 3910 return true; 3911 } else if (target.classList.contains('pagin')) { 3912 return true; 3913 } else if (((0, _commonUtils.getLowerCase)(target.nodeName) === 'b' || (0, _commonUtils.getLowerCase)(target.nodeName) === 'a') && target.closest('.results-title')) { 3914 return true; 3915 } 3916 return false; // Return false if none of the conditions match 3917} 3918 3919},{"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/commonUtils.js":102,"../../../acdl/js/handlers/searchUtils.js":113,"../../../acdl/js/pageAction/searchActionEvent":129}],87:[function(require,module,exports){ 3920"use strict"; 3921 3922Object.defineProperty(exports, "__esModule", { 3923 value: true 3924}); 3925exports.getProductSubmitDataLayerObject = getProductSubmitDataLayerObject; 3926exports.productSearchAnalytics = productSearchAnalytics; 3927var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 3928var _linkData = require("../../../acdl/js/dataObject/linkData"); 3929var _searchActionEvent = require("../../../acdl/js/pageAction/searchActionEvent"); 3930var _searchUtils = require("../../../acdl/js/handlers/searchUtils"); 3931function productSearchAnalytics() { 3932 var searchSubmitElement = document.querySelector("#search-products-form"); 3933 if (searchSubmitElement) { 3934 searchSubmitElement.addEventListener("click", function (event) { 3935 if ((0, _commonUtils.isClickable)(event)) { 3936 getProductSubmitDataLayerObject(event); 3937 } 3938 }, false); 3939 } 3940} 3941function getProductSubmitDataLayerObject() { 3942 var linkData = (0, _linkData.setLinkData)("search", "other", "search", null); 3943 var searchDetails = (0, _searchUtils.getSearchDataParams)("submit"); 3944 if (window.sessionStorage.getItem('fromProductPage') !== 'true') { 3945 window.sessionStorage.setItem('fromProductPage', 'true'); 3946 } else if (window.sessionStorage.getItem('fromProductPage') === 'true') { 3947 window.sessionStorage.setItem('fromProductPage', 'false'); 3948 } 3949 var domEventType = "submit"; 3950 var dataLayerJson = (0, _searchActionEvent.searchSubmitActionEvent)(linkData, searchDetails, domEventType); 3951 return dataLayerJson; 3952} 3953 3954},{"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/commonUtils":102,"../../../acdl/js/handlers/searchUtils":113,"../../../acdl/js/pageAction/searchActionEvent":129}],88:[function(require,module,exports){ 3955"use strict"; 3956 3957Object.defineProperty(exports, "__esModule", { 3958 value: true 3959}); 3960exports.addSearchResultForClick = void 0; 3961exports.pushSearchSubmitDataLayerObject = pushSearchSubmitDataLayerObject; 3962exports.searchSubmitAnalytics = searchSubmitAnalytics; 3963var _searchUtils = require("../../../acdl/js/handlers/searchUtils"); 3964var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 3965var _linkUtils = require("../../../acdl/js/handlers/linkUtils"); 3966var _searchActionEvent = require("../../../acdl/js/pageAction/searchActionEvent"); 3967var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 3968// Constants 3969var EVENT_CLICK = 'click'; 3970var EVENT_SUBMIT = 'submit'; 3971var SEARCH = "search"; 3972function searchSubmitAnalytics() { 3973 var searchElementBtn = document.querySelector(".ilmn-global-search__input-group"); 3974 var searchResultElement = document.querySelector(".site-search-results"); 3975 var searchResultPagination = document.querySelector(".pagination"); 3976 if (searchElementBtn) { 3977 (0, _searchUtils.setClickEvent)(searchElementBtn); 3978 searchElementBtn.addEventListener("keydown", handleSearchKeydown, false); 3979 } 3980 if (searchResultElement) { 3981 (0, _searchUtils.setClickEvent)(searchResultElement); 3982 } 3983 if (searchResultPagination) { 3984 (0, _searchUtils.setClickEvent)(searchResultPagination); 3985 } 3986} 3987function handleSearchKeydown(event) { 3988 if ((0, _commonUtils.getLowerCase)(event.key) === "enter") { 3989 pushSearchSubmitDataLayerObject(event); 3990 } 3991} 3992function pushSearchSubmitDataLayerObject(event) { 3993 var searchDetails = (0, _searchUtils.getSearchDataParams)(EVENT_SUBMIT); 3994 searchDetails.searchFormName = 'site search'; 3995 searchDetails.searchKeywordSuggested = null; 3996 var linkData = setSearchDetailsSubmitType(searchDetails, event); 3997 var getSearchKeywordSuggested = window.sessionStorage.getItem('searchKeywordSuggested'); 3998 if (getSearchKeywordSuggested !== null) { 3999 searchDetails.searchKeywordSuggested = getSearchKeywordSuggested; 4000 searchDetails.searchSubmitType = EVENT_CLICK; 4001 if (searchDetails.searchKeyword === null) { 4002 searchDetails.searchKeyword = getSearchKeywordSuggested; 4003 } 4004 window.sessionStorage.removeItem(getSearchKeywordSuggested); 4005 } 4006 var domEventType = EVENT_CLICK; 4007 if (event.type === 'keydown') { 4008 domEventType = EVENT_SUBMIT; 4009 } 4010 setSearchDetailsQuickLinks(event, searchDetails, domEventType, linkData); 4011 var dataLayerJson = (0, _searchActionEvent.searchSubmitActionEvent)(linkData, searchDetails, domEventType); 4012 if (event.target.closest('.results-title')) { 4013 dataLayerJson.event = 'searchResultLinkAction'; 4014 if (event.target.closest('.site-search-results') && event.target.closest('.result')) { 4015 dataLayerJson.searchDetails.searchResultNumber = (Array.prototype.indexOf.call(event.target.closest('.site-search-results').children, event.target.closest('.result')) + 1).toString(); 4016 } 4017 } 4018 if (event.target.classList.contains('pagin')) { 4019 dataLayerJson.event = 'searchResultLinkAction'; 4020 searchDetails.searchSubmitType = EVENT_CLICK; 4021 } 4022 if (dataLayerJson.searchDetails.searchResultNumber) { 4023 addSearchResultForClick(dataLayerJson); 4024 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4025 } else { 4026 (0, _searchUtils.pushToDataLayerAfterSearchCompletion)(dataLayerJson); 4027 } 4028} 4029function setSearchDetailsSubmitType(searchDetails, event) { 4030 var target = event.target, 4031 type = event.type, 4032 key = event.key; 4033 var elementName = target.nodeName.toLowerCase(); 4034 var isParentLink = target.parentElement.nodeName === "A"; 4035 var linkData = null; 4036 if (isParentLink && elementName !== "a") { 4037 linkData = (0, _linkUtils.createLinkData)(target.parentElement, SEARCH); 4038 searchDetails.searchSubmitType = EVENT_CLICK; 4039 return linkData; 4040 } else if (elementName === "a") { 4041 var closestPagination = target.closest('.pagination'); 4042 linkData = closestPagination ? (0, _linkUtils.createLinkDataForPagination)(target, SEARCH) : (0, _linkUtils.createLinkData)(target, SEARCH); 4043 searchDetails.searchSubmitType = EVENT_CLICK; 4044 return linkData; 4045 } else { 4046 linkData = (0, _linkUtils.createLinkDataForButton)(target, SEARCH); 4047 searchDetails.searchSubmitType = type === EVENT_CLICK ? EVENT_CLICK : key.toLowerCase() === "enter" ? "enter" : ""; 4048 return linkData; 4049 } 4050} 4051function setSearchDetailsQuickLinks(event, searchDetails, domEventType, linkData) { 4052 if (event.target.closest('.tt-topresults')) { 4053 searchDetails.searchFormName = 'quick links'; 4054 var parentListItem = event.target.parentElement; 4055 if (parentListItem && parentListItem.parentElement) { 4056 searchDetails.searchResultNumber = (Array.prototype.indexOf.call(parentListItem.parentElement.children, parentListItem) + 1).toString(); 4057 } 4058 searchDetails.searchResultTitle = linkData.linkContent || null; 4059 if (searchDetails.searchKeyword === null) { 4060 searchDetails.searchKeyword = document.querySelectorAll('.ilmn-global-search__input')[1].value; 4061 } 4062 } 4063} 4064var addSearchResultForClick = exports.addSearchResultForClick = function addSearchResultForClick(dataLayerJson) { 4065 if (window.sessionStorage.getItem("searchNumberOfResults") !== undefined) { 4066 dataLayerJson.searchDetails.searchNumberOfResults = window.sessionStorage.getItem("searchNumberOfResults"); 4067 } 4068 (0, _searchUtils.setSearchPagination)(dataLayerJson); 4069 return dataLayerJson; 4070}; 4071 4072},{"../../../acdl/js/handlers/commonUtils":102,"../../../acdl/js/handlers/linkUtils":107,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/handlers/searchUtils":113,"../../../acdl/js/pageAction/searchActionEvent":129}],89:[function(require,module,exports){ 4073"use strict"; 4074 4075Object.defineProperty(exports, "__esModule", { 4076 value: true 4077});
4078exports.getSupportSubmitDataLayerObject = getSupportSubmitDataLayerObject; 4079exports.supportSearchAnalytics = supportSearchAnalytics; 4080var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 4081var _linkData = require("../../../acdl/js/dataObject/linkData"); 4082var _searchActionEvent = require("../../../acdl/js/pageAction/searchActionEvent"); 4083var _searchUtils = require("../../../acdl/js/handlers/searchUtils"); 4084function supportSearchAnalytics() { 4085 var searchSubmitElement = document.querySelector("#search-support-form"); 4086 if (searchSubmitElement) { 4087 searchSubmitElement.addEventListener("click", function (event) { 4088 if ((0, _commonUtils.isClickable)(event)) { 4089 getSupportSubmitDataLayerObject(event); 4090 } 4091 }, false); 4092 } 4093} 4094function getSupportSubmitDataLayerObject() { 4095 var linkData = (0, _linkData.setLinkData)("search", "other", "search", null); 4096 var searchDetails = (0, _searchUtils.getSearchDataParams)('submit'); 4097 var domEventType = "submit"; 4098 var dataLayerJson = (0, _searchActionEvent.searchSubmitActionEvent)(linkData, searchDetails, domEventType); 4099 return dataLayerJson; 4100} 4101 4102},{"../../../acdl/js/dataObject/linkData":94,"../../../acdl/js/handlers/commonUtils":102,"../../../acdl/js/handlers/searchUtils":113,"../../../acdl/js/pageAction/searchActionEvent":129}],90:[function(require,module,exports){ 4103"use strict"; 4104 4105Object.defineProperty(exports, "__esModule", { 4106 value: true 4107}); 4108exports.analytics = analytics; 4109var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 4110var _actionUtils = require("../../../acdl/js/handlers/actionUtils"); 4111function analytics() { 4112 var stickyNavElements = document.querySelectorAll('.sticky-menu, .stickynav__menu'); 4113 stickyNavElements.forEach(function (stickyNavElement) { 4114 stickyNavElement.addEventListener('click', function (event) { 4115 if ((0, _commonUtils.isClickable)(event)) { 4116 (0, _actionUtils.pushMenuActionObjectFromAttribute)(event, 'sticky nav'); 4117 } 4118 }, false); 4119 }); 4120} 4121module.exports.default = analytics; 4122 4123},{"../../../acdl/js/handlers/actionUtils":101,"../../../acdl/js/handlers/commonUtils":102}],91:[function(require,module,exports){ 4124"use strict"; 4125 4126Object.defineProperty(exports, "__esModule", { 4127 value: true 4128}); 4129exports.analytics = analytics; 4130var _componentActionEvent = require("../../../acdl/js/pageAction/componentActionEvent"); 4131var _linkUtils = require("../../../acdl/js/handlers/linkUtils"); 4132var _pushToDataLayer = require("../../../acdl/js/handlers/pushToDataLayer"); 4133function analytics() { 4134 document.addEventListener('tabClick', function (event) { 4135 var _event$detail, _event$detail2; 4136 var linkData = (_event$detail = event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail.linkData; 4137 var componentData = (_event$detail2 = event.detail) === null || _event$detail2 === void 0 ? void 0 : _event$detail2.componentData; 4138 if (!linkData || !componentData) { 4139 return; 4140 } 4141 var dataLayerJson = (0, _componentActionEvent.componentActionEvent)(linkData, componentData, 'click'); 4142 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4143 }); 4144} 4145 4146},{"../../../acdl/js/handlers/linkUtils":107,"../../../acdl/js/handlers/pushToDataLayer":112,"../../../acdl/js/pageAction/componentActionEvent":116}],92:[function(require,module,exports){ 4147"use strict"; 4148 4149Object.defineProperty(exports, "__esModule", { 4150 value: true 4151}); 4152exports.cartDetailsData = cartDetailsData; 4153function cartDetailsData(cartDataObj) { 4154 var isEmptyCart = window.localStorage.getItem('isCartEmpty') ? JSON.parse(window.localStorage.getItem('isCartEmpty')) : null; 4155 var cartData = { 4156 'cartID': cartDataObj.cartID || null, 4157 'addingToEmptyCart': isEmptyCart, 4158 'currencyCode': cartDataObj.currencyCode || null 4159 }; 4160 return cartData; 4161} 4162 4163},{}],93:[function(require,module,exports){ 4164"use strict"; 4165 4166Object.defineProperty(exports, "__esModule", { 4167 value: true 4168}); 4169exports.default = setFormData; 4170function setFormData(id, name, url, handler, userId) { 4171 var formId = id || null; 4172 var formName = name || null; 4173 var formUrl = url || null; 4174 var formHandler = handler || null; 4175 var formUserId = userId || null; 4176 var formDataObj = { 4177 "formID": formId, 4178 "formName": formName, 4179 "formURL": formUrl, 4180 "formHandler": formHandler, 4181 "formUserID": formUserId 4182 }; 4183 return formDataObj; 4184} 4185 4186},{}],94:[function(require,module,exports){ 4187"use strict"; 4188 4189Object.defineProperty(exports, "__esModule", { 4190 value: true 4191}); 4192exports.getLinkType = getLinkType; 4193exports.setLinkData = setLinkData; 4194var _commonUtils = require("../handlers/commonUtils"); 4195function setLinkData(linkContent, linkType, linkRegion, linkURL, gatedContent) { 4196 var linkDataObj = { 4197 'linkContent': (0, _commonUtils.getLowerCase)(linkContent) || null, 4198 'linkType': linkType || null, 4199 'linkRegion': linkRegion || null, 4200 'linkURL': linkURL || null, 4201 'gatedContent': gatedContent || null 4202 }; 4203 return linkDataObj; 4204} 4205function getLinkType(linkURL) { 4206 var regex = /\.(exe|zip|wav|mp3|mp4|mov|mpg|avi|wmv|pdf|doc|docx|xl
4206s|xlsx|ppt|pptx|bam|fastq|csv|txt|msi|rpm|bed|tar|gz|bz2|xml|egt|ics)$/i; 4207 var internalDomain = ['illumina.com', 'illumina.webex.com', 'understandyourgenome.com', 'eventregistration.illumina.com', '/content/illumina-marketing/', '/content/illumina-support/', '/content/dam/illumina-marketing/', '/content/dam/illumina-support/']; 4208 if (regex.exec(linkURL)) { 4209 return 'download'; 4210 } else if (internalDomain.some(function (x) { 4211 return linkURL.includes(x); 4212 }) || linkURL.startsWith('/') || linkURL.startsWith('#')) { 4213 return 'other'; 4214 } else { 4215 return 'exit'; 4216 } 4217} 4218 4219},{"../handlers/commonUtils":102}],95:[function(require,module,exports){ 4220"use strict"; 4221 4222Object.defineProperty(exports, "__esModule", { 4223 value: true 4224}); 4225exports.setMenuData = setMenuData; 4226function setMenuData(menuName, menuTopLevelCategory, menuSecondLevelCategory) { 4227 // need send the menu values from component analytics js file, because this file would just have common logic, but not component specific logic 4228 4229 var menuDataObj = { 4230 "menuName": menuName, 4231 "menuTopLevelCategory": menuTopLevelCategory, 4232 "menuSecondLevelCategory": menuSecondLevelCategory 4233 }; 4234 return menuDataObj; 4235} 4236 4237},{}],96:[function(require,module,exports){ 4238"use strict"; 4239 4240Object.defineProperty(exports, "__esModule", { 4241 value: true 4242}); 4243exports.default = void 0; 4244var _commonUtils = require("../handlers/commonUtils"); 4245// eslint-disable-next-line complexity 4246var pageObject = function pageObject() { 4247 var pageObj = {}; 4248 var regionTag = document.querySelector('meta[name="region"]'); 4249 var localeTag = document.querySelector('meta[name="locale"]'); 4250 var entityIdTag = document.querySelector('meta[name="entityId"]'); 4251 var pageTemplateTag = document.querySelector('meta[name="pageTemplate"]'); 4252 var siteBreadCrumbTag = document.querySelector('meta[name="siteBreadCrumb"]'); 4253 var pageTypeTag = document.querySelector('meta[name="pageType"]'); 4254 var siteIdTag = document.querySelector('meta[name="siteId"]'); 4255 var siteSectionTag = document.querySelector('meta[name="siteSection"]'); 4256 var siteRegion = regionTag ? regionTag.content : null; 4257 var locale = localeTag ? localeTag.content : null; 4258 var entityId = entityIdTag ? entityIdTag.content : null; 4259 var pageTemplate = pageTemplateTag ? pageTemplateTag.content : null; 4260 var breadCrumb = siteBreadCrumbTag ? siteBreadCrumbTag.content : null; 4261 var pageType = pageTypeTag ? pageTypeTag.content : null; 4262 var siteId = siteIdTag ? siteIdTag.content : null; 4263 var siteSection = siteSectionTag ? siteSectionTag.content : null; 4264 var siteLanguage = locale || null; 4265 if (window.location.hostname === 'emea.support.illumina.com') { 4266 siteRegion = 'emea'; 4267 siteLanguage = 'en_GB'; 4268 } else if (window.location.hostname === 'sapac.support.illumina.com') { 4269 siteRegion = 'spac'; 4270 siteLanguage = 'en_AU'; 4271 } 4272 pageObj = { 4273 "pageName": (0, _commonUtils.getLowerCase)(document.title), 4274 "pageType": pageType, 4275 "pageTemplate": pageTemplate, 4276 "siteRegion": siteRegion, 4277 "siteLanguage": siteLanguage, 4278 "siteBreadCrumb": breadCrumb, 4279 "entityId": entityId, 4280 "siteID": siteId, 4281 "siteSection": siteSection 4282 }; 4283 return pageObj; 4284}; 4285var _default = exports.default = pageObject; 4286 4287},{"../handlers/commonUtils":102}],97:[function(require,module,exports){ 4288"use strict"; 4289 4290Object.defineProperty(exports, "__esModule", { 4291 value: true 4292}); 4293exports.setProductData = setProductData; 4294function setProductData(productSKU, productL04) { 4295 var productDataObj = { 4296 "productID": null, 4297 "productSKU": productSKU, 4298 "productL04": productL04, 4299 "productName": null, 4300 "productBundle": null 4301 }; 4302 return productDataObj; 4303} 4304 4305},{}],98:[function(require,module,exports){ 4306"use strict"; 4307 4308Object.defineProperty(exports, "__esModule", { 4309 value: true 4310}); 4311exports.setPromoData = setPromoData; 4312function setPromoData(promoName, promoLocation, batchDate, userSegment) { 4313 var promoDataObj = { 4314 "promoID": null, 4315 "promoName": promoName, 4316 "promoLocation": promoLocation, 4317 "batchDate": batchDate, 4318 "userSegment": userSegment 4319 }; 4320 return promoDataObj; 4321} 4322 4323},{}],99:[function(require,module,exports){ 4324"use strict"; 4325 4326Object.defineProperty(exports, "__esModule", { 4327 value: true 4328}); 4329exports.searchData = searchData; 4330var _commonUtils = require("../handlers/commonUtils"); 4331function searchData(keyword, numberOfResults, pageNumber, filterCategory, filterValue, submitType) { 4332 var searchKeyword = keyword || null; 4333 var searchNumberOfResults = numberOfResults || null; 4334 var searchPagination = pageNumber || null; 4335 var searchFilterCategory = filterCategory || null; 4336 var searchFilterValue = filterValue || null; 4337 var searchSubmitType = submitType || 'submit'; 4338 var searchDataObj = { 4339 "searchKeyword": (0, _commonUtils.getLowerCase)(searchKeyword), 4340 "searchNumberOfResults": searchNumberOfResults, 4341 "searchPagination": searchPagination, 4342 "searchFilters": [{ 4343 "searchFilterCategory": searchFilterCategory, 4344 "searchFilterValue": (0, _commonUtils.getLowerCase)(searchFilterValue) 4345 }], 4346 "searchSubmitType": searchSubmitType 4347 }; 4348 return searchDataObj; 4349} 4350 4351},{"../handlers/commonUtils":102}],100:[function(require,module,exports){ 4352"use strict"; 4353 4354Object.defineProperty(exports, "__esModule", { 4355 value: true 4356}); 4357exports.default = userData; 4358var _userUtils = require("../handlers/userUtils"); 4359// eslint-disable-next-line @typescript-eslint/no-var-requires 4360var getCookie = require('ilmn/getCookie'); 4361function localStorageHasItem(key) { 4362 return window.localStorage.getItem(key) && window.localStorage.getItem(key) !== null && window.localStorage.getItem(key) !== 'null';
4363} 4364 4365// eslint-disable-next-line complexity 4366function userData() { 4367 var _window$ecommerce; 4368 var cookieSegment = getCookie('ILMN_PrefSegment') ? getCookie('ILMN_PrefSegment') : null; 4369 // const analyticsSegments = localStorageHasItem('kxilluminadmp_segs') ? window.localStorage.getItem('kxilluminadmp_segs') : null; 4370 var loginStatus = (_window$ecommerce = window.ecommerce) !== null && _window$ecommerce !== void 0 && _window$ecommerce.isLoggedIn ? 'logged-in' : 'logged-out'; 4371 var myIlluminaUserType = localStorageHasItem('myIlluminaUserType') && loginStatus === 'logged-in' ? JSON.parse(window.localStorage.getItem('myIlluminaUserType')) : null; 4372 var myIlluminaID = localStorageHasItem('myIlluminaID') && loginStatus === 'logged-in' ? window.localStorage.getItem('myIlluminaID') : null; 4373 var prospectId = (0, _userUtils.getSessionProspectId)(); 4374 // const segArr = []; 4375 // if (analyticsSegments) { 4376 // const segValues = analyticsSegments.split(','); 4377 // segValues.map((element) => { 4378 // const ks = 'ks:'; 4379 // const variable = ks.concat(element); 4380 // segArr.push(variable); 4381 // return segArr; 4382 // }); 4383 // } 4384 4385 var dataLayerJson = { 4386 'myIlluminaID': myIlluminaID, 4387 'myIlluminaUserType': myIlluminaUserType, 4388 'cookieSegment': cookieSegment, 4389 // 'personaID': segArr, TODO: Might need to pass an empty array here based on Daniel's QC 4390 'loginStatus': loginStatus, 4391 'prospectId': prospectId 4392 }; 4393 if (loginStatus === 'logged-out' || !loginStatus) { 4394 delete dataLayerJson['myIlluminaID']; 4395 window.localStorage.removeItem('myIlluminaUserType'); 4396 window.localStorage.removeItem('myIlluminaID'); 4397 } 4398 return dataLayerJson; 4399} 4400 4401},{"../handlers/userUtils":114,"ilmn/getCookie":24}],101:[function(require,module,exports){ 4402"use strict"; 4403 4404Object.defineProperty(exports, "__esModule", { 4405 value: true 4406}); 4407exports.pushContentPromoToDataLayer = pushContentPromoToDataLayer; 4408exports.pushGeneralLinkActionToDataLayer = pushGeneralLinkActionToDataLayer; 4409exports.pushLegacyContentPromoToDataLayer = pushLegacyContentPromoToDataLayer; 4410exports.pushLegacyMerchandisingPromoToDataLayer = pushLegacyMerchandisingPromoToDataLayer; 4411exports.pushMenuActionDataLayerObject = pushMenuActionDataLayerObject; 4412exports.pushMenuActionObjectFromAttribute = pushMenuActionObjectFromAttribute; 4413exports.pushMerchandisingPromoToDataLayer = pushMerchandisingPromoToDataLayer; 4414exports.pushPromoImpressionToDataLayer = pushPromoImpressionToDataLayer; 4415var _pushToDataLayer = require("./pushToDataLayer"); 4416var _promoUtils = require("./promoUtils"); 4417var _linkUtils = require("./linkUtils"); 4418var _menuUtils = require("./menuUtils"); 4419var _menuActionEvent = require("../pageAction/menuActionEvent"); 4420var _productMerchandisingActionEvent = require("../pageAction/productMerchandisingActionEvent"); 4421var _promoModuleActionEvent = require("../pageAction/promoModuleActionEvent"); 4422var _linkAction = require("../pageAction/linkAction"); 4423var _promoModuleImpressionEvent = require("../pageAction/promoModuleImpressionEvent"); 4424function pushMenuActionDataLayerObject(event, componentName) { 4425 var link = (0, _linkUtils.getLinkData)(event.target, componentName); 4426 var menu = (0, _menuUtils.createMenuData)(event.target); 4427 var domEventType = event.type; 4428 var dataLayerJson = (0, _menuActionEvent.menuActionEvent)(link, menu, domEventType); 4429 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4430} 4431function pushMenuActionObjectFromAttribute(event, componentName) { 4432 var link = (0, _linkUtils.createLinkDataFromAttribute)(event.target, componentName); 4433 var menu = (0, _menuUtils.createMenuData)(event.target); 4434 var domEventType = event.type; 4435 var dataLayerJson = (0, _menuActionEvent.menuActionEvent)(link, menu, domEventType); 4436 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4437} 4438function pushMerchandisingPromoToDataLayer(element, domEventType) { 4439 var merchObj = JSON.parse(element.getAttribute('data-ilmn-cmp-data-layer')); 4440 var promoParent = element.closest('[data-layer-object-type="promos"]'); 4441 var promosJson = null; 4442 if (promoParent) { 4443 var _JSON$parse; 4444 promosJson = ((_JSON$parse = JSON.parse(promoParent.getAttribute('data-ilmn-cmp-data-layer'))) === null || _JSON$parse === void 0 ? void 0 : _JSON$parse.promos) || {}; 4445 } 4446 var menuParent = element.closest('.global-nav__tier-3-group'); 4447 var menuJson = null; 4448 if (menuParent) { 4449 var _JSON$parse2; 4450 menuJson = ((_JSON$parse2 = JSON.parse(menuParent.getAttribute('data-ilmn-cmp-data-layer'))) === null || _JSON$parse2 === void 0 ? void 0 : _JSON$parse2.menu) || {}; 4451 } 4452 var componentJson = merchObj === null || merchObj === void 0 ? void 0 : merchObj.component; 4453 var productsJson = (merchObj === null || merchObj === void 0 ? void 0 : merchObj.products) || {}; 4454 var linkJson = (merchObj === null || merchObj === void 0 ? void 0 : merchObj.link) || {}; 4455 var productFindingMethodType = (merchObj === null || merchObj === void 0 ? void 0 : merchObj.productFindingMethod) || null; 4456 var dataLayerJson = (0, _productMerchandisingActionEvent.productMerchandisingActionEvent)(linkJson, productsJson, productFindingMethodType, domEventType, componentJson, promosJson, menuJson); 4457 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4458} 4459function pushLegacyMerchandisingPromoToDataLayer(element, domEventType) { 4460 var promoJson = (0, _promoUtils.getMerchandisingPromo)(element); 4461 var linkJson = (0, _linkUtils.createLinkDataForPromo)(element); 4462 var productFindingMethodType = element.hasAttribute('data-track-retail-type') ? element.getAttribute('data-track-retail-type')
4462: null; 4463 var dataLayerJson = (0, _productMerchandisingActionEvent.productMerchandisingActionEvent)(linkJson, promoJson, productFindingMethodType, domEventType); 4464 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4465} 4466function pushContentPromoToDataLayer(element, domEventType) { 4467 var linkJson = (0, _linkUtils.createLinkDataForPromo)(element); 4468 var promosJson = {}; 4469 var promoParent = element.closest('[data-layer-object-type="promos"]'); 4470 if (promoParent) { 4471 var _JSON$parse3; 4472 promosJson = ((_JSON$parse3 = JSON.parse(promoParent.getAttribute('data-ilmn-cmp-data-layer'))) === null || _JSON$parse3 === void 0 ? void 0 : _JSON$parse3.promos) || {}; 4473 } 4474 var menuParent = element.closest('.global-nav__tier-3-group'); 4475 var menuJson = null; 4476 if (menuParent) { 4477 var _JSON$parse4; 4478 menuJson = ((_JSON$parse4 = JSON.parse(menuParent.getAttribute('data-ilmn-cmp-data-layer'))) === null || _JSON$parse4 === void 0 ? void 0 : _JSON$parse4.menu) || {}; 4479 } 4480 var dataLayerJson = (0, _promoModuleActionEvent.promoModuleActionEvent)(linkJson, promosJson, domEventType, menuJson); 4481 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4482} 4483function pushLegacyContentPromoToDataLayer(element, domEventType) { 4484 var promoJson = (0, _promoUtils.getLegacyContentPromo)(element); 4485 var linkJson = (0, _linkUtils.createLinkDataForPromo)(element); 4486 var dataLayerJson = (0, _promoModuleActionEvent.promoModuleActionEvent)(linkJson, promoJson, domEventType); 4487 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4488} 4489function pushGeneralLinkActionToDataLayer(element, domEventType) { 4490 var linkJson = (0, _linkUtils.getLinkData)(element, 'general link'); 4491 var dataLayerJson = (0, _linkAction.linkActionEvent)(linkJson, domEventType); 4492 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4493} 4494function pushPromoImpressionToDataLayer(element) { 4495 if (!element) { 4496 return; 4497 } 4498 var promoCta = element.querySelector('.global-nav__promo-card-cta'); 4499 var linkJson = promoCta ? (0, _linkUtils.createLinkDataForPromo)(promoCta) : (0, _linkUtils.createLinkDataForPromo)(element); 4500 var promoJson = {}; 4501 var promoParent = element.closest('[data-layer-object-type="promos"]'); 4502 if (promoParent) { 4503 var _JSON$parse5; 4504 promoJson = ((_JSON$parse5 = JSON.parse(promoParent.getAttribute('data-ilmn-cmp-data-layer'))) === null || _JSON$parse5 === void 0 ? void 0 : _JSON$parse5.promos) || {}; 4505 } 4506 var menuParent = element.closest('.global-nav__tier-3-group'); 4507 var menuJson = null; 4508 if (menuParent) { 4509 var _JSON$parse6; 4510 menuJson = ((_JSON$parse6 = JSON.parse(menuParent.getAttribute('data-ilmn-cmp-data-layer'))) === null || _JSON$parse6 === void 0 ? void 0 : _JSON$parse6.menu) || null; 4511 } 4512 var dataLayerJson = (0, _promoModuleImpressionEvent.promoModuleImpressionEvent)(linkJson, promoJson, menuJson); 4513 (0, _pushToDataLayer.pushToDataLayer)(dataLayerJson); 4514} 4515 4516},{"../pageAction/linkAction":121,"../pageAction/menuActionEvent":122,"../pageAction/productMerchandisingActionEvent":126,"../pageAction/promoModuleActionEvent":127,"../pageAction/promoModuleImpressionEvent":128,"./linkUtils":107,"./menuUtils":108,"./promoUtils":111,"./pushToDataLayer":112}],102:[function(require,module,exports){ 4517"use strict"; 4518 4519Object.defineProperty(exports, "__esModule", { 4520 value: true 4521}); 4522exports.getClickableElement = getClickableElement; 4523exports.getLowerCase = getLowerCase; 4524exports.getQueryParameters = getQueryParameters; 4525exports.getScrollTop = getScrollTop; 4526exports.getValueFromDataLayerAttribute = getValueFromDataLayerAttribute; 4527exports.isClickable = isClickable; 4528exports.isInView = isInView; 4529exports.isPromo = isPromo; 4530exports.isVisible = isVisible; 4531function getLowerCase(text) { 4532 if (text) { 4533 return document.documentElement.lang === 'en' ? text.replace(/\s+/g, " ").toLowerCase() : text.toLowerCase(); 4534 } 4535 return null; 4536} 4537function isClickable(event) { 4538 var targetElement = event.target; 4539 var hrefElement = targetElement.closest('a'); 4540 var buttonElement = targetElement.closest('button'); 4541 return !!(hrefElement || buttonElement); 4542} 4543function getClickableElement(event) { 4544 var targetElement = event.target; 4545 if (targetElement.tagName === 'A' || targetElement.tagName === 'BUTTON') { 4546 return targetElement; 4547 } else if (targetElement.closest('a')) { 4548 return targetElement.closest('a'); 4549 } else if (targetElement.closest('button')) { 4550 return targetElement.closest('button'); 4551 } 4552 return null; 4553} 4554function getQueryParameters() { 4555 var params = new Proxy(new URLSearchParams(window.location.search), { 4556 get: function get(searchParams, prop) { 4557 return searchParams.get(prop); 4558 } 4559 }); 4560 return params; 4561} 4562function isPromo(event) { 4563 var componentModelData = event.target.closest('[data-ilmn-cmp-data-layer]'); 4564 if (componentModelData) { 4565 var promo = JSON.parse(componentModelData.dataset.ilmnCmpDataLayer).promos; 4566 if (promo) { 4567 return true; 4568 } 4569 } 4570 return false;
4571} 4572function getValueFromDataLayerAttribute(element, property) { 4573 var returnValue = null; 4574 if (element && element.hasAttribute('data-ilmn-cmp-data-layer')) { 4575 var dataLayerObj = JSON.parse(element.getAttribute('data-ilmn-cmp-data-layer')); 4576 if (dataLayerObj) { 4577 if (typeof property === 'undefined') { 4578 returnValue = dataLayerObj; 4579 } else if (Object.prototype.hasOwnProperty.call(dataLayerObj, property)) { 4580 returnValue = dataLayerObj[property]; 4581 } 4582 } 4583 } 4584 return returnValue; 4585} 4586function isVisible(element) { 4587 return element.offsetHeight > 0 && element.offsetWidth > 0; 4588} 4589function getScrollTop() { 4590 if (typeof window.pageYOffset !== 'undefined') { 4591 return window.pageYOffset; 4592 } else { 4593 var _document = document, 4594 body = _document.body; 4595 var _document2 = document, 4596 documentElement = _document2.documentElement; 4597 documentElement = documentElement.clientHeight ? documentElement : body; 4598 return documentElement.scrollTop; 4599 } 4600} 4601function isInView(object) { 4602 var windowTop = getScrollTop(); 4603 var windowBottom = windowTop + window.innerHeight; 4604 var objectTop = object.getBoundingClientRect().top + document.documentElement.scrollTop; 4605 var objectBottom = objectTop + object.offsetHeight; 4606 var offset = 0; 4607 if (objectTop <= windowBottom + offset && objectBottom >= windowTop) { 4608 return true; 4609 } 4610 return false; 4611} 4612 4613},{}],103:[function(require,module,exports){ 4614"use strict"; 4615 4616Object.defineProperty(exports, "__esModule", { 4617 value: true 4618}); 4619exports.getFacetFilterData = getFacetFilterData; 4620function getFacetFilterData(searchDetails, componentName, isFilterRemoved) { 4621 return { 4622 searchFormName: componentName, 4623 searchKeyword: '', 4624 searchKeywordSuggested: '', 4625 searchFilters: searchDetails, 4626 searchSubmitType: '', 4627 searchFilterRemoved: isFilterRemoved 4628 }; 4629} 4630 4631},{}],104:[function(require,module,exports){ 4632"use strict"; 4633 4634Object.defineProperty(exports, "__esModule", { 4635 value: true 4636}); 4637exports.getFacetSearchData = getFacetSearchData; 4638function getFacetSearchData(cardTitle, pageNo, filterObject, index) { 4639 return { 4640 searchKeyword: '', 4641 searchFilters: filterObject || null, 4642 searchPagination: pageNo || null, 4643 searchResultNumber: index || null, 4644 searchResultTitle: cardTitle.toLowerCase() || null 4645 }; 4646} 4647 4648},{}],105:[function(require,module,exports){ 4649"use strict"; 4650 4651Object.defineProperty(exports, "__esModule", { 4652 value: true 4653}); 4654exports.abstractPardotFormDataFromUrl = abstractPardotFormDataFromUrl; 4655exports.getGatedContentValue = getGatedContentValue; 4656exports.isPardotForm = isPardotForm; 4657var _commonUtils = require("./commonUtils"); 4658var _userUtils = require("./userUtils"); 4659function isPardotForm(srcUrl) { 4660 return srcUrl.includes('prdt.illumina.com'); 4661} 4662function abstractPardotFormDataFromUrl(prdtUrl) { 4663 var formUrl = prdtUrl ? new URL(prdtUrl) : null; 4664 var formUrlParams = prdtUrl ? new URLSearchParams(formUrl.search) : null; 4665 var formId = formUrl !== null && formUrl !== void 0 && formUrl.pathname ? formUrl.pathname.substring(formUrl.pathname.lastIndexOf('/') + 1) : null; 4666 var formName = null; 4667 var formHandler = formUrlParams.get('formhandler') ? formUrlParams.get('formhandler') : null; 4668 var formUserId = (0, _userUtils.getSessionProspectId)(); 4669 return { 4670 "formID": formId, 4671 "formName": formName, 4672 "formURL": formUrl.href, 4673 "formHandler": formHandler, 4674 "formUserId": formUserId 4675 }; 4676} 4677function getGatedContentValue(element) { 4678 var srcUrl = (element === null || element === void 0 ? void 0 : element.src) || null; 4679 if (srcUrl && (isPardotForm(srcUrl) || window.self !== window.top)) { 4680 element.addEventListener('click', function (event) { 4681 if ((0, _commonUtils.isClickable)(event)) { 4682 return 'gated'; 4683 } 4684 return null; 4685 }, false); 4686 } 4687 return 'normal'; 4688} 4689 4690},{"./commonUtils":102,"./userUtils":114}],106:[function(require,module,exports){ 4691"use strict"; 4692 4693Object.defineProperty(exports, "__esModule", { 4694 value: true 4695}); 4696exports.getImageAltText = getImageAltText; 4697exports.getImageLink = getImageLink; 4698var _commonUtils = require("./commonUtils"); 4699function getImageAltText(element) { 4700 var imgElement = element.querySelector('img'); 4701 var imgAltText = imgElement.getAttribute('alt'); 4702 return imgAltText ? (0, _commonUtils.getLowerCase)(imgAltText) : 'image'; 4703} 4704function getImageLink(element) { 4705 var imageLink = element.closest('a') ? element.closest('a').getAttribute('href') : null; 4706 return imageLink; 4707} 4708 4709},{"./commonUtils":102}],107:[function(require,module,exports){ 4710"use strict"; 4711 4712Object.defineProperty(exports, "__esModule", { 4713 value: true 4714}); 4715exports.createLinkData = createLinkData; 4716exports.createLinkDataForButton = createLinkDataForButton;
4717exports.createLinkDataForImage = createLinkDataForImage; 4718exports.createLinkDataForPagination = createLinkDataForPagination; 4719exports.createLinkDataForPromo = createLinkDataForPromo; 4720exports.createLinkDataForToggle = createLinkDataForToggle; 4721exports.createLinkDataForTools = createLinkDataForTools; 4722exports.createLinkDataFromAttribute = createLinkDataFromAttribute; 4723exports.createLinkDataFromIframe = createLinkDataFromIframe; 4724exports.getLinkData = getLinkData; 4725var _linkData = require("../dataObject/linkData"); 4726var _commonUtils = require("./commonUtils"); 4727var _imageUtils = require("./imageUtils"); 4728var _formUtils = require("./formUtils"); 4729function createLinkDataForImage(element, componentName) { 4730 var linkUrl = element ? (0, _imageUtils.getImageLink)(element) : null; 4731 var linkType = linkUrl ? (0, _linkData.getLinkType)(linkUrl) : 'other'; 4732 var linkRegion = componentName || null; 4733 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4734 var linkContent = element.hasAttribute('alt') ? (0, _commonUtils.getLowerCase)(element.getAttribute('alt')) : 'image'; 4735 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4736} 4737function createLinkDataForButton(element, componentName) { 4738 var linkUrl = element.src || null; 4739 var linkType = 'other'; 4740 var linkRegion = componentName || null; 4741 var linkContent = element.innerText ? (0, _commonUtils.getLowerCase)(element.innerText).trim() : null; 4742 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4743 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4744} 4745function createLinkDataForTools(element, componentName) { 4746 var _anchorElement$queryS; 4747 var anchorElement = element.closest('a') ? element.closest('a') : null; 4748 var linkUrl = anchorElement.getAttribute('href') || null; 4749 var linkType = linkUrl ? (0, _linkData.getLinkType)(linkUrl) : 'other'; 4750 var linkRegion = componentName || null; 4751 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4752 var linkContent = (_anchorElement$queryS = anchorElement.querySelector('h5')) === null || _anchorElement$queryS === void 0 ? void 0 : _anchorElement$queryS.textContent; 4753 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4754} 4755function createLinkData(element, componentName) { 4756 var linkUrl = (element === null || element === void 0 ? void 0 : element.getAttribute('href')) || null; 4757 var linkType = linkUrl ? (0, _linkData.getLinkType)(linkUrl) : 'other'; 4758 var linkRegion = componentName || null; 4759 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4760 var linkContent = element !== null && element !== void 0 && element.textContent ? (0, _commonUtils.getLowerCase)(element.textContent.trim()) : null; 4761 if (element !== null && element !== void 0 && element.querySelectorAll('img').length) { 4762 linkContent = (0, _imageUtils.getImageAltText)(element); 4763 } 4764 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4765} 4766function getLinkData(element, componentName) { 4767 if (element.tagName.toLowerCase() === 'img') { 4768 return createLinkDataForImage(element, componentName); 4769 } else if (element.tagName.toLowerCase() === 'button') { 4770 return createLinkDataForButton(element, componentName); 4771 } else if (element.tagName.toLowerCase() !== 'a' && element.closest('a')) { 4772 return createLinkDataForTools(element, componentName); 4773 } 4774 return createLinkData(element, componentName); 4775} 4776function createLinkDataForPagination(element, componentName) { 4777 var linkUrl = element.getAttribute('href') || null; 4778 var linkType = linkUrl ? (0, _linkData.getLinkType)(linkUrl) : 'other'; 4779 var linkRegion = componentName || null; 4780 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4781 var linkContent = element.textContent ? (0, _commonUtils.getLowerCase)(element.textContent.trim()) : null; 4782 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4783} 4784function createLinkDataForToggle(element, componentName) { 4785 var linkUrl = element.src || null; 4786 var linkType = 'other'; 4787 var linkRegion = componentName || null; 4788 var linkContent = element.closest('.bottom-sheet__actions-toggle--expand') ? 'bottom-sheet toggle expand' : 'bottom-sheet toggle collapse'; 4789 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4790 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4791} 4792function createLinkDataForPromo(element) { 4793 var linkUrl = element.getAttribute('href') || null; 4794 var linkType = linkUrl ? (0, _linkData.getLinkType)(linkUrl) : 'other'; 4795 var linkRegion = element.hasAttribute('data-track-group') ? element.getAttribute('data-track-group') : null; 4796 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4797 var linkContent = element.textContent ? (0, _commonUtils.getLowerCase)(element.textContent.trim()) : null; 4798 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4799} 4800 4801// eslint-disable-next-line complexity 4802function createLinkDataFromAttribute(element, componentName) { 4803 var linkContent = null; 4804 var linkUrl = null; 4805 var linkRegion = null; 4806 var linkType = null; 4807 var gatedContent = (0, _formUtils.getGatedContentValue)(element) || null; 4808 var linkModelData = element.closest("[data-ilmn-cmp-data-layer]"); 4809 if (linkModelData) { 4810 var _JSON$parse = JSON.parse(linkModelData.dataset.ilmnCmpDataLayer), 4811 link = _JSON$parse.link; 4812 if (link) { 4813 linkContent = link.linkContent ? (0, _commonUtils.getLowerCase)(link.linkContent) : linkContent; 4814 linkUrl = link.linkURL ? (0, _commonUtils.getLowerCase)(link.linkURL) : 'other'; 4815 linkRegion = componentName || null; 4816 linkType = link.linkType ? (0, _commonUtils.getLowerCase)(link.linkType) : linkType; 4817 gatedContent = link.gatedContent ? link.gatedContent : gatedContent; 4818 } 4819 } 4820 return (0, _linkData.setLinkData)(linkContent, linkType, linkRegion, linkUrl, gatedContent); 4821} 4822function createLinkDataFromIframe(event) { 4823 var ilmnOrigin = window.parent.location.href.match('^.+illumina.co.+')[0]; 4824 var target = event.target; 4825 var formUrl = sessionStorage.getItem('formUrl') ? sessionStorage.getItem('formUrl') : null; 4826 var linkClick = { 4827 "status": 'linkClicked', 4828 "linkURL": target.href, 4829 "linkContent": target.innerText, 4830 "linkRegion": 'pardot form', 4831 "gatedContent": 'gated', 4832 "formUrl": formUrl 4833 }; 4834 window.parent.postMessage(linkClick, ilmnOrigin); 4835} 4836 4837},{"../dataObject/linkData":94,"./commonUtils":102,"./formUtils":105,"./imageUtils":106}],108:[function(require,module,exports){ 4838"use strict"; 4839 4840Object.defineProperty(exports, "__esModule", { 4841 value: true 4842}); 4843exports.createMenuData = createMenuData; 4844var _menuData = require("../dataObject/menuData"); 4845var _commonUtils = require("./commonUtils"); 4846function createMenuData(element) { 4847 var menuName = null; 4848 var menuTopLevelName = null; 4849 var menuSecondaryLevelName = null; 4850 var menuModelData = element.closest('[data-ilmn-cmp-data-layer]'); 4851 if (menuModelData) { 4852 var menu = JSON.parse(menuModelData.dataset.ilmnCmpDataLayer).menu; 4853 if (menu) { 4854 menuName = menu.menuName ? (0, _commonUtils.getLowerCase)(menu.menuName) : menuName; 4855 menuTopLevelName = menu.menuTopLevelCategory ? (0, _commonUtils.getLowerCase)(menu.menuTopLevelCategory) : menuTopLevelName; 4856 menuSecondaryLevelName = menu.menuSecondLevelCategory ? (0, _commonUtils.getLowerCase)(menu.menuSecondLevelCategory) : menuSecondaryLevelName; 4857 } 4858 } 4859 return (0, _menuData.setMenuData)(menuName, menuTopLevelName, menuSecondaryLevelName); 4860} 4861 4862},{"../dataObject/menuData":95,"./commonUtils":102}],109:[function(require,module,exports){ 4863"use strict"; 4864 4865Object.defineProperty(exports, "__esModule", { 4866 value: true 4867}); 4868exports.elementInDrawer = elementInDrawer; 4869exports.elementInModal = elementInModal;
4870exports.getParentModal = getParentModal; 4871function elementInModal(element) { 4872 var modal = element.closest('[class*=modal]'); 4873 if (modal) { 4874 return true; 4875 } 4876 return false; 4877} 4878function elementInDrawer(element) { 4879 var drawer = element.closest('.stickyMarketoForm'); 4880 if (drawer) { 4881 return true; 4882 } 4883 return false; 4884} 4885function getParentModal(element) { 4886 var modal = element.closest('[class*=modal]'); 4887 var parent = modal; 4888 do { 4889 parent = parent.parentNode; 4890 } while (parent.parentNode.className.split(' ').some(function (c) { 4891 return /modal.*/.test(c); 4892 })); 4893 return parent; 4894} 4895 4896},{}],110:[function(require,module,exports){ 4897"use strict"; 4898 4899Object.defineProperty(exports, "__esModule", { 4900 value: true 4901}); 4902exports.isCustomizeLink = isCustomizeLink; 4903exports.isRequestPricing = isRequestPricing; 4904function isRequestPricing(eventObject) { 4905 var _eventObject$detail; 4906 var eventType = eventObject === null || eventObject === void 0 || (_eventObject$detail = eventObject.detail) === null || _eventObject$detail === void 0 ? void 0 : _eventObject$detail.event; 4907 if ('productRequestPricingAction' === eventType) { 4908 return true; 4909 } 4910 return false; 4911} 4912function isCustomizeLink(eventObject) { 4913 var _eventObject$detail2; 4914 var eventType = eventObject === null || eventObject === void 0 || (_eventObject$detail2 = eventObject.detail) === null || _eventObject$detail2 === void 0 ? void 0 : _eventObject$detail2.event; 4915 if ('productCustomizeAction' === eventType) { 4916 return true; 4917 } 4918 return false; 4919} 4920 4921},{}],111:[function(require,module,exports){ 4922"use strict"; 4923 4924Object.defineProperty(exports, "__esModule", { 4925 value: true 4926}); 4927exports.getLegacyContentPromo = getLegacyContentPromo; 4928exports.getLegacyContentPromosOnPageLoad = getLegacyContentPromosOnPageLoad; 4929exports.getMerchandisingPromo = getMerchandisingPromo; 4930exports.isContentPromo = isContentPromo; 4931exports.isLegacyContentPromo = isLegacyContentPromo; 4932exports.isLegacyMerchandisingPromo = isLegacyMerchandisingPromo; 4933exports.isMerchandisingPromo = isMerchandisingPromo; 4934var _promoData = require("../dataObject/promoData"); 4935var _productData = require("../dataObject/productData"); 4936var _global = require("../../../../../components/utilities/global"); 4937function isExcludedLink(element) { 4938 return element === null || element === void 0 ? void 0 : element.classList.contains('modal__close'); 4939} 4940function isLegacyMerchandisingPromo(element) { 4941 return !isExcludedLink(element) && (element.hasAttribute('data-track-retail-skus') || element.hasAttribute('data-track-retail-l04')); 4942} 4943function isMerchandisingPromo(element) { 4944 var _dataObj$products; 4945 var dataObj = (0, _global.safeJsonParse)(element.getAttribute('data-ilmn-cmp-data-layer')); 4946 return !isExcludedLink(element) && ((_dataObj$products = dataObj.products) === null || _dataObj$products === void 0 ? void 0 : _dataObj$products.length); 4947} 4948function isLegacyContentPromo(element) { 4949 return !isExcludedLink(element) && element.closest('[data-tracktnt-experience]'); 4950} 4951function isContentPromo(element) { 4952 return !isExcludedLink(element) && element.closest('[data-layer-object-type="promos"]'); 4953} 4954function getLegacyContentPromo(element) { 4955 var contentPromos = []; 4956 var parentDiv = element.closest('[data-tracktnt-experience]'); 4957 var promoName = (parentDiv === null || parentDiv === void 0 ? void 0 : parentDiv.getAttribute('data-tracktnt-description')) || null; 4958 var promoLocation = (parentDiv === null || parentDiv === void 0 ? void 0 : parentDiv.getAttribute('data-tracktnt-position')) || null; 4959 var batchDateArr = (promoLocation === null || promoLocation === void 0 ? void 0 : promoLocation.split(":")) || []; 4960 var batchDate = ''; 4961 if (batchDateArr.length > 1) { 4962 batchDate = batchDateArr[1].trim(); 4963 } 4964 var userSegment = parentDiv.getAttribute('data-tracktnt-experience'); 4965 var contentPromo = (0, _promoData.setPromoData)(promoName, promoLocation, batchDate, userSegment); 4966 contentPromos.push(contentPromo); 4967 return contentPromos; 4968} 4969function getMerchandisingPromo(element) { 4970 var products = []; 4971 var skuVal = element.getAttribute('data-track-retail-skus'); 4972 var l04Val = element.getAttribute('data-track-retail-l04'); 4973 var skuArr = skuVal ? skuVal.split(',') : []; 4974 if (skuArr.length > 1) { 4975 skuArr.forEach(function (sku) { 4976 products.push((0, _productData.setProductData)(sku, l04Val)); 4977 }); 4978 } else { 4979 products.push((0, _productData.setProductData)(skuVal, l04Val)); 4980 } 4981 return products; 4982} 4983 4984// catches legacy promos using the [data-tracktnt-experience] attr with no [data-layer-object-type] or [data-ilmn-cmp-data-layer] attrs 4985function getLegacyContentPromosOnPageLoad(pagePromosList) { 4986 var contentPromoDivElements = document.querySelectorAll('[data-tracktnt-experience]');
4987 contentPromoDivElements.forEach(function (contentPromoDivElement) { 4988 if (!contentPromoDivElement.closest('[data-layer-object-type]') && !contentPromoDivElement.closest('[data-ilmn-cmp-data-layer]')) { 4989 var contentAnchorTag = contentPromoDivElement.querySelector('a'); 4990 if (contentAnchorTag && getLegacyContentPromo(contentAnchorTag)) { 4991 var catchAllPromos = getLegacyContentPromo(contentAnchorTag); 4992 catchAllPromos.forEach(function (promo) { 4993 pagePromosList.push(promo); 4994 }); 4995 } 4996 } 4997 }); 4998 return pagePromosList; 4999} 5000 5001},{"../../../../../components/utilities/global":73,"../dataObject/productData":97,"../dataObject/promoData":98}],112:[function(require,module,exports){ 5002"use strict"; 5003 5004Object.defineProperty(exports, "__esModule", { 5005 value: true 5006}); 5007exports.pushToDataLayer = pushToDataLayer; 5008// eslint-disable-next-line import/prefer-default-export 5009function pushToDataLayer(dataLayerJson) { 5010 try { 5011 window.adobeDataLayer = window.adobeDataLayer || []; 5012 // eslint-disable-next-line no-undef 5013 adobeDataLayer.push(dataLayerJson); 5014 } catch (err) { 5015 console.log(err); 5016 } 5017} 5018 5019},{}],113:[function(require,module,exports){ 5020"use strict"; 5021 5022var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5023Object.defineProperty(exports, "__esModule", { 5024 value: true 5025}); 5026exports.getFilterVal = getFilterVal; 5027exports.getSearchDataParams = getSearchDataParams; 5028exports.handleUserSearchComplete = handleUserSearchComplete; 5029exports.pushToDataLayerAfterSearchCompletion = pushToDataLayerAfterSearchCompletion; 5030exports.setClickEvent = setClickEvent; 5031exports.setSearchPagination = setSearchPagination; 5032var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); 5033var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); 5034var _commonUtils = require("../../../acdl/js/handlers/commonUtils"); 5035var _searchSubmitAction = require("../../../acdl-static/js/search/searchSubmitAction"); 5036var _analytics = require("../../../acdl-static/js/search/analytics"); 5037var _searchData = require("../../../acdl/js/dataObject/searchData"); 5038var _pushToDataLayer = require("./pushToDataLayer"); 5039function getFilterVal(element) { 5040 var _element$parentElemen; 5041 var queryParams = (0, _commonUtils.getQueryParameters)(); 5042 element = document.querySelector(element) ? document.querySelector(element) : null; 5043 if (!element && window.sessionStorage.getItem('fromProductPage') === 'true') { 5044 return 'products'; 5045 } else if (!element && window.sessionStorage.getItem('fromSupportPage') === 'true') { 5046 return 'tech support'; 5047 } else if (!element && queryParams.filter) { 5048 if (queryParams.filter === 'support') { 5049 return 'tech support'; 5050 } else { 5051 return queryParams.filter; 5052 } 5053 } else if (!element) { 5054 return null; 5055 } 5056 var elementFilterValue = (0, _commonUtils.getLowerCase)((_element$parentElemen = element.parentElement) === null || _element$parentElemen === void 0 ? void 0 : _element$parentElemen.innerText) || null; 5057 return elementFilterValue; 5058} 5059function setClickEvent(element) { 5060 element.addEventListener("click", function (event) { 5061 if ((0, _commonUtils.isClickable)(event) && (0, _analytics.isSearchIncludedElement)(event.target)) { 5062 (0, _searchSubmitAction.pushSearchSubmitDataLayerObject)(event); 5063 } 5064 }, false); 5065} 5066function getSearchDataParams(actionEvent) { 5067 var queryParams = (0, _commonUtils.getQueryParameters)(); 5068 var searchKeyword = queryParams.q; 5069 var searchFilterCategory = 'category'; 5070 var searchPagination = queryParams.p; 5071 var filterValue = getFilterVal(".radio-list input:checked"); 5072 var searchDataObj = (0, _searchData.searchData)(searchKeyword, null, searchPagination, searchFilterCategory, filterValue, actionEvent); 5073 searchDataObj.searchFormName = "site search"; 5074 return searchDataObj; 5075} 5076function handleUserSearchComplete(_x) { 5077 return _handleUserSearchComplete.apply(this, arguments); 5078} 5079function _handleUserSearchComplete() { 5080 _handleUserSearchComplete = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(dataLayerJson) { 5081 return _regenerator.default.wrap(function (_context) { 5082 while (1) switch (_context.prev = _context.next) { 5083 case 0: 5084 return _context.abrupt("return", new Promise(function (resolve, reject) { 5085 var _addSearchResult = function addSearchResult(event) { 5086 var _dataLayerJson$search2; 5087 if ((dataLayerJson === null || dataLayerJson === void 0 || (_dataLayerJson$search2 = dataLayerJson.searchDetails) === null || _dataLayerJson$search2 === void 0 ? void 0 : _dataLayerJson$search2.searchNumberOfResults) !== undefined) { 5088 dataLayerJson.searchDetails.searchNumberOfResults = event.detail.numberOfResults; 5089 } 5090 setSearchPagination(dataLayerJson); 5091 document.removeEventListener('userSearchComplete', _addSearchResult); 5092 resolve(dataLayerJson); 5093 }; 5094 document.addEventListener('userSearchComplete', _addSearchResult); 5095 })); 5096 case 1: 5097 case "end": 5098 return _context.stop(); 5099 } 5100 }, _callee); 5101 })); 5102 return _handleUserSearchComplete.apply(this, arguments); 5103} 5104function setSearchPagination(dataLayerJson) { 5105 var _dataLayerJson$search; 5106 if ((dataLayerJson === null || dataLayerJson === void 0 || (_dataLayerJson$search = dataLayerJson.searchDetails) === null || _dataLayerJson$search === void 0 ? void 0 : _dataLayerJson$search.searchPagination) !== undefined && dataLayerJson.searchDetails.searchPagination == null) { 5107 var queryParams = (0, _commonUtils.getQueryParameters)(); 5108 var searchPagination = queryParams.p; 5109 dataLayerJson.searchDetails.searchPagination = searchPagination; 5110 } 5111} 5112function pushToDataLayerAfterSearchCompletion(_x2) { 5113 return _pushToDataLayerAfterSearchCompletion.apply(this, arguments); 5114} 5115function _pushToDataLayerAfterSearchCompletion() { 5116 _pushToDataLayerAfterSearchCompletion = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(d
5116ataLayerJson) { 5117 var modifiedDataLayerJson; 5118 return _regenerator.default.wrap(function (_context2) { 5119 while (1) switch (_context2.prev = _context2.next) { 5120 case 0: 5121 _context2.next = 1; 5122 return handleUserSearchComplete(dataLayerJson); 5123 case 1: 5124 modifiedDataLayerJson = _context2.sent; 5125 (0, _pushToDataLayer.pushToDataLayer)(modifiedDataLayerJson); 5126 case 2: 5127 case "end": 5128 return _context2.stop(); 5129 } 5130 }, _callee2); 5131 })); 5132 return _pushToDataLayerAfterSearchCompletion.apply(this, arguments); 5133} 5134 5135},{"../../../acdl-static/js/search/analytics":86,"../../../acdl-static/js/search/searchSubmitAction":88,"../../../acdl/js/dataObject/searchData":99,"../../../acdl/js/handlers/commonUtils":102,"./pushToDataLayer":112,"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/regenerator":22}],114:[function(require,module,exports){ 5136"use strict"; 5137 5138var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5139Object.defineProperty(exports, "__esModule", { 5140 value: true 5141}); 5142exports.executeWithAdobeDataLayer = executeWithAdobeDataLayer; 5143exports.executeWithEcom = executeWithEcom; 5144exports.executeWithOneTrust = executeWithOneTrust; 5145exports.getProfileData = getProfileData; 5146exports.getSessionProspectId = getSessionProspectId; 5147exports.setMyIlluminaId = setMyIlluminaId; 5148exports.setMyIlluminaUserType = setMyIlluminaUserType; 5149exports.setSessionProspectId = setSessionProspectId; 5150exports.waitForLoggedInStatus = waitForLoggedInStatus; 5151var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); 5152var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); 5153var _getCookie = _interopRequireDefault(require("ilmn/getCookie")); 5154function executeWithEcom(callback) { 5155 var maxAttempts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; 5156 var interval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000; 5157 var attempts = 0; 5158 var _waitForEcom = function waitForEcom() { 5159 attempts += 1; 5160 if (window.ecommerce) { 5161 var _waitForEcomConfig = function waitForEcomConfig() { 5162 if (window.ecommerce.Config) { 5163 callback(window.ecommerce); 5164 } else if (attempts < maxAttempts) { 5165 setTimeout(_waitForEcomConfig, interval); 5166 } else { 5167 console.log('Could not retrieve ecommerce.config object'); 5168 } 5169 }; 5170 _waitForEcomConfig(); 5171 } else if (attempts < maxAttempts) { 5172 setTimeout(_waitForEcom, interval); 5173 } else { 5174 console.log('Could not retrieve ecommerce object'); 5175 } 5176 }; 5177 try { 5178 _waitForEcom(); 5179 } catch (error) { 5180 console.error(error); 5181 } 5182} 5183function executeWithAdobeDataLayer(callback) { 5184 var maxAttempts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; 5185 var interval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000; 5186 var attempts = 0; 5187 var _waitForAdobeDataLayer = function waitForAdobeDataLayer() { 5188 attempts += 1; 5189 if (window.adobeDataLayer) { 5190 callback(window.adobeDataLayer); 5191 } else if (attempts < maxAttempts) { 5192 setTimeout(_waitForAdobeDataLayer, interval); 5193 } else { 5194 console.log('Could not retrieve window.adobeDataLayer object'); 5195 } 5196 }; 5197 try { 5198 _waitForAdobeDataLayer(); 5199 } catch (error) { 5200 console.error(error); 5201 } 5202} 5203function executeWithOneTrust(callback) { 5204 var maxAttempts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; 5205 var interval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000; 5206 var attempts = 0; 5207 var _waitForOneTrust = function waitForOneTrust() { 5208 var _window$OnetrustActiv; 5209 attempts += 1; 5210 if (window.OnetrustActiveGroups && ((_window$OnetrustActiv = window.OnetrustActiveGroups) === null || _window$OnetrustActiv === void 0 ? void 0 : _window$OnetrustActiv.replace(/,/g, '')) !== '') { 5211 callback(); 5212 } else if (attempts < maxAttempts) { 5213 setTimeout(_waitForOneTrust, interval); 5214 } else { 5215 console.log('Could not retrieve window.OnetrustActiveGroups object'); 5216 } 5217 }; 5218 try { 5219 _waitForOneTrust(); 5220 } catch (error) { 5221 console.error(error); 5222 } 5223} 5224function waitForLoggedInStatus(callback) { 5225 var maxAttempts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; 5226 var interval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000; 5227 var attempts = 0; 5228 if (window.localStorage) { 5229 var checkLocalStorageValue = function checkLocalStorageValue() { 5230 attempts += 1; 5231 if (window.localStorage.getItem('loggedInStatus')) { 5232 window.localStorage.removeItem('loggedInStatus'); 5233 callback(); 5234 } else if (attempts < maxAttempts) { 5235 setTimeout(checkLocalStorageValue, interval); 5236 } else { 5237 console.log('Could not retrieve logged-in object'); 5238 callback(); 5239 } 5240 }; 5241 checkLocalStorageValue(); 5242 } else { 5243 console.log('Could not retrieve logged-in object'); 5244 callback(); 5245 } 5246} 5247function getPSToken() { 5248 var psToken = (0, _getCookie.default)('psToken') ? (0, _getCookie.default)('psToken') : null; 5249 return psToken; 5250} 5251function fetchData(_x) { 5252 return _fetchData.apply(this, arguments); 5253} 5254function _fetchData() { 5255 _fetchData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(url) { 5256 var psToken, getResp, contentType, responseText, jsonResponse, _t; 5257 return _regenerator.default.wrap(function (_context) { 5258 while (1) switch (_context.prev = _context.next) { 5259 case 0: 5260 psToken = getPSToken(); 5261 getResp = null; 5262 if (!psToken) { 5263 _context.next = 8; 5264 break; 5265 } 5266 _context.prev = 1; 5267 _context.next = 2; 5268 return fetch(url, { 5269 headers: { 5270 "psToken": psToken 5271 } 5272 }); 5273 case 2: 5274 getResp = _context.sent; 5275 if (!getResp.ok) { 5276 console.log("Network response was not ok from ".concat(url)); 5277 } 5278 contentType = getResp.headers.get('content-type'); 5279 if (!(contentType && contentType.indexOf('application/json') !== -1)) { 5280 _context.next = 4; 5281 break; 5282 } 5283 _context.next = 3; 5284 return getResp.text(); 5285 case 3: 5286 responseText = _context.sent; 5287 jsonResponse = responseText.startsWith(')]}\'') ? JSON.parse(responseText.substring(6)) : JSON.parse(responseText); // Parse as JSON if magic prefix is not present 5288 return _context.abrupt("return", jsonResponse); 5289 case 4: 5290 console.log("Invalid response type from ".concat(url)); 5291 return _context.abrupt("return", null); 5292 case 5: 5293 _context.next = 7; 5294 break; 5295 case 6: 5296 _context.prev = 6; 5297 _t = _context["catch"](1); 5298 console.log(_t); 5299 return _context.abrupt("return", null); 5300 case 7: 5301 _context.next = 9; 5302 break; 5303 case 8: 5304 return _context.abrupt("return", null); 5305 case 9: 5306 case "end": 5307 return _context.stop(); 5308 } 5309 }, _callee, null, [[1, 6]]); 5310 })); 5311 return _fetchData.apply(this, arguments); 5312} 5313function getProfileData() { 5314 return _getProfileData.apply(this, arguments); 5315} 5316function _getProfileData() { 5317 _getProfileData = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() { 5318 var url, data, _t2; 5319 return _regenerator.default.wrap(function (_context2) { 5320 while (1) switch (_context2.prev = _context2.next) { 5321 case 0: 5322 _context2.prev = 0; 5323 url = null; 5324 executeWithEcom(function (ecom) { 5325 var _ref = ecom.config || null, 5326 commerceHttpsProtocolHost = _ref.commerceHttpsProtocolHost; 5327 if (commerceHttpsProtocolHost) { 5328 url = "".concat(commerceHttpsProtocolHost, "/public/profile"); 5329 } 5330 }); 5331 if (!url) { 5332 _context2.next = 2; 5333 break; 5334 } 5335 _context2.next = 1; 5336 return fetchData(url); 5337 case 1: 5338 data = _context2.sent; 5339 return _context2.abrupt("return", data); 5340 case 2: 5341 return _context2.abrupt("return", null); 5342 case 3: 5343 _context2.next = 5; 5344 break; 5345 case 4: 5346 _context2.prev = 4; 5347 _t2 = _context2["catch"](0); 5348 console.error(_t2); 5349 return _context2.abrupt("return", null); 5350 case 5: 5351 case "end": 5352 return _context2.stop(); 5353 } 5354 }, _callee2, null, [[0, 4]]); 5355 })); 5356 return _getProfileData.apply(this, arguments); 5357} 5358function updateDataLayerUserValue(updateFn) { 5359 executeWithAdobeDataLayer(function (adobeDataLayer) { 5360 adobeDataLayer.forEach(function (obj) { 5361 if ((obj === null || obj === void 0 ? void 0 : obj.user) !== undefined) { 5362 updateFn(obj); 5363 } 5364 }); 5365 }); 5366} 5367function getValueByPath(obj, path) { 5368 var keys = path.split('.'); 5369 return keys.reduce(function (value, key) { 5370 return value ? value[key] : null; 5371 }, obj); 5372} 5373function getProfileDataValue(_x2) { 5374 return _getProfileDataValue.apply(this, arguments); 5375} 5376function _getProfileDataValue() { 5377 _getProfileDataValue = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(path) { 5378 var data; 5379 return _regenerator.default.wrap(function (_context3) { 5380 while (1) switch (_context3.prev = _context3.next) { 5381 case 0: 5382 _context3.next = 1; 5383 return getProfileData(); 5384 case 1: 5385 data = _context3.sent; 5386 return _context3.abrupt("return", getValueByPath(data, path)); 5387 case 2: 5388 case "end": 5389 return _context3.stop(); 5390 } 5391 }, _callee3); 5392 })); 5393 return _getProfileDataValue.apply(this, arguments); 5394} 5395function setMyIlluminaUserType() { 5396 return _setMyIlluminaUserType.apply(this, arguments); 5397} 5398function _setMyIlluminaUserType() { 5399 _setMyIlluminaUserType = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() { 5400 var profileDataValue, 5401 myIlluminaUserType, 5402 myIlluminaRoles, 5403 _args4 = arguments, 5404 _t3; 5405 return _regenerator.default.wrap(function (_context4) { 5406 while (1) switch (_context4.prev = _context4.next) { 5407 case 0: 5408 profileDataValue = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : null; 5409 _context4.prev = 1; 5410 myIlluminaUserType = profileDataValue; 5411 if (myIlluminaUserType) { 5412 _context4.next = 3; 5413 break; 5414 } 5415 _context4.next = 2; 5416 return getProfileDataValue('roles'); 5417 case 2: 5418 myIlluminaRoles = _context4.sent;
5419 myIlluminaUserType = myIlluminaRoles.map(function (myIlluminaRole) { 5420 return myIlluminaRole.toLowerCase(); 5421 }); 5422 case 3: 5423 if (myIlluminaUserType !== null) { 5424 window.localStorage.setItem('myIlluminaUserType', JSON.stringify(myIlluminaUserType)); 5425 } 5426 updateDataLayerUserValue(function (obj) { 5427 obj.user.myIlluminaUserType = myIlluminaUserType; 5428 }); 5429 _context4.next = 5; 5430 break; 5431 case 4: 5432 _context4.prev = 4; 5433 _t3 = _context4["catch"](1); 5434 console.error('Error setting My Illumina User Type:', _t3); 5435 case 5: 5436 case "end": 5437 return _context4.stop(); 5438 } 5439 }, _callee4, null, [[1, 4]]); 5440 })); 5441 return _setMyIlluminaUserType.apply(this, arguments); 5442} 5443function setMyIlluminaId() { 5444 return _setMyIlluminaId.apply(this, arguments); 5445} 5446function _setMyIlluminaId() { 5447 _setMyIlluminaId = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() { 5448 var profileDataValue, 5449 myIlluminaID, 5450 _args5 = arguments, 5451 _t4; 5452 return _regenerator.default.wrap(function (_context5) { 5453 while (1) switch (_context5.prev = _context5.next) { 5454 case 0: 5455 profileDataValue = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : null; 5456 _context5.prev = 1; 5457 myIlluminaID = profileDataValue; 5458 if (myIlluminaID) { 5459 _context5.next = 3; 5460 break; 5461 } 5462 _context5.next = 2; 5463 return getProfileDataValue('pGuid'); 5464 case 2: 5465 myIlluminaID = _context5.sent; 5466 case 3: 5467 if (myIlluminaID !== null) { 5468 window.localStorage.setItem('myIlluminaID', myIlluminaID); 5469 } 5470 updateDataLayerUserValue(function (obj) { 5471 obj.user.myIlluminaID = myIlluminaID; 5472 }); 5473 _context5.next = 5; 5474 break; 5475 case 4: 5476 _context5.prev = 4; 5477 _t4 = _context5["catch"](1); 5478 console.error('Error setting myIlluminaID:', _t4); 5479 case 5: 5480 case "end": 5481 return _context5.stop(); 5482 } 5483 }, _callee5, null, [[1, 4]]); 5484 })); 5485 return _setMyIlluminaId.apply(this, arguments); 5486} 5487function setSessionProspectId() { 5488 return _setSessionProspectId.apply(this, arguments); 5489} 5490function _setSessionProspectId() { 5491 _setSessionProspectId = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() { 5492 var url, response, responseJson, prospectId, _t5; 5493 return _regenerator.default.wrap(function (_context6) { 5494 while (1) switch (_context6.prev = _context6.next) { 5495 case 0: 5496 url = '/bin/pardot/getprospectid'; 5497 _context6.prev = 1; 5498 _context6.next = 2; 5499 return fetch(url); 5500 case 2: 5501 response = _context6.sent; 5502 if (response.ok) { 5503 _context6.next = 3; 5504 break; 5505 } 5506 console.error("Response status: ".concat(response.status)); 5507 return _context6.abrupt("return"); 5508 case 3: 5509 _context6.next = 4; 5510 return response.json(); 5511 case 4: 5512 responseJson = _context6.sent; 5513 prospectId = (responseJson === null || responseJson === void 0 ? void 0 : responseJson.prospectId) || null; 5514 if (prospectId) { 5515 _context6.next = 5; 5516 break; 5517 } 5518 return _context6.abrupt("return"); 5519 case 5: 5520 window.sessionStorage.setItem('IlmnProspectId', prospectId); 5521 _context6.next = 7; 5522 break; 5523 case 6: 5524 _context6.prev = 6; 5525 _t5 = _context6["catch"](1); 5526 console.error(_t5.message); 5527 case 7: 5528 case "end": 5529 return _context6.stop(); 5530 } 5531 }, _callee6, null, [[1, 6]]); 5532 })); 5533 return _setSessionProspectId.apply(this, arguments); 5534} 5535function getSessionProspectId() { 5536 return window.sessionStorage.getItem('IlmnProspectId'); 5537} 5538 5539},{"@babel/runtime/helpers/asyncToGenerator":4,"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/regenerator":22,"ilmn/getCookie":24}],115:[function(require,module,exports){ 5540"use strict"; 5541 5542var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5543Object.defineProperty(exports, "__esModule", { 5544 value: true 5545}); 5546exports.attributionActionEvent = attributionActionEvent; 5547var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5548var _userData = _interopRequireDefault(require("../dataObject/userData")); 5549/**
5550 * Builds the ACDL data layer payload for attribution (first-touch/session). 5551 * Fired when attribution is set (cookie + custom event), so attribution data 5552 * is available in the Data Layer even when the user never submits a form. 5553 * 5554 * @param {Object} attributionData - { channel, referrerPath, referrerDomain, cookieValue } 5555 * @returns {Object} dataLayerJson - payload for adobeDataLayer.push() 5556 */ 5557function attributionActionEvent(attributionData) { 5558 var pageObj = (0, _pageObject.default)(); 5559 var userDataObj = (0, _userData.default)(); 5560 var attribution = attributionData || null; 5561 var dataLayerJson = { 5562 "event": "attributionAction", 5563 "page": pageObj, 5564 "user": userDataObj, 5565 "attribution": attribution 5566 }; 5567 return dataLayerJson; 5568} 5569 5570},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],116:[function(require,module,exports){ 5571"use strict"; 5572 5573var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5574Object.defineProperty(exports, "__esModule", { 5575 value: true 5576}); 5577exports.componentActionEvent = componentActionEvent; 5578var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5579var _userData = _interopRequireDefault(require("../dataObject/userData")); 5580function componentActionEvent(linkData, componentData, domEventType) { 5581 var pageObj = (0, _pageObject.default)(); 5582 var userDataObj = (0, _userData.default)(); 5583 var link = linkData || null; 5584 var component = componentData || null; 5585 var domEvent = domEventType || ''; 5586 var dataLayerJson = { 5587 "event": "componentAction", 5588 "page": pageObj, 5589 "user": userDataObj, 5590 "link": link, 5591 "component": component, 5592 "domEvent": domEvent 5593 }; 5594 return dataLayerJson; 5595} 5596 5597},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],117:[function(require,module,exports){ 5598"use strict"; 5599 5600var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5601Object.defineProperty(exports, "__esModule", { 5602 value: true 5603}); 5604exports.errorActionEvent = errorActionEvent; 5605var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5606var _userData = _interopRequireDefault(require("../dataObject/userData")); 5607function errorActionEvent(errorMessages, domEventType) { 5608 var pageObj = (0, _pageObject.default)(); 5609 var userDataObj = (0, _userData.default)(); 5610 return { 5611 "event": "errorAction", 5612 "page": pageObj, 5613 "user": userDataObj, 5614 "error": errorMessages, 5615 "domEvent": domEventType 5616 }; 5617} 5618 5619},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],118:[function(require,module,exports){ 5620"use strict"; 5621 5622var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5623Object.defineProperty(exports, "__esModule", { 5624 value: true 5625}); 5626exports.default = filterClickActionEvent; 5627var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5628var _userData = _interopRequireDefault(require("../dataObject/userData")); 5629var _facetFilterUtils = require("../handlers/facetFilterUtils"); 5630var _linkData = require("../dataObject/linkData"); 5631function filterClickActionEvent(searchDetails, filterCategory, filterName, isFilterRemoved) { 5632 var pageObj = (0, _pageObject.default)(); 5633 var userDataObj = (0, _userData.default)(); 5634 var searchDataObj = (0, _facetFilterUtils.getFacetFilterData)(searchDetails, 'facet-search', isFilterRemoved); 5635 var linkObj = (0, _linkData.setLinkData)(filterName, 'other', filterCategory); 5636 var dataLayerJson = { 5637 "event": 'searchFilterAction', 5638 "page": pageObj, 5639 "user": userDataObj, 5640 "link": linkObj, 5641 "searchDetails": searchDataObj, 5642 "domEvent": 'click' 5643 }; 5644 return dataLayerJson; 5645} 5646; 5647 5648},{"../dataObject/linkData":94,"../dataObject/pageObject":96,"../dataObject/userData":100,"../handlers/facetFilterUtils":103,"@babel/runtime/helpers/interopRequireDefault":6}],119:[function(require,module,exports){ 5649"use strict"; 5650 5651var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5652Object.defineProperty(exports, "__esModule", { 5653 value: true 5654}); 5655exports.default = formLoadActionEvent; 5656var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5657var _userData = _interopRequireDefault(require("../dataObject/userData")); 5658function formLoadActionEvent(linkData, formData, domEventType) { 5659 var pageObj = (0, _pageObject.default)(); 5660 var userDataObj = (0, _userData.default)(); 5661 var link = linkData || null; 5662 var form = formData || null; 5663 var domEvent = domEventType || 'load'; 5664 var dataLayerJson = { 5665 "event": "formLoadAction", 5666 "page": pageObj, 5667 "user": userDataObj, 5668 "link": link, 5669 "form": form, 5670 "domEvent": domEvent 5671 }; 5672 return dataLayerJson; 5673} 5674 5675},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],120:[function(require,module,exports){ 5676"use strict"; 5677 5678var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5679Object.defineProperty(exports, "__esModule", { 5680 value: true 5681}); 5682exports.formSubmitActionEvent = formSubmitActionEvent; 5683var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5684var _userData = _interopRequireDefault(require("../dataObject/userData")); 5685function formSubmitActionEvent(linkData, formData, domEventType) { 5686 var pageObj = (0, _pageObject.default)(); 5687 var userDataObj = (0, _userData.default)(); 5688 var link = linkData || null; 5689 var form = formData || null; 5690 var domEvent = domEventType || ''; 5691 var dataLayerJson = { 5692 "event": "formSubmitAction", 5693 "page": pageObj, 5694 "user": userDataObj, 5695 "link": link, 5696 "form": form, 5697 "domEvent": domEvent 5698 }; 5699 return dataLayerJson; 5700} 5701 5702},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],121:[function(require,module,exports){ 5703"use strict"; 5704 5705var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5706Object.defineProperty(exports, "__esModule", { 5707 value: true 5708}); 5709exports.linkActionEvent = linkActionEvent; 5710exports.linkActionEventFromForm = linkActionEventFromForm; 5711var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5712var _userData = _interopRequireDefault(require("../dataObject/userData")); 5713function linkActionEvent(linkData, domEventType) { 5714 var pageObj = (0, _pageObject.default)(); 5715 var userDataObj = (0, _userData.default)(); 5716 var link = linkData || null; 5717 var domEvent = domEventType || ''; 5718 var dataLayerJson = { 5719 "event": "linkAction", 5720 "page": pageObj, 5721 "user": userDataObj, 5722 "link": link, 5723 "domEvent": domEvent 5724 }; 5725 return dataLayerJson; 5726} 5727function linkActionEventFromForm(linkData, formData) { 5728 var pageObj = (0, _pageObject.default)(); 5729 var userDataObj = (0, _userData.default)(); 5730 var link = linkData || null; 5731 var form = formData || null; 5732 var dataLayerJson = { 5733 "event": "linkAction", 5734 "page": pageObj, 5735 "user": userDataObj, 5736 "link": link, 5737 "form": form, 5738 "domEvent": 'click' 5739 }; 5740 return dataLayerJson; 5741} 5742 5743},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],122:[function(require,module,exports){ 5744"use strict"; 5745 5746var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5747Object.defineProperty(exports, "__esModule", { 5748 value: true 5749}); 5750exports.menuActionEvent = menuActionEvent; 5751var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5752var _userData = _interopRequireDefault(require("../dataObject/userData")); 5753function menuActionEvent(linkData, menuData, domEventType) { 5754 var obj = (0, _pageObject.default)(); 5755 var userDataObj = (0, _userData.default)(); 5756 var link = linkData || null; 5757 var menu = menuData || null; 5758 var domEvent = domEventType || ''; 5759 var dataLayerJson = { 5760 "event": "menuAction", 5761 "page": obj, 5762 "user": userDataObj, 5763 "link": link, 5764 "menu": menu, 5765 "domEvent": domEvent 5766 }; 5767 return dataLayerJson; 5768} 5769 5770},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],123:[function(require,module,exports){ 5771"use strict"; 5772 5773var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5774Object.defineProperty(exports, "__esModule", { 5775 value: true 5776}); 5777exports.productCartAddActionEvent = productCartAddActionEvent; 5778var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5779var _userData = _interopRequireDefault(require("../dataObject/userData")); 5780function productCartAddActionEvent(linkData, productsDataObj, cartDetailsObj, findingMethodObj, domEventType) { 5781 var obj = (0, _pageObject.default)(); 5782 var userDataObj = (0, _userData.default)(); 5783 var link = linkData || null; 5784 var domEvent = domEventType || ''; 5785 var dataLayerJson = { 5786 "event": "productCartAddAction", 5787 "page": obj, 5788 "user": userDataObj, 5789 "link": link, 5790 "products": productsDataObj, 5791 "cartDetails": cartDetailsObj,
5792 "productFindingMethod": findingMethodObj, 5793 "domEvent": domEvent 5794 }; 5795 return dataLayerJson; 5796} 5797 5798},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],124:[function(require,module,exports){ 5799"use strict"; 5800 5801var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5802Object.defineProperty(exports, "__esModule", { 5803 value: true 5804}); 5805exports.productIncrementActionEvent = productIncrementActionEvent; 5806var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5807var _userData = _interopRequireDefault(require("../dataObject/userData")); 5808function productIncrementActionEvent(productsData, productFindingMethod, linkContent, domEventType) { 5809 var pageObj = (0, _pageObject.default)() || {}; 5810 var userDataObj = (0, _userData.default)() || {}; 5811 var productsDataObj = productsData || {}; 5812 var linkData = linkContent || {}; 5813 var findingMethod = productFindingMethod || null; 5814 var domEvent = domEventType || null; 5815 var dataLayerJson = { 5816 'event': 'productIncrementAction', 5817 'page': pageObj, 5818 'user': userDataObj, 5819 'link': linkData, 5820 'products': productsDataObj, 5821 'productFindingMethod': findingMethod, 5822 'domEvent': domEvent 5823 }; 5824 return dataLayerJson; 5825} 5826 5827},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],125:[function(require,module,exports){ 5828"use strict"; 5829 5830var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5831Object.defineProperty(exports, "__esModule", { 5832 value: true 5833}); 5834exports.productLinkActionEvent = productLinkActionEvent; 5835var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5836var _userData = _interopRequireDefault(require("../dataObject/userData")); 5837/** 5838 * As the dataLayer object structure is pretty much same except the event type in productRequestPricingActionEvent & 5839 * productCustomizeActionEvent, both of these are using similar data objects. So rather having 2 different action events 5840 * we created a new action event productLinkActionEvent to handle both of these different action events. 5841*/ 5842function productLinkActionEvent(actionEvent, linkData, productsDataObj, findingMethodObj, domEventType) { 5843 var obj = (0, _pageObject.default)(); 5844 var userDataObj = (0, _userData.default)(); 5845 var dataLayerJson = { 5846 'event': actionEvent || null, 5847 'page': obj || {}, 5848 'user': userDataObj || {}, 5849 'link': linkData || {}, 5850 'products': productsDataObj || {}, 5851 'productFindingMethod': findingMethodObj || null, 5852 'domEvent': domEventType || null 5853 }; 5854 return dataLayerJson; 5855} 5856 5857},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],126:[function(require,module,exports){ 5858"use strict"; 5859 5860var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5861Object.defineProperty(exports, "__esModule", { 5862 value: true 5863}); 5864exports.productMerchandisingActionEvent = productMerchandisingActionEvent; 5865var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5866var _userData = _interopRequireDefault(require("../dataObject/userData")); 5867function productMerchandisingActionEvent(linkData, productData, productFindingMethodType, domEventType, componentData, promosData, menuData) { 5868 var pageObj = (0, _pageObject.default)(); 5869 var userDataObj = (0, _userData.default)(); 5870 var link = linkData || null; 5871 var products = productData || null; 5872 var component = componentData !== null && componentData !== void 0 ? componentData : null; 5873 var promos = promosData || null; 5874 var menu = menuData || null; 5875 var productFindingMethod = productFindingMethodType || null; 5876 var domEvent = domEventType || ''; 5877 var dataLayerJson = { 5878 'event': 'productMerchandisingAction', 5879 'page': pageObj, 5880 'user': userDataObj, 5881 'link': link, 5882 'products': products, 5883 'component': component, 5884 'promos': promos, 5885 'menu': menu, 5886 'domEvent': domEvent, 5887 'productFindingMethod': productFindingMethod 5888 }; 5889 var keysToDelete = ['component', 'menu', 'promos']; 5890 for (var _i = 0, _keysToDelete = keysToDelete; _i < _keysToDelete.length; _i++) { 5891 var key = _keysToDelete[_i]; 5892 if (!dataLayerJson[key]) { 5893 delete dataLayerJson[key]; 5894 } 5895 } 5896 return dataLayerJson; 5897} 5898 5899},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],127:[function(require,module,exports){ 5900"use strict"; 5901 5902var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5903Object.defineProperty(exports, "__esModule", { 5904 value: true 5905}); 5906exports.promoModuleActionEvent = promoModuleActionEvent; 5907var _userData = _interopRequireDefault(require("../dataObject/userData")); 5908var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5909function promoModuleActionEvent(linkData, promoArray, domEventType, menuData) { 5910 var pageObj = (0, _pageObject.default)(); 5911 var userDataObj = (0, _userData.default)(); 5912 var link = linkData || null; 5913 var page = pageObj || null; 5914 var menu = menuData || null; 5915 var domEvent = domEventType || ''; 5916 var promos = promoArray || null; 5917 var dataLayerJson = { 5918 "event": "promoModuleAction", 5919 "page": page, 5920 "user": userDataObj, 5921 "link": link, 5922 "promos": promos, 5923 "menu": menu, 5924 "domEvent": domEvent 5925 }; 5926 if (!menu) { 5927 delete dataLayerJson['menu']; 5928 } 5929 return dataLayerJson; 5930} 5931 5932},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],128:[function(require,module,exports){ 5933"use strict"; 5934 5935var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5936Object.defineProperty(exports, "__esModule", { 5937 value: true 5938}); 5939exports.promoModuleImpressionEvent = promoModuleImpressionEvent; 5940var _userData = _interopRequireDefault(require("../dataObject/userData")); 5941var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5942function promoModuleImpressionEvent(linkData, promoArray, menuData) { 5943 var pageObj = (0, _pageObject.default)(); 5944 var userDataObj = (0, _userData.default)(); 5945 var link = linkData || null; 5946 var page = pageObj || null; 5947 var menu = menuData || null; 5948 var promos = promoArray || null; 5949 var dataLayerJson = { 5950 "event": "promoModuleImpression", 5951 "page": page, 5952 "user": userDataObj, 5953 "link": link, 5954 "promos": promos, 5955 "menu": menu, 5956 "domEvent": "" 5957 }; 5958 if (!menu) { 5959 delete dataLayerJson['menu']; 5960 } 5961 return dataLayerJson; 5962} 5963 5964},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],129:[function(require,module,exports){ 5965"use strict"; 5966 5967var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5968Object.defineProperty(exports, "__esModule", { 5969 value: true 5970}); 5971exports.searchSubmitActionEvent = searchSubmitActionEvent; 5972var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 5973var _userData = _interopRequireDefault(require("../dataObject/userData")); 5974function searchSubmitActionEvent(linkData, searchData, domEventType) { 5975 var pageObj = (0, _pageObject.default)(); 5976 var userDataObj = (0, _userData.default)(); 5977 var link = linkData || null; 5978 var searchDetails = searchData || null; 5979 var domEvent = domEventType || ''; 5980 var dataLayerJson = { 5981 "event": "searchSubmitAction", 5982 "page": pageObj, 5983 "user": userDataObj, 5984 "link": link, 5985 "searchDetails": searchDetails, 5986 "domEvent": domEvent 5987 }; 5988 return dataLayerJson; 5989} 5990 5991},{"../dataObject/pageObject":96,"../dataObject/userData":100,"@babel/runtime/helpers/interopRequireDefault":6}],130:[function(require,module,exports){ 5992"use strict"; 5993 5994var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 5995Object.defineProperty(exports, "__esModule", { 5996 value: true 5997}); 5998exports.default = searchClickActionEvent; 5999var _pageObject = _interopRequireDefault(require("../dataObject/pageObject")); 6000var _userData = _interopRequireDefault(require("../dataObject/userData")); 6001var _linkData = require("../dataObject/linkData"); 6002var _facetSearchUtils = require("../handlers/facetSearchUtils"); 6003function searchClickActionEvent(cardTitle, cardHref, pageNo, filterObject, index) { 6004 var pageObj = (0, _pageObject.default)(); 6005 var userDataObj = (0, _userData.default)(); 6006 var searchDataObj = (0, _facetSearchUtils.getFacetSearchData)(cardTitle, pageNo, filterObject, index); 6007 var linkObj = (0, _linkData.setLinkData)(cardTitle, 'other', 'facet-search', cardHref); 6008 var dataLayerJson = { 6009 "event": 'searchResultLinkAction', 6010 "page": pageObj, 6011 "user": userDataObj, 6012 "link": linkObj, 6013 "searchDetails": searchDataObj, 6014 "domEvent": 'click' 6015 }; 6016 return dataLayerJson; 6017} 6018; 6019 6020},{"../dataObject/linkData":94,"../dataObject/pageObject":96,"../dataObject/userData":100,"../handlers/facetSearchUtils":104,"@babel/runtime/helpers/interopRequireDefault":6}]},{},[84]);
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.