1!function(e){var t={};function s(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,s),n.l=!0,n.exports}s.m=e,s.c=t,s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)s.d(i,n,function(t){return e[t]}.bind(null,n));return i},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s(s.s=61)}({61:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class i{constructor(){this.active=!1,this.mouseX=0,this.mouseY=0,this.classes={active:"active",disabled:"disabled"};const e=document.querySelector("#product-details-timeline-canvas"),t=document.querySelector("#prev-anim"),s=document.querySelector("#next-anim"),i=document.querySelector("#mouse-overlay__prev"),n=document.querySelector("#mouse-overlay__next");if(!(e&&t&&s&&i&&n))throw new Error("Failed to initialise CrimsafeDifferenceMouseNavigation");this.container=e,this.buttons={prev:t,next:s},this.cursors={prev:i,next:n},window.addEventListener("mousemove",this.onMousemove.bind(this)),this.container.addEventListener("mouseenter",this.onMouseenter.bind(this)),this.container.addEventListener("mouseleave",this.onMouseleave.bind(this)),this.container.addEventListener("click",this.onClick.bind(this)),this.tick=this.tick.bind(this),window.requestAnimationFrame(this.tick)}get state(){if(!this.active)return"hidden";const e=this.container.offsetWidth;return this.mouseX<e/2?"prev":"next"}tick(){this.updateCursor("prev","prev"),this.updateCursor("next","next"),window.requestAnimationFrame(this.tick)}updateCursor(e,t){const s=this.buttons[e],i=this.cursors[e];i.style.transform=`translate3d(${this.mouseX}px, ${this.mouseY}px, 0)`,s.disabled?i.classList.add(this.classes.disabled):i.classList.remove(this.classes.disabled),this.state===t?i.classList.add(this.classes.active):i.classList.remove(this.classes.active)}onMousemove(e){this.mouseX=e.clientX,this.mouseY=e.clientY}onMouseenter(){this.active=!0}onMouseleave(){this.active=!1}onClick(){switch(this.state){case"prev":return this.prev();case"next":return this.next()}}prev(){this.buttons.prev.click()}next(){this.buttons.next.click()}}window.addEventListener("load",()=>{new i})}});
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.