PageSourceSearch

https://www.rangerover.com/etc.clientlibs/jlr/clientlibs/clientlib…r360-exterior360-js.53df9ae2200e79aa46f3.js

js rangerover.com collected 2026-10-01 11:27:22 UTC 19,651 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkaem_maven_archetype=self.webpackChunkaem_maven_archetype||[]).push([["components-dx-range-slider-dx-range-slider-js","components-exterior360-exterior360-js"],{85570:function(t,e,i){i.r(e),i.d(e,{default:function(){return d}});var n=i(74692),a=i.n(n),s=i(54119);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t){return function(t){if(Array.isArray(t))return l(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return l(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?l(t,e):void 0}}(t)||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 l(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);i<e;i++)n[i]=t[i];return n}function c(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,h(n.key),n)}}function h(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||"default");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}var d=function(){function t(e,i){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.element=e,this.slider=null,this.customConnectNamespace="DxRangeSlider-custom-connects",this.dataNameSpace="data-dxrangeslider-",this.dataConnectIndex="".concat(this.dataNameSpace,"index"),this.dataIsInitialised="".concat(this.dataNameSpace,"init");var n=i.start.length>1,a=n?14:25;this.options=Object.assign({},t.defaults,{customConnectSpacing:a,smallHandles:n},i),this.createSlider()}return e=t,i=[{key:"updateOptions",value:function(t){this.options=Object.assign(this.options,t)}},{key:"createStartArray",value:function(){var t=this.options.start;return Array.isArray(t)?t:[t]}},{key:"createSlider",value:function(){this.isInitialised()||(this.options.start=this.createStartArray(),this.createCustomConnects(),this.addCustomClasses(),this.initSlider(),this.createCustomControls(),this.addCustomConnectEvents())}},{key:"addCustomClasses",value:function(){var e=t.classes,i=e.modifierClass,n=e.smallHandleClass;this.element.classList.add("".concat(i).concat(this.options.direction)),this.element.classList.add("".concat(i).concat(this.options.theme)),this.element.classList.add("".concat(i).concat(this.options.sliderType)),this.options.smallHandles&&this.element.classList.add("".concat(i).concat(n))}},{key:"initSlider",value:function(){this.slider=noUiSlider.create(this.element,this.options),r(this.element.querySelectorAll(".noUi-touch-area")).forEach(function(t){t.addEventListener("mousedown",function(){a()&&a().fn.FocusSwitcher&&a()("body").FocusSwitcher("removeFocusClass")})}),this.setInitStatus("true")}},{key:"destroySlider",value:function(){var e=t.classes,i=e.modifierClass,n=e.smallHandleClass,a=e.customConnectClass,s=e.handleControlClass;this.element.classList.remove(n),this.element.classList.remove("".concat(i).concat(this.options.direction)),this.element.classList.remove("".concat(i).concat(this.options.theme)),this.element.classList.remove("".concat(i).concat(this.options.sliderType)),this.slider.off(".".concat(this.customConnectNamespace)),this.element.querySelectorAll(".".concat(a)).forEach(function(t){return t.parentNode.removeChild(t)}),this.element.querySelectorAll(".".concat(s)).forEach(function(t){return t.parentNode.removeChild(t)}),this.slider.destroy(),this.setInitStatus(null)}},{key:"isInitialised",value:function(){return this.element.getAttribute(this.dataIsInitialised)}},{key:"setInitStatus",value:function(t){this.element.setAttribute(this.dataIsInitialised,!!t||"")}},{key:"createCustomConnects",value:function(){var e=this,i=t.classes.customConnectClass,n=function(t){var n=document.createElement("div");return n.classList.add(i),0===t&&n.classList.add("".concat(i,"--first")),t===e.options.start.length&&n.classList.add("".concat(i,"--last")),n.setAttribute(e.dataConnectIndex,t),n};this.element.appendChild(n(0)),this.options.start.forEach(function(t,i){return e.element.appendChild(n(i+1))})}},{key:"addCustomConnectEvents",value:function(){var t=this,e="ltr"===this.options.direction?"left":"right",i=r(this.element.querySelectorAll("[".concat(this.dataConnectIndex,"]")));this.slider.on("update.".concat(this.customConnectNamespace),function(){var n=arguments.length<=4?void 0:arguments[4];
1i.forEach(function(a,s){var o=a,r=0===s,l=!i[s+1];if(r)return o.style.width="calc(".concat(n[0],"% - ").concat(t.options.customConnectSpacing,"px)"),void(o.style[e]="0px");if(l)return o.style.width="calc(100% - ".concat(n[s-1],"% - ").concat(t.options.customConnectSpacing,"px)"),void(o.style[e]="calc(".concat(n[s-1],"% + ").concat(t.options.customConnectSpacing,"px)"));var c=2*t.options.customConnectSpacing;o.style.width="calc(".concat(n[s],"% - ").concat(n[s-1],"% - ").concat(c,"px)"),o.style[e]="calc(".concat(n[s-1],"% + ").concat(t.options.customConnectSpacing,"px)")})})}},{key:"createCustomControls",value:function(){var e=this,i=function(e,i){var n=t.classes.handleControlClass,a=document.createElement("button");return a.classList.add(n),a.classList.add("".concat(n).concat(i)),a.innerHTML=e,a},n=this.getHandlesWrapper(),a=document.createElement("div");a.setAttribute("aria-live","polite"),a.classList.add("visuallyHidden"),(0,s.WH)(n,a),this.getHandles().forEach(function(t,o){var r=e.options.labels,l=i(r.decrement[o],"--decrement".concat(o)),c=i(r.increment[o],"--increment".concat(o)),h={decrementElement:l,incrementElement:c};(0,s.nc)(n,l),(0,s.WH)(n,c),e.setInitialButtonStateA11Y(h),l.addEventListener("click",function(i){i.preventDefault(),e.handleDecrement(o,h),a.innerHTML=t.getAttribute("aria-valuetext")}),c.addEventListener("click",function(i){i.preventDefault(),e.handleIncrement(o,h),a.innerHTML=t.getAttribute("aria-valuetext")})})}},{key:"setInitialButtonStateA11Y",value:function(t){(this.options.start[0]===this.options.range.min||this.options.start[0]===this.options.range.max)&&this.constructor.toggleDisabledStateA11y(t.decrementElement)}},{key:"handleIncrement",value:function(t,e){var i=this.slider.steps(),n=i&&i[t][1];if(n){var a=this.getHandleValue(t);this.slider.setHandle(t,a+n),this.constructor.toggleDisabledStateA11y(e.decrementElement,!0)}else this.constructor.toggleDisabledStateA11y(e.incrementElement)}},{key:"handleDecrement",value:function(t,e){var i=this.slider.steps(),n=i&&i[t][0];if(n){var a=this.getHandleValue(t);this.slider.setHandle(t,a-n),this.constructor.toggleDisabledStateA11y(e.incrementElement,!0)}else this.constructor.toggleDisabledStateA11y(e.decrementElement)}},{key:"getHandleValue",value:function(t){var e=this.slider.get();return Array.isArray(e)?Number(e[t]):Number(e)}},{key:"getHandlesWrapper",value:function(){return this.element.querySelector(".noUi-base")}},{key:"getHandles",value:function(){return r(this.element.querySelectorAll(".noUi-handle"))}},{key:"getSlider",value:function(){return this.slider}},{key:"connectHorizontalDragDealer",value:function(t){var e=this;["update","start","end"].forEach(function(i){return function(i){return e.slider.on(i,function(e){return t.setValue(e[0]/100,0,!1)})}(i)})}}],n=[{key:"toggleDisabledStateA11y",value:function(t){!0===(arguments.length>1&&void 0!==arguments[1]&&arguments[1])?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled")}}],i&&c(e.prototype,i),n&&c(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,i,n}();d.defaults={theme:"light",direction:"ltr",sliderType:"range",labels:{decrement:["Decrease slider 1","Decrease slider 2"],increment:["Increase slider 1","Increase slider 2"]}},d.classes={modifierClass:"DxRangeSlider--",customConnectClass:"DxRangeSlider__custom-connect",handleControlClass:"DxRangeSlider__handle-control",smallHandleClass:"small-handles"}},61758:function(t,e,i){i.r(e),i.d(e,{default:function(){return c}});var n=i(85570),a=i(71202),s=i(31695);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,l(n.key),n)}}function l(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||"default");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}
1(t,"string");return"symbol"==o(e)?e:e+""}var c=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.el=e,this.init()},e=[{key:"init",value:function(){this.authorMode="";var t={width:null,height:null,data:null,images:null,currentImage:null,_isInsideTabbedContainer:!1,headerBoxHidden:!1,_dxRangeSlider:null,imageSize:(0,s.do)()?"mobile":"desktop",breakpointSmall:null,breakpointMedium:null,breakpointLarge:null,sliderUpdateLimiter:!0,loaded:!1,rect:null,changeTotal:0,imageIndex:1,loadedImagesCount:0,loadedImages:[],headerBox:null,a11yLabels:{},mouse:{x:0,down:!1,lastMove:{x:0}},imageOffset:{x:0,y:0},_events:{start:null,stop:null,move:null,touch:!0},uiSelectors:{headerBox:".headerBox",rangeSliderWrapper:".Exterior360__slider",canvasContainer:".Exterior360__canvas-container",loadButtonContainer:".Exterior360__init-container",interactToggle:".Exterior360__load-button"},init:function(){this.data=this.$element.data("frames"),this.images=this.data[this.imageSize],this.a11yLabels={sliderDecrease:this.$element.attr("data-label-decrease-slider"),sliderIncrease:this.$element.attr("data-label-increase-slider")},this.authorMode=$("#authorM").val(),this._setupGoAnimation(),this._createCanvas(),this._handleEventBinding(),this._tabbedContainerBehaviour(),this._preloadFirst()},_setupGoAnimation:function(){var t=this,e=["left","right"],i=0,n=null,a=function(){t.ui("interactToggle").removeClass(n),t.ui("interactToggle").addClass(e[i]),n=e[i],(i+=1)>=e.length?(i=0,t._animationTimeout=setTimeout(a.bind(t),2e3)):t._animationTimeout=setTimeout(a.bind(t),800)};this._animationTimeout=setTimeout(a.bind(this),800)},_createCanvas:function(){this.$element.find("canvas")&&this.$element.find("canvas").remove(),this.canvas=document.createElement("canvas"),this.canvas.classList.add("Exterior360__canvas"),this.ctx=this.canvas.getContext("2d"),this.ctx.mozImageSmoothingEnabled="false",this.ctx.webkitImageSmoothingEnabled="false",this.ctx.msImageSmoothingEnabled="false",this.ctx.imageSmoothingEnabled="false",this.ui("canvasContainer").prepend(this.canvas),this._setSize(),this.$element.addClass("Exterior360--canvas-loaded")},_handleEventBinding:function(){this.$element.on("first-image-loaded",this._draw.bind(this)),this.ui("interactToggle").on("tap click",this._startLoading.bind(this)),window.addEventListener("resize",this._setSize.bind(this)),this.data.showSlider||this._bindMouseEvents()},_bindMouseEvents:function(){var t=this;this._getEvents(),this.canvas.addEventListener(this._events.start,function(e){t.mouse.x=t._getCoordinate(e,"x"),t.mouse.lastMove.x=t._getCoordinate(e,"x"),t.mouse.down=!0}),this.canvas.addEventListener(this._events.move,function(e){t.mouse.down&&(t.sliderUpdateLimiter=!0,t.mouse.x=t._getCoordinate(e,"x"),t._calculateMouseMovement(),t.loaded&&t._updateImage(),t._draw())}),this.canvas.addEventListener(this._events.stop,function(){t.changeTotal=0,t.mouse.down=!1})},_tabbedContainerBehaviour:function(){var t=this,e=this.$element.parents(".TabbedContainer");this._isInsideTabbedContainer=!!e.length,e.on("tabChanged",function(){t.ui("interactToggle").show()})},_preloadFirst:function(t){var e=this,i=t||1,n=new Image;n.src=this.images[i],n.onload=function(){e.currentImage=n,e.loadedImages[i]=n,(0,a.le)(e.element,"first-image-loaded")}},_startLoading:function(t){var e=this;(0,a.hQ)(this.ui("loadButtonContainer").get(0)),setTimeout(function(){e._loadImage(),e._initialiseDxRangeSlider()},1e3),this.$element.off(t)},_initialiseDxRangeSlider:function(){var t=this;if(this.data.showSlider){this.ui("rangeSliderWrapper").addClass("Exterior360__slider--visible").html('<div class="DxRangeSlider"></div>');var e=this.$element.find(".DxRangeSlider").get(0),i={start:0,step:1,theme:"exterior360",range:{min:0,max:this.images.length},direction:site.rtl?"rtl":"ltr",labels:{decrement:[this.a11yLabels.sliderDecrease],increment:[this.a11yLabels.sliderIncrease]}},a=new n.default(e,i);this._dxRangeSlider=a.getSlider(),this._dxRangeSlider.on("update",function(e){if(!t.sliderUpdateLimiter){t.changeTotal=1;var i=Math.ceil(e[0]);t.currentImage=t.loadedImages[i],t._draw()}
1t.sliderUpdateLimiter=!1}),this._dxRangeSlider.on("end",function(){t.changeTotal=0,t._updateHeaderBox()})}},_getCoordinate:function(t,e){return this._events.touch&&"x"===e?t.touches[0].clientX:this._events.touch||"x"!==e?0:t.clientX},_imageHasLoaded:function(){this.loadedImagesCount+=1,this._loadImage()},_loadImage:function(){if(0==this.loadedImagesCount&&(this.loadedImages=[]),this.loadedImagesCount<this.images.length){var t=this.loadedImagesCount;this.loadedImages[t]=new Image,this.loadedImages[t].onload=this._imageHasLoaded.bind(this),this.loadedImages[t].src=this.images[t]}else this.loaded=!0,(0,a.Kg)(this.ui("loadButtonContainer").get(0)),this.ui("interactToggle").hide()},_getEvents:function(){var t=$("html").hasClass("touchCapability");this._events={start:t?"touchstart":"mousedown",stop:t?"touchend":"mouseup",move:t?"touchmove":"mousemove",touch:!!t}},_setSize:function(){var t=this;this.breakpointSmall=(0,s.do)(),this.breakpointMedium=(0,s.F)(),this.breakpointLarge=!(0,s.F)()&&!(0,s.do)(),this.widthcal=$("body").innerWidth(),this.widthcal>=1920?this.width=$("body").innerWidth()-260:this.widthcal>=1280&&this.widthcal<=1919.9?this.width=$("body").innerWidth()-120:(this.widthcal>=768&&this.widthcal,this.width=$("body").innerWidth()),"author"===this.authorMode?this.height=600:this.height=window.innerHeight-(0,a.Ov)(this.$element.offset().top,!1),this.imageOffset.y=0,this.imageOffset.x=0,this.calculatedWidth=this.width,this.calculatedHeight=Math.round(this.calculatedWidth/16*9),this.height=this.calculatedHeight,this.breakpointSmall||this.breakpointMedium?this.height=this.width/16*9:this.height<this.calculatedHeight?this.imageOffset.y=Math.round((this.height-this.calculatedHeight)/2):this.calculatedHeight<this.height&&(this.calculatedHeight=this.height,this.calculatedWidth=Math.round(this.height/9*16),this.imageOffset.x=-Math.round((this.calculatedWidth-this.width)/2)),this.canvas.height=Math.round(this.height),this.canvas.width=Math.round(this.width),this.tabbedContainer&&(this.breakpointSmall?setTimeout(function(){t.$element.height(t.height+t.ui("headerBox").height())},500):this.$element.height(this.height)),this._draw(),this._centerHeaderBox()},_calculateMouseMovement:function(){var t=this.mouse.x-this.rect.left;this.changeTotal+=t-this.mouse.lastMove.x,this.mouse.lastMove.x=t},_drawCanvasImage:function(){this.currentImage&&this.ctx.drawImage(this.currentImage,this.imageOffset.x,this.imageOffset.y,this.calculatedWidth,this.calculatedHeight)},_updateCurrentImage:function(){this.currentImage=this.loadedImages[this.imageIndex]},_centerHeaderBox:function(){if(!this.breakpointSmall){this.ui("headerBox").width("auto").height("auto").HeaderBox();var t=this.ui("headerBox").height(),e=(this.canvas.height-t)/2;this.ui("headerBox").css({top:e})}this._positionContent()},_positionContent:function(){var t="";window.innerWidth<1400&&!this.breakpointSmall&&0!==this.ui("headerBox").length&&(t=this.ui("headerBox").offset().left+this.ui("headerBox").width()-this.$element.offset().left+(this.$element.width()-(this.ui("headerBox").offset().left+this.ui("headerBox").width()-this.$element.offset().left))/2),this.ui("loadButtonContainer").css({left:t})},_resetHeaderBox:function(){this.headerBoxHidden=!1,this.ui("headerBox").show(),this.ui("headerBox").transition({opacity:1,duration:400},"ease")},_updateHeaderBox:function(){var t=this;this.breakpointSmall||(0===this.changeTotal||this.headerBoxHidden?this.headerBoxHidden&&(clearTimeout(this.headerBoxTimeout),this.headerBoxTimeout=setTimeout(this._resetHeaderBox.bind(this),2e3)):(this.headerBoxHidden=!0,this.ui("headerBox").transition({opacity:0},400,"ease",function(){t.ui("headerBox").hide()})))},_updateImage:function(){if(this.changeTotal>20||this.changeTotal<-20){var t=Math.sign(this.changeTotal);this.changeTotal=0,this.imageIndex=1===t?this.imageIndex+1:this.imageIndex-1,this.imageIndex>=this.images.length?this.imageIndex=0:this.imageIndex<=0&&(this.imageIndex=this.images.length),this._updateCurrentImage()}},_draw:function(){this.rect=this.canvas.getBoundingClientRect(),this._drawCanvasImage(),this._updateHeaderBox(),this.ctx.save(),this.ctx.fillStyle="#fc00cf",this.ctx.restore(
1)},_debug:function(){var t=this,e={mouseX:this.mouse.x,mouseY:this.mouse.y,mousedown:this.mouse.down,actualMouseX:this.mouse.x-this.rect.left,actualMouseY:this.mouse.y-this.rect.top,changeTotal:this.changeTotal,loadedImagesCount:this.loadedImagesCount,cursorAlpha:this.cursorAlpha},i=1;Object.keys(e).forEach(function(n){t.ctx.fillStyle="#fff",t.ctx.font="18px Georgia",t.ctx.fillText("".concat(n,": ").concat(e[n]),10,20*i),i+=1})}},e=(new Date).getMilliseconds();jQuery.createComponent("Exterior360".concat(e),t);var i=$(this.el);setTimeout(function(){i.parents(".TabbedContainer").length||i["Exterior360".concat(e)]()},500)}}],e&&r(t.prototype,e),i&&r(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,i}()},54119:function(t,e,i){function n(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return a(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?a(t,e):void 0}}(t)||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 a(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);i<e;i++)n[i]=t[i];return n}i.d(e,{CG:function(){return r},LV:function(){return s},WH:function(){return l},nc:function(){return c},oA:function(){return o}});var s=function(t,e){t.parentNode.insertBefore(e,t),e.appendChild(t)},o=function(t){for(var e=t.parentNode;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t)},r=function(t,e){var i,a=(i=t)instanceof NodeList?n(i):[i];a.length&&(a[0].parentNode.insertBefore(e,a[0]),a.forEach(function(t){return e.appendChild(t)}))},l=function(t,e){return t.parentNode.insertBefore(e,t.nextSibling)},c=function(t,e){return t.parentNode.insertBefore(e,t)}}}]);

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.