{"version":3,"file":"base-b2376ce1.min.js","sources":["../scripts/base/tiny-slider.js","../scripts/base/header-usp-carousel.js","../scripts/base/global-error-handler.ts","../scripts/base/utilities.ts","../scripts/base/analytics.ts","../scripts/polyfill/closest.js","../scripts/modal.js","../scripts/marketing/opt-in-source.ts","../scripts/helpers/ajax.js","../scripts/base/mega-menu.ts","../scripts/base/chat-widget.js","../scripts/marketing/marketing-signup.ts","../scripts/marketing/marketing-signup-all.ts","../scripts/base/exit-popup-cookie.js","../scripts/helpers/events/on.js","../scripts/basic-search-header.js","../scripts/deals-carousel.js","../scripts/general-slider.js","../scripts/html-carousel.js","../scripts/testimonials-carousel.js","../scripts/base/utms.ts"],"sourcesContent":["window.tns = (function () {\n // keys\n if (!Object.keys) {\n Object.keys = function (object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n }\n\n // ChildNode.remove\n (function () {\n \"use strict\";\n\n if (!(\"remove\" in Element.prototype)) {\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n }\n })();\n\n var win = window;\n\n var raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function (cb) { return setTimeout(cb, 16); };\n\n var win$1 = window;\n\n var caf = win$1.cancelAnimationFrame\n || win$1.mozCancelAnimationFrame\n || function (id) { clearTimeout(id); };\n\n function extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n }\n\n function checkStorageValue(value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n }\n\n function setLocalStorage(storage, key, value, access) {\n if (access) { storage.setItem(key, value); }\n return value;\n }\n\n function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n\n return 'tns' + window.tnsId;\n }\n\n function getBody() {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n }\n\n var docElement = document.documentElement;\n\n function setFakeBody(body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n }\n\n function resetFakeBody(body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n }\n\n // get css-calc \n\n function calc() {\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) {\n result = val.replace(str, '');\n break;\n }\n }\n } catch (e) { }\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n }\n\n // get subpixel support value\n\n function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '
';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n }\n\n function mediaquerySupport() {\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n }\n\n // create and append style sheet\n function createStyleSheet(media) {\n // Create the