{"version":3,"sources":["20240215Recco_functions.js"],"names":["global","factory","exports","_typeof","module","define","amd","Lengthy","this","els","$","map","el","i","length","getLength","classList","add","style","setProperty","getValue","a","baseVal","value","distance","x1","y1","x2","y2","dx","dy","Math","sqrt","getTotalLength","SVGUseElement","document","querySelector","href","width","height","r","PI","rx","ry","points","p","getAttribute","split","d","l","SVGPolygonElement","parent","Array","prototype","slice","call","nodeName","querySelectorAll","test","navigator","userAgent","body","scroll","window","requestAnimationFrame","showOnScroll","forEach","getBoundingClientRect","top","innerHeight","swiper","Swiper","slidesPerView","loop","spaceBetween","navigation","nextEl","prevEl","breakpoints","600","900"],"mappings":"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","file":"20240215Recco_functions.min.js","sourcesContent":["(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Lengthy = factory());\n}(this, (function () { 'use strict';\n\nfunction Lengthy(els) {\n return $(els).map(function(el, i) {\n var length = getLength(el);\n el.classList.add(\"lengthy\");\n el.style.setProperty(\"--path-length\", length);\n return {\n el: el,\n length: length\n };\n });\n}\n\nfunction getValue(a) {\n return a.baseVal ? a.baseVal.value || a.baseVal : a;\n}\n\nfunction distance(x1, y1, x2, y2) {\n var dx = x1 - x2;\n var dy = y1 - y2;\n return Math.sqrt(dx * dx + dy * dy);\n}\n\nfunction getLength(el) {\n if (!el) {\n return false;\n }\n // or any SVG element in SVG2 supporting browsers\n if (el.getTotalLength) {\n return el.getTotalLength();\n }\n // \n if (el instanceof SVGUseElement) {\n return getLength(document.querySelector(getValue(el.href)));\n }\n // \n if (el.width) {\n return getValue(el.width) * 2 + getValue(el.height) * 2;\n }\n // \n if (el.x1) {\n return distance(\n getValue(el.x1),\n getValue(el.y1),\n getValue(el.x2),\n getValue(el.y2)\n );\n }\n // \n if (el.r) {\n return 2 * Math.PI * getValue(el.r);\n }\n // \n if (el.rx && el.ry) {\n // Ramanujan ellipse circumference approximation\n // Thanks to https://twitter.com/jhnsnc\n var rx = getValue(el.rx);\n var ry = getValue(el.ry);\n return Math.PI * (3 * (rx + ry) - Math.sqrt((3 * rx + ry) * (rx + 3 * ry)));\n }\n // and \n if (el.points) {\n var p = el.getAttribute(\"points\").split(/[\\s,]+/);\n var d = 0,\n i = 0,\n l = p.length - 2;\n for (; i < l; i += 2) {\n d += distance(p[i], p[i + 1], p[i + 2], p[i + 3]);\n }\n if (el instanceof SVGPolygonElement) {\n d += distance(p[i], p[i + 1], p[0], p[1]);\n }\n return d;\n }\n return false;\n}\n\nLengthy.getLength = getLength;\n\nfunction $(els, parent) {\n return Array.prototype.slice.call(\n els.nodeName\n ? [els]\n : els[0].nodeName ? els : document.querySelectorAll(els),\n 0\n );\n}\nLengthy.$ = $;\n\nreturn Lengthy;\n\n})));\n\r\n\r\n\r\n// ANIMATED SVG CIRCLES\r\n// TOUCH OR NO-TOUCH, THAT IS THE QUESTION!\r\n// SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// FADE-IN-UP ELEMENTS ON SCROLL\r\n// SLIDER (SWIPER JS)\r\n// SLIDER (SLICK JS)\r\n// PRODUCT PICKER\r\n// NEWSLETTER PICKER\r\n\r\n\r\n//\r\n// =RESPONSIVE VIDEO!\r\n// --------------------------------------------------\r\n\r\n// $(document).ready(loadVideo);\r\n// $(window).on('resize',loadVideo);\r\n\r\n// function loadVideo() {\r\n// var sm = window.matchMedia( \"(min-width: 0px) and (max-width: 599px)\" ), // Standard def (mp4, 640x360)\r\n// md = window.matchMedia( \"(min-width: 600px) and (max-width: 899px)\" ), // Standard def (mp4, 960x540)\r\n// lg = window.matchMedia( \"(min-width: 900px) and (max-width: 1199px)\" ), // High def (mp4, 1280x720)\r\n// xl = window.matchMedia( \"(min-width: 1200px) and (max-width: 99999px)\" ); // High def 1080 (mp4, 1920x1080)\r\n\r\n// sm.addListener($.proxy(changeVideoSize, this, 'sm'));\r\n// md.addListener($.proxy(changeVideoSize, this, 'md'));\r\n// lg.addListener($.proxy(changeVideoSize, this, 'lg'));\r\n// xl.addListener($.proxy(changeVideoSize, this, 'xl'));\r\n\r\n// if (sm.matches) { changeVideoSize('sm') }\r\n// else if (md.matches) { changeVideoSize('md') }\r\n// else if (lg.matches) { changeVideoSize('lg') }\r\n// else if (xl.matches) { changeVideoSize('xl') }\r\n// }\r\n\r\n// function changeVideoSize(size){\r\n// var videoTag = $(\"#msdw-video-responsive\")[0];\r\n// var videoSource = $(\"#msdw-video-responsive source\");\r\n// videoSource.attr(\"src\", videoSource.attr(\"data-video-\"+size));\r\n// videoTag.autoplay = true;\r\n// videoTag.load();\r\n// console.log(videoSource.attr(\"src\"));\r\n// }\r\n\r\n// var vid = document.getElementById(\"msdw-video-responsive\");\r\n// vid.onloadeddata = function() {\r\n// this.classList.add('msdw-video-loaded');\r\n// };\r\n\r\n\r\n//\r\n// =ANIMATED SVG CIRCLES\r\n// --------------------------------------------------\r\n\r\nif (/Edge\\/\\d./i.test(navigator.userAgent)){\r\n document.body.classList.add('edge')\r\n}\r\n\r\nLengthy('.msdw-path');\r\n\r\n\r\n//\r\n// =TOUCH OR NO-TOUCH, THAT IS THE QUESTION!\r\n// --------------------------------------------------\r\n\r\n// function isTouchDevice() {\r\n// return true == (\"ontouchstart\" in window || window.DocumentTouch && document instanceof DocumentTouch);\r\n// }\r\n// if (isTouchDevice() === true) {\r\n// $(\"body\").toggleClass(\"touch\");\r\n// } else {\r\n// $(\"body\").toggleClass(\"no-touch\");\r\n// }\r\n\r\n\r\n//\r\n// =SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// --------------------------------------------------\r\n\r\n// $('.msdw-page-scroll').click(function() {\r\n// if (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') && location.hostname == this.hostname) {\r\n// var target = $(this.hash);\r\n// target = target.length ? target : $('[name=' + this.hash.slice(1) +']');\r\n// if (target.length) {\r\n// var offsetValue = 0;\r\n// if ( window.innerWidth <= 767 ) {\r\n// offsetValue;\r\n// // console.log(offsetValue);\r\n// } else {\r\n// offsetValue = 59;\r\n// // console.log(offsetValue);\r\n// }\r\n\r\n// $('html,body').animate({\r\n// scrollTop: target.offset().top - offsetValue\r\n// }, 900);\r\n// return false;\r\n// }\r\n// }\r\n// });\r\n\r\n\r\n//\r\n// =FADE-IN-UP ELEMENTS ON SCROLL\r\n// --------------------------------------------------\r\n\r\nconst scroll = window.requestAnimationFrame;\r\n\r\nfunction showOnScroll() {\r\n const elems = document.querySelectorAll('.msdw-animate');\r\n\r\n elems.forEach((el) => {\r\n const elPosition = el.getBoundingClientRect().top\r\n const elScreen = window.innerHeight / .9\r\n\r\n if (elPosition < elScreen) {\r\n el.classList.add('msdw-animated')\r\n }\r\n });\r\n\r\n scroll(showOnScroll);\r\n}\r\n\r\nshowOnScroll();\r\n\r\n\r\n//\r\n// =SLIDER (SWIPER JS)\r\n// --------------------------------------------------\r\n\r\nconst swiper = new Swiper('#sliderProducts', {\r\n slidesPerView: 1,\r\n loop: true,\r\n spaceBetween: 10,\r\n navigation: {\r\n nextEl: '.msdw-swiper-button-next',\r\n prevEl: '.msdw-swiper-button-prev',\r\n },\r\n breakpoints: {\r\n 600: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 900: {\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n },\r\n }\r\n});\r\n\r\n\r\n\r\n\r\n\r\n//\r\n// =PRODUCT PICKER\r\n// --------------------------------------------------\r\n\r\n// $(\".product-detail-picker\").click(function(e){\r\n// e.preventDefault();\r\n// var productIdNumber = $(this).attr('data-product-id');\r\n// window.jwsdwMediator.publish('openPicker', 'productDetailPicker', {'productId': productIdNumber});\r\n// });\r\n\r\n\r\n//\r\n// =NEWSLETTER PICKER\r\n// --------------------------------------------------\r\n\r\n// var campaignId = 'familyAndFriends',\r\n// pickerTag = document.getElementById(\"openPicker\"),\r\n// newsletterConfig = {},\r\n// baseUrl = jwsdwSettings.baseUrl;\r\n\r\n// $.ajax({\r\n// type: 'GET',\r\n// url: baseUrl + '/Newsletter-getNewsletterConfig',\r\n// data: {\r\n// campaignId: campaignId\r\n// },\r\n// success: function(response) {\r\n// newsletterConfig = response\r\n// },\r\n// error: function(response) {\r\n// jwsdwApi.popup.showHttpError(response.status)\r\n// }\r\n// });\r\n\r\n// pickerTag.addEventListener(\"click\", function(){\r\n// window.jwsdwMediator.publish('openPicker', 'newsletterSignupPicker', {\r\n// \"campaign\": newsletterConfig.id,\r\n// \"introduction\": newsletterConfig.introduction,\r\n// \"disclaimerOne\": newsletterConfig.disclaimerOne,\r\n// \"disclaimerTwo\": newsletterConfig.disclaimerTwo\r\n// });\r\n// });\r\n"]}