PageSourceSearch

https://restyle.pl/gfx/eng/projector_photos_core.js.gzip?r=1790033782

js restyle.pl collected 2026-09-26 03:14:09 UTC 11,092 bytes, 1 lines download raw bytes

1function initProductSlider(){const t=document.querySelector(".photos__slider_wrapper"),e=document.querySelector(".slider-icon");if(!t||!e)return;let n,o=!1,s={isDragging:!1,startPosition:0,currentTranslate:0,prevTranslate:0,hasMoved:!1,scale:1,lastDistance:0,initialX:0,initialY:0,offsetX:0,offsetY:0,dragStartX:0,dragStartY:0},r={isDragging:!1,startPosition:0,startY:0,currentTranslate:0,prevTranslate:0,isHorizontalDrag:!1},i={isDragging:!1,startPosition:0,startY:0,currentTranslate:0,prevTranslate:0,isHorizontalDrag:!1},a=0;const l=t.querySelectorAll(".photos__photo"),c=l.length,d=document.createElement("div");d.className="photos-modal",d.style.cssText="\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100dvh;\n    background: rgba(0, 0, 0, 0.9);\n    display: none;\n    justify-content: center;\n    align-items: center;\n    z-index: 1000;\n    cursor: pointer;\n    overflow: hidden;\n  ";const u=document.createElement("img");u.className="photos-modal__image",u.style.cssText="\n    max-height: 100dvh;\n    max-width: 100%;\n    object-fit: contain;\n    cursor: zoom-in;\n    user-select: none;\n    touch-action: none;\n    transform-origin: center;\n    transition: transform 0.2s ease-out;\n  ";const f=(t,e,n)=>{const o=document.createElement("button");return o.className=t,o.innerHTML=e,o.style.cssText=`\n      position: absolute;\n      ${n}: 0;\n      top: 50%;\n      transform: translateY(-50%);\n      background: rgba(255, 255, 255, 0.2);\n      box-shadow: 0 0 4px 4px rgba(0,0,0,0.2);\n      border: none;\n      color: white;\n      font-size: 3rem;\n      cursor: pointer;\n      padding: 10px;\n      width: 50px;\n      height: 50px;\n      border-radius: 50%;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      transition: background-color 0.3s;\n      z-index: 1001;\n      &:hover {\n        background: rgba(255, 255, 255, 0.3);\n      }\n    `,o},h=f("photos-modal__prev",'<i class="icon-angle-left"></i>',"left"),m=f("photos-modal__next",'<i class="icon-angle-right"></i>',"right"),p=document.createElement("button");p.className="photos-modal__close",p.innerHTML="×",p.style.cssText="\n    position: absolute;\n    top: 20px;\n    right: 20px;\n    background: none;\n    border: none;\n    color: white;\n    font-size: 40px;\n    cursor: pointer;\n    padding: 0;\n    width: 40px;\n    height: 40px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    z-index: 1001;\n  ",d.appendChild(u),d.appendChild(h),d.appendChild(m),d.appendChild(p),document.body.appendChild(d);let g=null,v=1;function y(t,e){return Math.hypot(t.clientX-e.clientX,t.clientY-e.clientY)}function T(t){t.touches&&2===t.touches.length||(s.hasMoved=!1,s.isDragging=!0,"mousedown"===t.type?(t.preventDefault(),s.startPosition=t.clientX,s.dragStartX=t.clientX,s.dragStartY=t.clientY,s.initialX=t.clientX-s.offsetX,s.initialY=t.clientY-s.offsetY):(s.startPosition=t.touches[0].clientX,s.dragStartX=t.touches[0].clientX,s.dragStartY=t.touches[0].clientY,s.initialX=t.touches[0].clientX-s.offsetX,s.initialY=t.touches[0].clientY-s.offsetY))}function L(t){if(s.isDragging&&(t.preventDefault(),t.stopPropagation(),s.scale>1)){const e=window.innerWidth,n=window.innerHeight,o=u.getBoundingClientRect(),r=o.width,i=o.height,a=Math.max((r-e)/(2*s.scale),0),l=Math.max((i-n)/(2*s.scale),0),c="mousemove"===t.type?t.clientX:t.touches[0].clientX,d="mousemove"===t.type?t.clientY:t.touches[0].clientY,f=(c-s.initialX)/s.scale,h=(d-s.initialY)/s.scale;s.offsetX=f>a?a:f<-a?-a:f,s.offsetY=h>l?l:h<-l?-l:h,u.style.transform=`scale(${s.scale}) translate(${s.offsetX}px, ${s.offsetY}px)`}}function b(t){if(!s.isDragging)return;const e="mouseup"===t.type?t.clientX:t.changedTouches?t.changedTouches[0].clientX:s.startPosition,n="mouseup"===t.type?t.clientY:t.changedTouches?t.changedTouches[0].clientY:s.dragStartY,o=Math.abs(e-s.dragStartX),r=Math.abs(n-s.dragStartY),i=o>5||r>5;if(s.isDragging=!1,1===s.scale&&s.hasMoved){const n=e-s.startPosition,o="mouseup"===t.type?100:50;n>o?E(a>0?a-1:c-1):n<-o&&E(a<c-1?a+1:0),u.style.opacity="",u.style.transform=`scale(${s.scale})`}s.hasMoved=i}function E(t){const e=l[t];if(e){u.style.transition="transform 0.3s ease-out";const n=e.dataset.img_high_res||e.src;u.src=n,a=t,s.scale=1,s.offsetX=0,s.offsetY=0,u.style.transform="",u.style.transformOrigin="center",u.style.cursor="zoom-in",h.style.display="flex",m.style.display="flex",setTimeout((()=>{u.style.transition=""}),300)}}function x(){d.style.display="none",document.body.style.overflow="",s.scale=1,s.offsetX=0,s.offsetY=0,u.style.transform="",u.style.transformOrigin="center",u.style.cursor="zoom-in"}function D(e){let n=0,l=!1;const c=e===t?r:i,f=e===t,p=e.children;p.length;function g(t){l=!1,"mousedown"===t.type?(t.preventDefault(),c.startPosition=t.clientX,c.startY=t.clientY):(c.startPosition=t.touches[0].clientX,c.startY=t.touches[0].clientY),c.isDragging=!0,c.isHorizontalDrag=!1,n=requestAnimationFrame(T),e.style.scrollBehavior="auto",c.prevTranslate=e.scrollLeft}function v(t){if(!c.isDragging)return;const e="mousemove"===t.type?t.clientX:t.touches[0].clientX,n="mousemove"===t.type?t.clientY:t.touches[0].clientY,o=e-c.startPosition,s=n-c.startY;!c.isHorizontalDrag&&(Math.abs(o)>5||Math.abs(s)>5)&&(c.isHorizontalDrag=Math.abs(o)>Math.abs(s)),c.isHorizontalDrag&&(t.preventDefault(),t.stopPropagation(),c.currentTranslate=c.prevTranslate-o,l=Math.abs(o)>5)}function y(t){if(c.isDragging=!1,cancelAnimationFrame(n),e.style.scrollBehavior="smooth",!l||!c.isHorizontalDrag)return;const o=p[0].offsetWidth,s=e.scrollWidth-e.clientWidth,r="touchend"===t.type,i=r?.15*o:.3*o,a=(r?t.changedTouches?t.changedTouches[0].clientX:c.startPosition:t.clientX)-c.startPosition;if(Math.abs(a)>i)if(a>0){const t=c.prevTranslate-o;t<0?(c.currentTranslate=s,e.scrollLeft=s):(c.currentTranslate=t,e.scrollLeft=t)}else{const t=c.prevTranslate+o;t>s?(c.currentTranslate=0,e.scrollLeft=0):(c.currentTranslate=t,e.scrollLeft=t)}else if(c.currentTranslate<0)c.currentTranslate=s,e.scrollLeft=s;else if(c.currentTranslate>
1s)c.currentTranslate=0,e.scrollLeft=0;else{const t=Math.round(c.currentTranslate/o)*o;e.scrollLeft=t}c.isHorizontalDrag=!1}function T(){c.isDragging&&(e.scrollLeft=c.currentTranslate,requestAnimationFrame(T))}f&&e.querySelectorAll(".photos__photo").forEach(((t,e)=>{t.addEventListener("click",(n=>{if(n.preventDefault(),n.stopPropagation(),!l&&!c.isDragging&&!o){!function(t,e){u.src=t,a=e,d.style.display="flex",document.body.style.overflow="hidden",s.scale=1,s.offsetX=0,s.offsetY=0,u.style.transform="",u.style.transformOrigin="center",u.style.cursor="zoom-in",h.style.display="flex",m.style.display="flex"}(t.dataset.img_high_res||t.src,e)}}))})),e.addEventListener("mousedown",g),e.addEventListener("touchstart",g),e.addEventListener("mousemove",v),e.addEventListener("touchmove",v,{passive:!1}),e.addEventListener("mouseup",y),e.addEventListener("touchend",y),e.addEventListener("mouseleave",y),e.querySelectorAll("img").forEach((t=>{t.addEventListener("dragstart",(t=>t.preventDefault()))}))}u.addEventListener("click",(function(t){if(t.preventDefault(),t.stopPropagation(),t.target!==u)return;if(s.isDragging||s.hasMoved)return;const e=s.scale>1?1:2;2===e&&(u.style.transformOrigin="center"),u.style.transform=`scale(${e})`,s.scale=e,u.style.cursor=e>1?"zoom-out":"zoom-in"})),u.addEventListener("touchstart",(function(t){2===t.touches.length&&(t.preventDefault(),g=y(t.touches[0],t.touches[1]),v=s.scale)}),{passive:!1}),u.addEventListener("touchmove",(function(t){if(null===g||2!==t.touches.length)return;t.preventDefault();const e=y(t.touches[0],t.touches[1]),n=Math.min(Math.max(1,v*(e/g)),4);u.style.transform=`scale(${n}) translate(${s.offsetX}px, ${s.offsetY}px)`,s.scale=n,u.style.cursor=n>1?"move":"zoom-in"}),{passive:!1}),u.addEventListener("touchend",(function(){g=null})),u.addEventListener("mousedown",T),u.addEventListener("touchstart",T),u.addEventListener("mousemove",L),u.addEventListener("touchmove",L,{passive:!1}),u.addEventListener("mouseup",b),u.addEventListener("touchend",b),u.addEventListener("mouseleave",b),h.addEventListener("click",(t=>{t.stopPropagation(),E(a>0?a-1:c-1)})),m.addEventListener("click",(t=>{t.stopPropagation(),E(a<c-1?a+1:0)})),document.addEventListener("keydown",(e=>{if("flex"===d.style.display)"ArrowLeft"===e.key?E(a>0?a-1:c-1):"ArrowRight"===e.key?E(a<c-1?a+1:0):"Escape"===e.key&&x();else if("ArrowLeft"===e.key){const e=t.firstElementChild.offsetWidth,s=t.scrollWidth-t.clientWidth;o=!0,t.scrollLeft<e/2?t.scrollTo({left:s,behavior:"smooth"}):t.scrollBy({left:-e,behavior:"smooth"}),n&&clearTimeout(n),n=setTimeout((()=>{o=!1}),500)}else if("ArrowRight"===e.key){const e=t.firstElementChild.offsetWidth,s=t.scrollWidth-t.clientWidth;o=!0,t.scrollLeft>s-e/2?t.scrollTo({left:0,behavior:"smooth"}):t.scrollBy({left:e,behavior:"smooth"}),n&&clearTimeout(n),n=setTimeout((()=>{o=!1}),500)}})),d.addEventListener("click",(t=>{t.target===d&&x()})),p.addEventListener("click",x),e.querySelectorAll(".photo__icon").forEach(((s,a)=>{s.addEventListener("click",(s=>{s.preventDefault(),s.stopPropagation();const l=t.children[a];if(l){o=!0;const s=l.offsetLeft;r.currentTranslate=s,r.prevTranslate=s,i.currentTranslate=e.scrollLeft,i.prevTranslate=e.scrollLeft,t.scrollTo({left:s,behavior:"smooth"}),n&&clearTimeout(n),n=setTimeout((()=>{o=!1}),500)}}))})),t.addEventListener("scroll",(()=>{r.isDragging||(r.prevTranslate=t.scrollLeft,r.currentTranslate=r.prevTranslate)}));const Y=document.querySelector(".photos__slider__prev:not(.thumbnail-prev)"),X=document.querySelector(".photos__slider__next:not(.thumbnail-next)");Y&&X&&(Y.addEventListener("click",(e=>{e.preventDefault(),o=!0;const s=t.firstElementChild.offsetWidth,r=t.scrollWidth-t.clientWidth;t.scrollLeft<s/2?t.scrollTo({left:r,behavior:"smooth"}):t.scrollBy({left:-s,behavior:"smooth"}),n&&clearTimeout(n),n=setTimeout((()=>{o=!1}),500)})),X.addEventListener("click",(e=>{e.preventDefault(),o=!0;const s=t.firstElementChild.offsetWidth,r=t.scrollWidth-t.clientWidth;t.scrollLeft>r-s/2?t.scrollTo({left:0,behavior:"smooth"}):t.scrollBy({left:s,behavior:"smooth"}),n&&clearTimeout(n),n=setTimeout((()=>{o=!1}),500)})));const _=document.querySelector(".thumbnail-prev"),w=document.querySelector(".thumbnail-next");_&&w&&(_.addEventListener("click",(t=>{t.preventDefault();const n=e.firstElementChild.offsetWidth,o=e.scrollWidth-e.clientWidth;if(e.scrollLeft<n/2){const t=o;i.prevTranslate=t,i.currentTranslate=t,e.scrollTo({left:t,behavior:"smooth"})}else{const t=e.scrollLeft-n;i.prevTranslate=t,i.currentTranslate=t,e.scrollTo({left:t,behavior:"smooth"})}})),w.addEventListener("click",(t=>{t.preventDefault();const n=e.firstElementChild.offsetWidth,o=e.scrollWidth-e.clientWidth;if(e.scrollLeft>o-n/2){const t=0;i.prevTranslate=t,i.currentTranslate=t,e.scrollTo({left:t,behavior:"smooth"})}else{const t=e.scrollLeft+n;i.prevTranslate=t,i.currentTranslate=t,e.scrollTo({left:t,behavior:"smooth"})}}))),D(t),D(e)}document.addEventListener("DOMContentLoaded",initProductSlider);

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.