PageSourceSearch

https://www.jlr.com/themes/custom/jlr_corporate_2024/js/compiled/main.js?tlrhhq

js jlr.com collected 2026-09-25 04:05:20 UTC 20,043 bytes, 1 lines download raw bytes

1!function(){var e={93:function(){document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll('nav[role="navigation"]').forEach(function(e){e.closest("footer")&&e.removeAttribute("role")})})},278:function(){function e(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,i=Array(n);t<n;t++)i[t]=e[t];return i}var t;(t=jQuery).fn.animateInitialActiveTabs=function(){gsap.utils.toArray(".tab-animate.active").forEach(function(e){var n=t(e).find(".tab-item-animate"),i=gsap.timeline({scrollTrigger:{trigger:e,start:"top center",end:"bottom top",invalidateOnRefresh:!0}});n.each(function(e,n){i.fromTo(n,{opacity:0,y:-10},{opacity:1,y:0,duration:.5,delay:.2},"<")})})},t.fn.animateActiveTabs=function(n){e(gsap.utils.toArray('.tab-animate[data-tab-label="'.concat(n,'"].active'))).forEach(function(e){var n=t(e).find(".tab-item-animate");t(n).each(function(e){gsap.fromTo(t(this),{opacity:0,y:-10},{opacity:1,y:0,duration:.5,delay:.2*e})})})}},3172:function(){!function(e){function n(){var n=e(this).find(".nav-2024__dropdown"),t=gsap.timeline();e(this).find(".nav-2024__item").addClass("active"),t.set(n,{display:"block",opacity:1,bottom:-20}),t.to(n,{opacity:1,bottom:0,duration:.5})}function t(){e(this).find(".nav-2024__item").removeClass("active"),gsap.set(e(this).find(".nav-2024__dropdown"),{display:"none"})}e(".js-nav-item").on("mouseenter",n),e(".js-nav-item").on("mouseleave",t),e(".js-nav-item").on("keydown",function(i){var a=e(this).find(".nav-2024__dropdown"),o=a.find("a");if("Enter"===i.key&&(i.preventDefault(),a.is(":visible")?t.call(this):n.call(this)),"Escape"===i.key&&(i.preventDefault(),t.call(this)),"Tab"===i.key){if(!a.is(":visible"))return;i.preventDefault();var r=(o.index(document.activeElement)+1)%o.length;o.eq(r).focus()}if("ArrowDown"===i.key)if(i.preventDefault(),a.is(":visible")){var s=(o.index(document.activeElement)+1)%o.length;o.eq(s).focus()}else n.call(this),a.find("a").first().focus();if("ArrowUp"===i.key&&a.is(":visible")){i.preventDefault();var l=(o.index(document.activeElement)-1+o.length)%o.length;o.eq(l).focus()}}),e(".js-nav-item").on("click",function(n){e(this).trigger(e.Event("keydown",{key:"Enter"}))}),e(".nav-2024__dropdown a").on("keydown",function(n){var t=e(this),i=t.closest(".
1nav-2024__dropdown"),a=i.find("a"),o=a.index(t);if("Enter"===n.key&&(n.preventDefault(),t[0].click()),"Escape"===n.key&&(n.preventDefault(),i.closest(".js-nav-item").trigger("mouseleave")),"Tab"===n.key&&n.shiftKey){n.preventDefault();var r=(o-1+a.length)%a.length;a.eq(r).focus()}})}(jQuery),document.addEventListener("DOMContentLoaded",function(){var e=document.querySelectorAll(".nav-2024__dropdown-wrap"),n=document.querySelectorAll(".nav-2024__dropdown-background"),t=0;e.forEach(function(e){var n=e.querySelectorAll(".nav-2024__dropdown-item").length;n>t&&(t=n)});var i=39*t+20+"px";n.forEach(function(e){e.style.height=i})})},3258:function(){var e,n;(n=(e=jQuery)(".js-copy-to-clipboard")).length&&n.on("click keydown",function(n){if("keydown"!==n.type||"Enter"===n.key){var t=window.location.href;navigator.clipboard.writeText(t).then(function(){e.fn.showToast("The link has been copied to your clipboard")}).catch(function(e){console.error("Unable to copy to clipboard: ",e)})}})},4314:function(){!function(e){function n(e){var n=e.closest(".js-accordion"),t=e.hasClass("active"),i=e.next(".js-accordion-body");n.find(".js-accordion-title").removeClass("active"),n.find(".js-accordion-body").animate({opacity:0}
1,200),n.find(".js-accordion-body").slideUp(),t?(i.animate({opacity:0},200),i.slideUp(200)):(e.addClass("active"),i.slideDown(200),i.animate({opacity:1},200))}e(".js-accordion-body").hide(),e(".js-accordion-title").on("click",function(){n(e(this))}),e(".js-accordion").on("keydown",".js-accordion-title",function(t){switch(t.which){case 13:case 32:t.preventDefault(),n(e(this))}})}(jQuery)},4620:function(){var e;(e=jQuery)("input, textarea").on("input",function(){e(this).removeClass("form__input--error"),e(this).closest(".form__group").find(".form__error").remove()})},5312:function(){!function(){var e=document.querySelector(".hero__video");if(e){var n=e.querySelector("iframe"),t=new Vimeo.Player(n);t.ready().then(function(){t.setVolume(0),t.setLoop(!0),t.play()})}}(jQuery)},5744:function(){var e;(e=jQuery)("#terms").on("change",function(){e(this).is(":checked")?e("#submit").prop("disabled",!1):e("#submit").prop("disabled",!0)})},5982:function(){var e,n;e=jQuery,(n=gsap.utils.toArray(".stagger-in"))&&n.forEach(function(n){var t=e(n).find(".stagger-in-child"),i=gsap.timeline({scrollTrigger:{trigger:n,start:"top center",end:"bottom top",invalidateOnRefresh:!0,markers:!1}});t.each(function(e,n){i.fromTo(n,{opacity:0,y:-10},{opacity:1,y:0,duration:.5,delay:.2},"<")})})},7348:function(){var e,n=0,t=document.querySelector(".nav-2024");window.addEventListener("scroll",function(){clearTimeout(e);var i=window.scrollY||document.documentElement.scrollTop;i>
1n?t.classList.add("nav-2024--hidden"):t.classList.remove("nav-2024--hidden"),e=setTimeout(function(){t.classList.remove("nav-2024--hidden")},200),n=i<=0?0:i})},8826:function(){var e,n,t;n=(e=jQuery)(".news-hover-js"),t=e(".featured-image-js"),n.length&&t.length&&n.on("mouseenter mouseleave",function(){var n=e(this).find(".news-image-js").attr("src");n&&t.css("background-image","url("+n+")")})},8832:function(){var e,n,t,i,a;i=(t=(n=(e=jQuery)(".tabs__main-item")).map(function(){return Number(e(this).data("tab-label"))}).get()).indexOf(Math.max.apply(null,t)),a=n.eq(i>-1?i:0).data("tab-label"),e('[data-tab-label="'.concat(a,'"]')).addClass("active"),e.fn.animateInitialActiveTabs(),n.on("click",function(){var n=e(this).closest(".tabs-context"),t=e(this).data("tab-label");n.find("[data-tab-label]").removeClass("active"),n.find('[data-tab-label="'.concat(t,'"]')).addClass("active"),e.fn.animateActiveTabs(t)})},9279:function(){!function(e){function n(n){var t=e("#toast"),i=e("#toast-content");0===t.length&&(t=e('<div id="toast" class="toast"></div>'),i=e('<div id="toast-content" class="toast__content"></div>'),t.append(i),e("body").append(t)),i.text(n),t.addClass("toast--show"),setTimeout(function(){i.addClass("toast__content--fadeIn")},1e3),setTimeout(function(){i.addClass("toast__content--fadeOut")},5e3),setTimeout(function(){i.removeClass("toast__content--fadeIn"),i.removeClass("toast__content--fadeOut"),t.removeClass("toast--show")},6e3)}var t=e("#toast").data("message");t&&n(t),e.fn.showToast=n}(jQuery)}},n={};function t(i){var a=n[i];if(void 0!==a)return a.exports;var o=n[i]={exports:{}};return e[i](o,o.exports,t),o.exports}!function(){"use strict";var e,n="between";function i(){var e,n;e=jQuery,n=e("#modal"),gsap.fromTo(n,{opacity:1},{duration:.5,opacity:0,display:"none",onComplete:function(){n.removeClass("modal--show")}}),e(".modal__wrapper").html(""),e("body").css("overflow","auto")}jQuery.fn.handleResize=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=window.innerWidth>0?window.innerWidth:screen.width;switch(e){case"above":return a>t;case"below":return a<t;case n:return a>=t&&a<i;default:return!1}},t(4314),function(e){var t=window.gsap;function i(){var t=e.fn.handleResize(n,480,768);ScrollTrigger.getAll().forEach(function(e){return e.kill()}),function(e){var n="top 50%",t=e?"top 50%":"top 35%",i=".timeline-trigger";a(".fade-in",n,{opacity:0}),a(".fade-in-up",n,{opacity:0,y:40}),a(".fade-in-up-timeline",t,{opacity:0,y:40},i),a(".fade-in-timeline",t,{opacity:0},i)}(t)}function a(n,i,a){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";
1t.utils.toArray(n).forEach(function(n){var r=n.getBoundingClientRect();r.top<window.innerHeight&&r.bottom>0&&window.innerWidth>768?t.set(n,{opacity:1,y:0}):t.fromTo(n,a,{scrollTrigger:{trigger:o?e(n).closest(o):n,start:i,end:"bottom",invalidateOnRefresh:!0,onRefresh:function(){n.getBoundingClientRect().top<window.innerHeight&&t.set(n,{opacity:1,y:0})}},opacity:1,y:0,duration:1,ease:Power4.easeOut})})}t.registerPlugin(ScrollTrigger),i(),window.addEventListener("resize",i)}(jQuery),t(5982),t(3258),t(5744),t(4620),function(e){function n(){var n=e(".modal__video-content").find("iframe"),t=new Vimeo.Player(n);t.ready().then(function(){t.play()})}e(".openModal").each(function(){e(this).on("click",function(){var t,a=e(this).data("video");a&&(e(".modal__wrapper").append("\n    <div class='modal__video'>\n      <button id='modal-close' class='modal__video-close'>\n        <i class='btn__icon btn__icon--close' alt='Close modal'></i>\n      </button>\n      <div class='modal__video-content'></div>\n    </div>"),e("#modal-close").on("click",function(){i()}),(t=a,new Promise(function(n){e(".modal__video-content").html(t),n()})).then(n))})})}(jQuery),(e=jQuery)(".openModal").each(function(){e(this).on("click",function(){var n=document.activeElement,t=e(this).data("profile");if(t){var a=e(".modal__wrapper");a.append("\n    <div class='modal__profile' role='dialog' aria-modal='true' aria-labelledby='modal-title' tabindex=\"-1\">\n      <div class='modal__profile-wrapper' style='max-width: 100vw; max-height: 100vh; overflow: auto;'>\n        <button class='modal__profile-close' aria-label='Close modal' tabindex=\"0\">\n          <i class='btn__icon btn__icon--close-black' alt='Close modal'></i>\n          <span class='visually-hidden'>Close modal</span>\n        </button>\n        <div class='modal__profile-content'>\n          <div class='modal__profile-image'>\n            <img alt='Profile image' style='max-width: 100%; height: auto; transform: scale(1);'>\n          </div>\n          <div>\n            <div class='modal__profile-title' id='modal-title'></div>\n            <div class='modal__profile-description' tabindex=\"0\" role=\"region\" aria-label=\"Profile description\">\n              <div></div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>"),a.promise().done(function(){var a=e(".modal__profile");function o(){window.devicePixelRatio>=2?a.css({width:"100%","max-width":"100%"}):a.css({width:"50%","max-width":"none"})}window.addEventListener("resize",o),o(),e(".modal__profile-image").find("img").attr("src",t.image.url),e(".modal__profile-title").text(t.name+" - "+t.job),e(".modal__profile-description").find("div").append(t.description),e(document).on("keydown.modal",function(e){if("Tab"===e.key&&a.is(":visible")){e.preventDefault();var n=a.find('[tabindex="0"]'),t=document.activeElement,i=(n.index(t)+1)%n.length;n.eq(i)[0].focus()}}),e(".modal__profile-close").on("click",function(){i(),window.removeEventListener("resize",o),e(document).off("keydown.modal"),n&&"function"==typeof n.focus&&n.focus()})})}})}),jQuery(document).ready(function(e){e(".openModal").each(function(){e(this).on("click",function(){if(e(this).data("subscribe")){var n=e(".modal__wrapper");n.append('\n  <div class="subscribe form" id="footer_subscribe" role="document" tabindex="-1">\n    <button id="modal-close" class=\'modal__close modal__subscribe-close\'>\n      <i class=\'btn__icon btn__icon--close-black\' alt=\'Close modal\'></i>\n    </button>\n    <div class="subscribe__col">\n      <div class="subscribe__col">\n        <h1 class="tw-text-xl tw-pb-3">SUBSCRIBE</h1>\n      </div>\n      <div>\n        <form class="js-cm-form" id="subForm" action="https://www.createsend.com/t/subscribeerror?description=" method="post" data-id="30FEA77E7D0A9B8D7616376B9006323167F9CBF998580DB5AB9861B4237BA944A4BF45D69CFFF430149A6488DAA1B3C4A53AF7EF7934DB3A88901F4BB65DE0C6">\n          <div size="base">\n            <div>\n              <div class="subscribe__row">\n                <div class="subscribe__col">\n                    <label size="0.875rem" color="#5d5d65" >
1First Name\n                    <span >*</span>\n                    </label>\n                    <input aria-label="First Name" id="fieldirsitl" maxLength="200" name="cm-f-irsitl" required class="sc-iwsKbI iMsgpL" data-error="Please enter your first name">\n                </div>\n                <div class="subscribe__col">\n                    <label size="0.875rem" color="#5d5d65" >Surname\n                      <span >*</span>\n                    </label>\n                    <input aria-label="Surname" id="fieldirsitr" maxLength="200" name="cm-f-irsitr" required class="sc-iwsKbI iMsgpL" data-error="Please enter your surname">\n                </div>\n              </div>\n              <div class="subscribe__row">\n                <div class="subscribe__col">\n                    <label size="0.875rem" color="#5d5d65" >Email\n                    <span >*</span>\n                    </label>\n                    <input autoComplete="Email" aria-label="Email" id="fieldEmail" maxLength="200" name="cm-yhthldt-yhthldt" required type="email" class="js-cm-email-input qa-input-email sc-iwsKbI iMsgpL" data-error="Please enter a valid email address">\n                </div>\n                <div class="subscribe__col">\n                  <label size="0.875rem" color="#5d5d65" >Company </label><input aria-label="Company" id="fieldirsity" maxLength="200" name="cm-f-irsity" class="sc-iwsKbI iMsgpL"/>\n                </div>\n              </div>\n              <div class="subscribe__col">\n                <label size="0.875rem" color="#5d5d65" >Job Title </label><input aria-label="Job Title" id="fieldirsitj" maxLength="200" name="cm-f-irsitj" class="sc-iwsKbI iMsgpL"/>\n              </div>\n            </div>\n            <div>\n              <input type="text" name="contact_me_by_fax_only" id=\'honeypot\' style="display:none !important" tabindex="-1" autocomplete="off">\n              <h4 size="0.875rem" color="#5d5d65" >Opt in to another list</h4>\n              <div>\n                <div >\n                  <input id="puldty" name="cm-ol-puldty" type="checkbox" value="puldty" class="qa-checkbox-cm-ol-puldty sc-bZQynM eKOoKL"/><label size="0.875rem" color="#434d5d" for="puldty" class="sc-bxivhb iHsWXX">Corporate Website News</label>\n                </div>\n              </div>\n              <div>\n                <div >\n                  <input id="qlyulu" name="cm-ol-qlyulu" type="checkbox" value="qlyulu" class="qa-checkbox-cm-ol-qlyulu sc-bZQynM eKOoKL"/><label size="0.875rem" color="#434d5d" for="qlyulu" class="sc-bxivhb iHsWXX">Investor Relations News</label>\n                </div>\n              </div>\n              <div>\n                <div >\n                  <input id="yhthldd" name="cm-ol-yhthldd" type="checkbox" value="yhthldd" class="qa-checkbox-cm-ol-yhthldd sc-bZQynM eKOoKL"/><label size="0.875rem" color="#434d5d" for="yhthldd" class="sc-bxivhb iHsWXX">Corporate Responsibility News</label>\n                </div>\n              </div>\n            </div>\n            <div size="base" >\n              <div>\n                <div spacing="x-small" class="sc-dxgOiQ urQia"></div>\n                <div size="base" >\n                  <div>\n                    <div class="tw-flex tw-items-center" id="consent">\n                      <input aria-required id="cm-privacy-consent" name="cm-privacy-consent" required type="checkbox" class="qa-checkbox-cm-privacy-consent sc-bZQynM eKOoKL" data-error="Please agree to be emailed">\n                      <label size="0.875rem" color="#434d5d" for="cm-privacy-consent" class="sc-bxivhb iHsWXX">I agree to be emailed</label>\n                      <div >*</div>\n                    </div>\n                  </div>\n                  <input id="cm-privacy-consent-hidden" name="cm-privacy-consent-hidden" type="hidden" value="true"/>\n                </div>\n              </div>\n            </div>\n            <div class="tw-pb-3">\n              <p>\n                <a size="16px" color="#19a9e5" href="https://www.jlr.com/privacy" rel="noopener" target="_blank" class="sc-kpOJdX gHlLJa">Privacy policy</a>\n              </p>\n              <p>\n                <a size="16px" color="#19a9e5" href="https://www.jlr.com/cookie-policy" rel="noopener" target="_blank" class="sc-kpOJdX gHlLJa">Cookie policy</a>\n              </p></div>\n          </div>\n          <button size="1rem" color="#fff" type="submit" class="js-cm-submit-button btn btn--primary">Subscribe</button>\n        </form>\n      </div>\n    <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"><\/script>\n    <script>WebFont.load({google: {families: [\'Lato:900:latin\', \'Lato:300:latin\', \'Playfair+Display:700italic:latin\', \'Merriweather:700:latin\', \'Crete+Round::latin\', \'PT+Sans+Narrow:700:latin\']}});<\/script>\n    <script type="text/javascript" src="https://js.createsend1.com/javascript/copypastesubscribeformlogic.js"><\/script>\n    </div>\n  </div>\n'),n.promise().done(function(){var n;e(".modal__close").on("click",function(){i()}),(n=document.getElementById("subForm"))&&(n.querySelectorAll("[required]").forEach(function(e){var n=e.getAttribute("data-error");
1if(n){var t=document.createElement("div");t.className="error-message",t.style.cssText="\n          display: none;\n          color: #ff0000;\n          margin-top: 5px;\n          padding: 5px;\n        ",t.textContent=n,e.parentNode.appendChild(t),e.setAttribute("novalidate","true"),e.addEventListener("invalid",function(e){e.preventDefault()}),e.addEventListener("invalid",function(){t.style.display="block"}),e.addEventListener("input",function(){e.validity.valid&&(t.style.display="none")})}}),n.addEventListener("submit",function(e){var t=n.querySelectorAll("[required]"),i=!0;if(t.forEach(function(e){if(!e.value){var n=e.parentNode.querySelector(".error-message");n&&(n.style.display="block"),i=!1}}),!i)return e.preventDefault(),e.stopPropagation(),!1}))})}})})}),jQuery(document).ready(function(e){var n=e(".openModal"),t=e("#modal-close"),a=e("#modal");n.on("click",function(){!function(){var e,n,t;e=jQuery,n=e("#modal"),t=e(".modal__wrapper"),gsap.fromTo(n,{opacity:0},{duration:.5,opacity:1,display:"flex",onComplete:function(){n.addClass("modal--show")}}),gsap.fromTo(t,{scale:.5},{duration:.5,scale:1}),e("body").css("overflow","hidden")}()}),t.on("click",function(){i()}),a.on("click",function(n){e(n.target).is(a)&&i()})}),t(7348),function(e){function n(){e(".nav-2024__mobile-item").each(function(n){gsap.fromTo(e(this),{opacity:0,y:-20},{opacity:1,y:0,duration:.3,delay:.05*n})})}function t(){var n,t;e(".nav-2024").removeClass("nav-2024--mobile-open"),e("body").removeClass("fixed-position"),e("body").removeClass("full-width"),n=e(".nav-2024").find(".js-accordion-title"),t=e(".nav-2024").find(".js-accordion-body"),n.removeClass("active"),t.animate({opacity:0}
1,200),t.slideUp(200),gsap.to(".nav-2024__mobile-wrap",{opacity:0,display:"none"}),gsap.set(".nav-2024__mobile-item",{opacity:0,y:-20})}e(".nav-2024__toggle").on("click",function(){var i,a;e(".nav-2024").toggleClass("nav-2024--mobile-open"),e("body").toggleClass("fixed-position"),e("body").toggleClass("full-width"),i=e(".nav-2024").find(".js-accordion-title").first(),a=e(".nav-2024").find(".js-accordion-body").first(),i.addClass("active"),a.slideDown(200),a.animate({opacity:1},200),e(".nav-2024").hasClass("nav-2024--mobile-open")?gsap.to(".nav-2024__mobile-wrap",{delay:.05,duration:.1,opacity:1,display:"flex",onComplete:n}):gsap.to(".nav-2024__mobile-wrap",{duration:.1,opacity:0,display:"none",onComplete:t})}),e(window).on("resize",function(){t()})}(jQuery),t(3172),t(93),t(8826),t(5312),t(278),t(8832),t(9279)}()}();

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.