/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!*****************************!*\
  !*** ./assets/wheelzoom.js ***!
  \*****************************/
/*!
	Wheelzoom 4.0.1
	license: MIT
	http://www.jacklmoore.com/wheelzoom
*/
window.wheelzoom = function () {
  var defaults = {
    zoom: 0.10,
    maxZoom: false,
    initialZoom: 1,
    initialX: 1.5,
    initialY: 0.5,
    fullscreen: false
  };

  var main = function main(img, options) {
    if (!img || !img.nodeName || img.nodeName !== 'IMG') {
      return;
    }

    var settings = {};
    var width;
    var height;
    var bgWidth;
    var bgHeight;
    var bgPosX;
    var bgPosY;
    var previousEvent;
    var predX, predY;
    var transparentSpaceFiller;

    function setSrcToBackground(img) {
      img.style.backgroundRepeat = 'no-repeat';
      img.style.backgroundImage = 'url("' + img.src + '")';
      transparentSpaceFiller = 'data:image/svg+xml;base64,' + window.btoa('<svg xmlns="http://www.w3.org/2000/svg" width="' + img.naturalWidth + '" height="' + img.naturalHeight + '"></svg>');
      img.src = transparentSpaceFiller;
    }

    function updateBgStyle() {
      if (settings.fullscreen === false) {
        if (bgPosX > 0) {
          bgPosX = 0;
        } else if (bgPosX < width - bgWidth) {
          bgPosX = width - bgWidth;
        }

        if (bgPosY > 0) {
          bgPosY = 0;
        } else if (bgPosY < height - bgHeight) {
          bgPosY = height - bgHeight;
        }
      }

      img.style.backgroundSize = bgWidth + 'px ' + bgHeight + 'px';
      img.style.backgroundPosition = bgPosX + 'px ' + bgPosY + 'px';
    }

    function reset() {
      bgWidth = width;
      bgHeight = height;
      bgPosX = bgPosY = 0;
      img.style.backgroundSize = bgWidth + 'px ' + bgHeight + 'px';
      img.style.backgroundPosition = bgPosX + 'px ' + bgPosY + 'px';

      if (settings.fullscreen === true) {
        bgPosX = (window.innerWidth - bgWidth) / 2;
        bgPosY = (window.innerHeight - bgHeight) / 2;
        img.style.backgroundPosition = bgPosX + 'px ' + bgPosY + 'px';
      }
    }

    function onwheel(e) {
      var deltaY = 0;
      e.preventDefault();

      if (e.deltaY) {
        // FireFox 17+ (IE9+, Chrome 31+?)
        deltaY = e.deltaY;
      } else if (e.wheelDelta) {
        deltaY = -e.wheelDelta;
      } // As far as I know, there is no good cross-browser way to get the cursor position relative to the event target.
      // We have to calculate the target element's position relative to the document, and subtrack that from the
      // cursor's position relative to the document.


      var rect = img.getBoundingClientRect();
      var offsetX = e.pageX - rect.left - window.pageXOffset;
      var offsetY = e.pageY - rect.top - window.pageYOffset; // Record the offset between the bg edge and cursor:

      var bgCursorX = offsetX - bgPosX;
      var bgCursorY = offsetY - bgPosY; // Use the previous offset to get the percent offset between the bg edge and cursor:

      var bgRatioX = bgCursorX / bgWidth;
      var bgRatioY = bgCursorY / bgHeight; // Update the bg size:

      if (deltaY < 0) {
        bgWidth += bgWidth * settings.zoom;
        bgHeight += bgHeight * settings.zoom;
      } else {
        bgWidth -= bgWidth * settings.zoom;
        bgHeight -= bgHeight * settings.zoom;
      }

      if (settings.maxZoom) {
        bgWidth = Math.min(width * settings.maxZoom, bgWidth);
        bgHeight = Math.min(height * settings.maxZoom, bgHeight);
      } // Take the percent offset and apply it to the new size:


      bgPosX = offsetX - bgWidth * bgRatioX;
      bgPosY = offsetY - bgHeight * bgRatioY;

      if (settings.fullscreen === true) {} // Prevent zooming out beyond the starting size


      if (bgWidth <= width || bgHeight <= height) {
        reset();
      } else {
        updateBgStyle();
      }
    }

    function onplus() {
      //var offsetX =width/2;
      //var offsetY = height/2;

      /*change 19.05.2022*/
      var offsetX = window.innerWidth / 2;
      var offsetY = window.innerHeight / 2; // Record the offset between the bg edge and cursor:

      var bgCursorX = offsetX - bgPosX;
      var bgCursorY = offsetY - bgPosY; // Use the previous offset to get the percent offset between the bg edge and cursor:

      var bgRatioX = bgCursorX / bgWidth;
      var bgRatioY = bgCursorY / bgHeight;
      bgWidth += bgWidth * settings.zoom;
      bgHeight += bgHeight * settings.zoom;

      if (settings.maxZoom) {
        bgWidth = Math.min(width * settings.maxZoom, bgWidth);
        bgHeight = Math.min(height * settings.maxZoom, bgHeight);
      } // Take the percent offset and apply it to the new size:


      bgPosX = offsetX - bgWidth * bgRatioX;
      bgPosY = offsetY - bgHeight * bgRatioY; // Prevent zooming out beyond the starting size

      if (bgWidth <= width || bgHeight <= height) {
        reset();
      } else {
        updateBgStyle();
      }
    }

    function onminus() {
      // Update the bg size:
      //var offsetX =width/2;
      //var offsetY = height/2;

      /*change 19.05.2022*/
      var offsetX = window.innerWidth / 2;
      var offsetY = window.innerHeight / 2; // Record the offset between the bg edge and cursor:

      var bgCursorX = offsetX - bgPosX;
      var bgCursorY = offsetY - bgPosY; // Use the previous offset to get the percent offset between the bg edge and cursor:

      var bgRatioX = bgCursorX / bgWidth;
      var bgRatioY = bgCursorY / bgHeight;
      bgWidth -= bgWidth * settings.zoom;
      bgHeight -= bgHeight * settings.zoom;

      if (settings.maxZoom) {
        bgWidth = Math.min(width * settings.maxZoom, bgWidth);
        bgHeight = Math.min(height * settings.maxZoom, bgHeight);
      } // Take the percent offset and apply it to the new size:


      bgPosX = offsetX - bgWidth * bgRatioX;
      bgPosY = offsetY - bgHeight * bgRatioY; // Prevent zooming out beyond the starting size

      if (bgWidth <= width || bgHeight <= height) {
        reset();
      } else {
        updateBgStyle();
      }
    }

    function drag(e) {
      e.preventDefault();
      bgPosX += e.pageX - previousEvent.pageX;
      bgPosY += e.pageY - previousEvent.pageY;
      previousEvent = e;
      updateBgStyle();
    }

    function drag1(e) {
      var touchLocation = e.targetTouches[0];

      if (predX != null) {
        bgPosX += touchLocation.pageX - predX;
        bgPosY += touchLocation.pageY - predY;
      }

      predX = touchLocation.pageX;
      predY = touchLocation.pageY;
      updateBgStyle();
    }

    function resetik() {
      predX = null;
      predY = null;
    }

    function removeDrag() {
      document.removeEventListener('mouseup', removeDrag);
      document.removeEventListener('mousemove', drag);
      document.removeEventListener('touchmove', drag1);
    } // Make the background draggable


    function draggable(e) {
      e.preventDefault();
      previousEvent = e;
      document.addEventListener('mousemove', drag);
      document.addEventListener('touchmove', drag1);
      document.addEventListener('touchend', resetik);
      document.addEventListener('mouseup', removeDrag);
    }

    function load() {
      var initial = Math.max(settings.initialZoom, 1);
      if (img.src === transparentSpaceFiller) return;
      var elem = document.getElementById("zoom-arr");
      var computedStyle = window.getComputedStyle(img, null);
      width = parseInt(computedStyle.width, 10);
      height = parseInt(computedStyle.height, 10);
      bgWidth = width * initial;
      bgHeight = height * initial;
      bgPosX = -(bgWidth - width) * settings.initialX;
      bgPosY = -(bgHeight - height) * settings.initialY;
      setSrcToBackground(img);
      img.style.backgroundSize = bgWidth + 'px ' + bgHeight + 'px';
      img.style.backgroundPosition = bgPosX + 'px ' + bgPosY + 'px';

      if (settings.fullscreen === true) {
        img.style.width = '100%';
        img.style.height = '100%';
        bgPosX = (window.innerWidth - bgWidth) / 2;
        bgPosY = (window.innerHeight - bgHeight) / 2;
        img.style.backgroundPosition = bgPosX + 'px ' + bgPosY + 'px';
      }

      img.addEventListener('wheelzoom.reset', reset);
      document.addEventListener('touchmove', drag1);
      document.addEventListener('touchend', resetik);
      img.addEventListener('wheel', onwheel);
      img.addEventListener('plus', onplus);
      img.addEventListener('minus', onminus);
      img.addEventListener('mousedown', draggable);
    }

    var destroy = function (originalProperties) {
      img.removeEventListener('wheelzoom.destroy', destroy);
      img.removeEventListener('wheelzoom.reset', reset);
      img.removeEventListener('load', load);
      img.removeEventListener('mouseup', removeDrag);
      img.removeEventListener('mousemove', drag);
      img.removeEventListener('touchmove', drag1);
      img.removeEventListener('mousedown', draggable);
      img.removeEventListener('wheel', onwheel);
      img.removeEventListener('plus', onplus);
      img.removeEventListener('minus', onminus);
      img.style.backgroundImage = originalProperties.backgroundImage;
      img.style.backgroundRepeat = originalProperties.backgroundRepeat;
      img.src = originalProperties.src;
    }.bind(null, {
      backgroundImage: img.style.backgroundImage,
      backgroundRepeat: img.style.backgroundRepeat,
      src: img.src
    });

    img.addEventListener('wheelzoom.destroy', destroy);
    options = options || {};
    Object.keys(defaults).forEach(function (key) {
      settings[key] = options[key] !== undefined ? options[key] : defaults[key];
    });

    if (img.complete) {
      load();
    }

    img.addEventListener('load', load);
  }; // Do nothing in IE9 or below


  if (typeof window.btoa !== 'function') {
    return function (elements) {
      return elements;
    };
  } else {
    return function (elements, options) {
      if (elements && elements.length) {
        Array.prototype.forEach.call(elements, function (node) {
          main(node, options);
        });
      } else if (elements && elements.nodeName) {
        main(elements, options);
      }

      return elements;
    };
  }
}();
/******/ })()
;