{"version":3,"sources":["webpack:///../node_modules/react-zoom-pan-pinch/dist/index.esm.js","webpack:///../node_modules/keen-slider/keen-slider.min.css?e38e","webpack:///../node_modules/keen-slider/react.js","webpack:///../node_modules/keen-slider/keen-slider.min.css"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__assign","assign","t","s","i","n","arguments","length","apply","this","__spreadArray","to","from","pack","ar","l","slice","concat","roundNumber","num","decimal","Number","toFixed","handleCallback","context","event","callback","animations","easeOut","Math","cos","PI","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","handleCancelAnimationFrame","animation","cancelAnimationFrame","handleCancelAnimation","contextInstance","mounted","animate","velocity","handleSetupAnimation","animationName","animationTime","startTime","Date","getTime","frameTime","step","animationType","requestAnimationFrame","targetState","isValid","scale","positionX","positionY","isNaN","isValidTargetState","setTransformState","_a","transformState","scaleDiff","positionXDiff","positionYDiff","calculateBounds","newScale","wrapperComponent","contentComponent","centerZoomedOut","setup","Error","wrapperWidth","offsetWidth","wrapperHeight","offsetHeight","newContentWidth","newContentHeight","newDiffWidth","newDiffHeight","getComponentsSizes","diffWidth","diffHeight","scaleWidthFactor","scaleHeightFactor","minPositionX","maxPositionX","minPositionY","maxPositionY","getBounds","Boolean","handleCalculateBounds","bounds","getMouseBoundedPosition","limitToBounds","paddingValueX","paddingValueY","paddingX","paddingY","x","boundLimiter","y","value","minBound","maxBound","isActive","handleCalculateZoomPositions","mouseX","mouseY","scaleDifference","console","error","checkZoomBounds","zoom","minScale","maxScale","zoomPadding","enablePadding","minScaleWithPadding","isPanningStartAllowed","excluded","panning","isInitialized","target","isWrapperChild","contains","isExcludedNode","isPanningAllowed","isPanning","disabled","getPaddingValue","size","getVelocityPosition","newPosition","startPosition","currentPosition","isLocked","minPosition","maxPosition","minTarget","maxTarget","calculatedPosition","handleCalculateVelocity","position","velocityAnimation","isVelocityCalculationAllowed","lastMousePosition","velocityTime","equalToMove","now","sizeMultiplier","min","window","innerWidth","getSizeMultiplier","distanceX","distanceY","velocityX","velocityY","interval","speed","sqrt","total","handlePanningStart","touches","clientX","clientY","startCoords","handleTouchPanningSetup","handlePanningSetup","handlePanning","alignmentAnimation","sizeX","sizeY","_b","lockAxisX","lockAxisY","getPanningClientPosition","newPositionX","newPositionY","handleNewPosition","handlePanningEnd","velocityDisabled","wrapperRect","getBoundingClientRect","contentRect","width","height","contentWidth","contentHeight","isZoomed","isVelocityAllowed","zoomAnimation","alignAnimationTime","velocityAlignmentTime","moveAnimationTime","sensitivity","getVelocityMoveTime","finalAnimationTime","max","maxTargetX","minTargetX","maxTargetY","minTargetY","startState","animationProgress","alignStep","alignAnimation","customStep","currentPositionX","currentPositionY","handleVelocityPanning","handleAlignToBounds","_c","xChanged","yChanged","_d","handlePanToBounds","handleAlignToScaleBounds","mousePositionX","mousePositionY","isDisabled","handleZoomToPoint","initialState","previousScale","contextInitialState","setComponents","initialSetup","centerOnInit","wheel","wheelDisabled","touchPadDisabled","activationKeys","pinch","doubleClick","mode","createState","props","initialScale","initialPositionX","initialPositionY","createSetup","newSetup","keys","forEach","key","validValue","dataType","toString","isObject","isArray","handleCalculateButtonZoom","delta","targetScale","exp","handleZoomToViewCenter","resetTransformations","initialTransformation","newBounds","boundedPositions","newState","zoomIn","zoomOut","setTransform","resetTransform","centerView","getCenterPosition","zoomToElement","node","document","getElementById","undefined","isValidZoomNode","customZoom","nodeRect","element","el","offsetLeft","offsetTop","offsetParent","getOffset","nodeLeft","nodeTop","nodeWidth","nodeHeight","scaleX","scaleY","offsetX","offsetY","left","top","calculateZoomToNode","getContext","instance","state","makePassiveEventOption","err","targetTagName","tagName","toUpperCase","find","tag","className","classList","cancelTimeout","timeout","clearTimeout","getTransformStyles","isWheelAllowed","ctrlKey","getMousePosition","touch","isPinchStartAllowed","isPinchAllowed","pinchStartDistance","getTouchDistance","pow","pageX","pageY","handleWheelStart","onWheelStart","onZoomStart","wheelStopEventTimer","handleWheelZoom","onWheel","onZoom","preventDefault","stopPropagation","disablePadding","getTarget","paddingEnabled","handleCalculateWheelZoom","customDelta","defaultValue","deltaY","getDelta","mousePosition","isLimitedToBounds","previousWheelEvent","handleWheelStop","onWheelStop","onZoomStop","wheelAnimationTimer","setTimeout","sign","handleWheelZoomStop","handlePinchStart","distance","lastDistance","pinchStartScale","handlePinchZoom","midPoint","firstPointX","firstPointY","calculateTouchMidPoint","isFinite","currentDistance","calculatePinchZoom","pinchMidpoint","handlePinchStop","handleDoubleClick","isDoubleClickAllowed","isAllowed","Context","createContext","TransformContext","_super","_this","lastTouch","maxBounds","pressedKeys","handleInitializeWrapperEvents","wrapper","passive","addEventListener","onWheelZoom","onDoubleClick","onTouchPanningStart","onTouchPanning","onTouchPanningStop","handleInitialize","applyTransformation","forceUpdate","setCenter","isPressingKeys","onPanningStart","onPanning","onPanningStop","onPinchStart","onPinchingStart","onPinch","onPinching","onPinchStop","onPinchingStop","isPanningAction","isPinchAction","clearPanning","setKeyPressed","e","setKeyUnPressed","handleRef","onInit","transform","style","setRef","TypeError","String","__","constructor","create","__extends","componentDidMount","componentWillUnmount","removeEventListener","componentDidUpdate","oldProps","render","children","content","createElement","Provider","TransformWrapper","forwardRef","ref","innerRef","styles","css","insertAt","head","getElementsByTagName","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","styleInject","TransformComponent","wrapperClass","contentClass","wrapperStyle","contentStyle","wrapperRef","contentRef","current","module","options","locals","exports","defineProperty","enumerable","configurable","writable","r","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","getOwnPropertyDescriptors","defineProperties","o","Symbol","iterator","a","u","next","done","return","c","name","test","f","h","v","m","g","w","M","j","O","S","A","k","P","E","T","D","C","L","I","V","X","Y","_","q","z","F","H","R","K","W","N","U","$","B","Z","ft","et","rt","J","Kt","cancelable","abs","setAttribute","Xt","Gt","lt","timeStamp","G","nt","pt","ut","removeAttribute","gt","Q","changedTouches","tt","identifier","targetTouches","ht","screenY","screenX","timestamp","hasAttribute","preventEvent","it","ot","Dt","Tt","cancelOnLeave","at","ct","centered","controls","st","loop","rtl","dt","rubberband","vertical","vt","bt","mt","Yt","Ot","Mt","jt","yt","wt","duration","St","Ft","zt","friction","floor","ceil","At","xt","breakpoints","matchMedia","matches","Bt","Et","kt","autoAdjustSlidesPerView","Pt","Ct","slides","dragSpeed","slidesPerView","spacing","It","resetSlide","initial","$t","_t","Vt","Lt","removeProperty","Rt","Nt","Wt","qt","direction","progressTrack","progressSlides","positions","relativeSlide","absoluteSlide","widthOrHeight","Ht","time","reduce","Ut","portion","round","destroy","refresh","prev","moveToSlide","moveToSlideRelative","resize","details","querySelectorAll","HTMLElement","NodeList","indexOf","default","useKeenSlider","useRef","useState","useEffect"],"mappings":"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","file":"17.1db6c3cb912be41e348c.js","sourcesContent":["import React, { Component, useState, useImperativeHandle, useContext, useRef, useEffect } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || from);\r\n}\n\n/**\n * Rounds number to given decimal\n * eg. roundNumber(2.34343, 1) => 2.3\n */\nvar roundNumber = function (num, decimal) {\n    return Number(num.toFixed(decimal));\n};\n/**\n * Checks if value is number, if not it returns default value\n * 1# eg. checkIsNumber(2, 30) => 2\n * 2# eg. checkIsNumber(null, 30) => 30\n */\nvar checkIsNumber = function (num, defaultValue) {\n    return typeof num === \"number\" ? num : defaultValue;\n};\n\nvar handleCallback = function (context, event, callback) {\n    if (callback && typeof callback === \"function\") {\n        callback(context, event);\n    }\n};\n\n/**\n * Functions should return denominator of the target value, which is the next animation step.\n * t is a value from 0 to 1, reflecting the percentage of animation status.\n */\nvar easeOut = function (t) {\n    return -Math.cos(t * Math.PI) / 2 + 0.5;\n};\n// linear\nvar linear = function (t) {\n    return t;\n};\n// accelerating from zero velocity\nvar easeInQuad = function (t) {\n    return t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuad = function (t) {\n    return t * (2 - t);\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuad = function (t) {\n    return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n};\n// accelerating from zero velocity\nvar easeInCubic = function (t) {\n    return t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutCubic = function (t) {\n    return --t * t * t + 1;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutCubic = function (t) {\n    return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n};\n// accelerating from zero velocity\nvar easeInQuart = function (t) {\n    return t * t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuart = function (t) {\n    return 1 - --t * t * t * t;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuart = function (t) {\n    return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;\n};\n// accelerating from zero velocity\nvar easeInQuint = function (t) {\n    return t * t * t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuint = function (t) {\n    return 1 + --t * t * t * t * t;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuint = function (t) {\n    return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t;\n};\nvar animations = {\n    easeOut: easeOut,\n    linear: linear,\n    easeInQuad: easeInQuad,\n    easeOutQuad: easeOutQuad,\n    easeInOutQuad: easeInOutQuad,\n    easeInCubic: easeInCubic,\n    easeOutCubic: easeOutCubic,\n    easeInOutCubic: easeInOutCubic,\n    easeInQuart: easeInQuart,\n    easeOutQuart: easeOutQuart,\n    easeInOutQuart: easeInOutQuart,\n    easeInQuint: easeInQuint,\n    easeOutQuint: easeOutQuint,\n    easeInOutQuint: easeInOutQuint,\n};\n\nvar handleCancelAnimationFrame = function (animation) {\n    if (typeof animation === \"number\") {\n        cancelAnimationFrame(animation);\n    }\n};\nvar handleCancelAnimation = function (contextInstance) {\n    if (!contextInstance.mounted)\n        return;\n    handleCancelAnimationFrame(contextInstance.animation);\n    // Clear animation state\n    contextInstance.animate = false;\n    contextInstance.animation = null;\n    contextInstance.velocity = null;\n};\nfunction handleSetupAnimation(contextInstance, animationName, animationTime, callback) {\n    if (!contextInstance.mounted)\n        return;\n    var startTime = new Date().getTime();\n    var lastStep = 1;\n    // if another animation is active\n    handleCancelAnimation(contextInstance);\n    // new animation\n    contextInstance.animation = function () {\n        if (!contextInstance.mounted) {\n            return handleCancelAnimationFrame(contextInstance.animation);\n        }\n        var frameTime = new Date().getTime() - startTime;\n        var animationProgress = frameTime / animationTime;\n        var animationType = animations[animationName];\n        var step = animationType(animationProgress);\n        if (frameTime >= animationTime) {\n            callback(lastStep);\n            contextInstance.animation = null;\n        }\n        else if (contextInstance.animation) {\n            callback(step);\n            requestAnimationFrame(contextInstance.animation);\n        }\n    };\n    requestAnimationFrame(contextInstance.animation);\n}\nfunction animate(contextInstance, targetState, animationTime, animationName) {\n    var isValid = isValidTargetState(targetState);\n    if (!contextInstance.mounted || !isValid)\n        return;\n    var setTransformState = contextInstance.setTransformState;\n    var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n    var scaleDiff = targetState.scale - scale;\n    var positionXDiff = targetState.positionX - positionX;\n    var positionYDiff = targetState.positionY - positionY;\n    if (animationTime === 0) {\n        setTransformState(targetState.scale, targetState.positionX, targetState.positionY);\n    }\n    else {\n        // animation start timestamp\n        handleSetupAnimation(contextInstance, animationName, animationTime, function (step) {\n            var newScale = scale + scaleDiff * step;\n            var newPositionX = positionX + positionXDiff * step;\n            var newPositionY = positionY + positionYDiff * step;\n            setTransformState(newScale, newPositionX, newPositionY);\n        });\n    }\n}\nfunction isValidTargetState(targetState) {\n    var scale = targetState.scale, positionX = targetState.positionX, positionY = targetState.positionY;\n    if (isNaN(scale) || isNaN(positionX) || isNaN(positionY)) {\n        return false;\n    }\n    return true;\n}\n\nfunction getComponentsSizes(wrapperComponent, contentComponent, newScale) {\n    var wrapperWidth = wrapperComponent.offsetWidth;\n    var wrapperHeight = wrapperComponent.offsetHeight;\n    var contentWidth = contentComponent.offsetWidth;\n    var contentHeight = contentComponent.offsetHeight;\n    var newContentWidth = contentWidth * newScale;\n    var newContentHeight = contentHeight * newScale;\n    var newDiffWidth = wrapperWidth - newContentWidth;\n    var newDiffHeight = wrapperHeight - newContentHeight;\n    return {\n        wrapperWidth: wrapperWidth,\n        wrapperHeight: wrapperHeight,\n        newContentWidth: newContentWidth,\n        newDiffWidth: newDiffWidth,\n        newContentHeight: newContentHeight,\n        newDiffHeight: newDiffHeight,\n    };\n}\nvar getBounds = function (wrapperWidth, newContentWidth, diffWidth, wrapperHeight, newContentHeight, diffHeight, centerZoomedOut) {\n    var scaleWidthFactor = wrapperWidth > newContentWidth\n        ? diffWidth * (centerZoomedOut ? 1 : 0.5)\n        : 0;\n    var scaleHeightFactor = wrapperHeight > newContentHeight\n        ? diffHeight * (centerZoomedOut ? 1 : 0.5)\n        : 0;\n    var minPositionX = wrapperWidth - newContentWidth - scaleWidthFactor;\n    var maxPositionX = scaleWidthFactor;\n    var minPositionY = wrapperHeight - newContentHeight - scaleHeightFactor;\n    var maxPositionY = scaleHeightFactor;\n    return { minPositionX: minPositionX, maxPositionX: maxPositionX, minPositionY: minPositionY, maxPositionY: maxPositionY };\n};\nvar calculateBounds = function (contextInstance, newScale) {\n    var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n    var centerZoomedOut = contextInstance.setup.centerZoomedOut;\n    if (!wrapperComponent || !contentComponent) {\n        throw new Error(\"Components are not mounted\");\n    }\n    var _a = getComponentsSizes(wrapperComponent, contentComponent, newScale), wrapperWidth = _a.wrapperWidth, wrapperHeight = _a.wrapperHeight, newContentWidth = _a.newContentWidth, newDiffWidth = _a.newDiffWidth, newContentHeight = _a.newContentHeight, newDiffHeight = _a.newDiffHeight;\n    var bounds = getBounds(wrapperWidth, newContentWidth, newDiffWidth, wrapperHeight, newContentHeight, newDiffHeight, Boolean(centerZoomedOut));\n    return bounds;\n};\nvar handleCalculateBounds = function (contextInstance, newScale) {\n    var bounds = calculateBounds(contextInstance, newScale);\n    // Save bounds\n    contextInstance.bounds = bounds;\n    return bounds;\n};\nfunction getMouseBoundedPosition(positionX, positionY, bounds, limitToBounds, paddingValueX, paddingValueY, wrapperComponent) {\n    var minPositionX = bounds.minPositionX, minPositionY = bounds.minPositionY, maxPositionX = bounds.maxPositionX, maxPositionY = bounds.maxPositionY;\n    var paddingX = 0;\n    var paddingY = 0;\n    if (wrapperComponent) {\n        paddingX = paddingValueX;\n        paddingY = paddingValueY;\n    }\n    var x = boundLimiter(positionX, minPositionX - paddingX, maxPositionX + paddingX, limitToBounds);\n    var y = boundLimiter(positionY, minPositionY - paddingY, maxPositionY + paddingY, limitToBounds);\n    return { x: x, y: y };\n}\n/**\n * Keeps value between given bounds, used for limiting view to given boundaries\n * 1# eg. boundLimiter(2, 0, 3, true) => 2\n * 2# eg. boundLimiter(4, 0, 3, true) => 3\n * 3# eg. boundLimiter(-2, 0, 3, true) => 0\n * 4# eg. boundLimiter(10, 0, 3, false) => 10\n */\nvar boundLimiter = function (value, minBound, maxBound, isActive) {\n    if (!isActive)\n        return roundNumber(value, 2);\n    if (value < minBound)\n        return roundNumber(minBound, 2);\n    if (value > maxBound)\n        return roundNumber(maxBound, 2);\n    return roundNumber(value, 2);\n};\n\nfunction handleCalculateZoomPositions(contextInstance, mouseX, mouseY, newScale, bounds, limitToBounds) {\n    var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n    var scaleDifference = newScale - scale;\n    if (typeof mouseX !== \"number\" || typeof mouseY !== \"number\") {\n        console.error(\"Mouse X and Y position were not provided!\");\n        return { x: positionX, y: positionY };\n    }\n    var calculatedPositionX = positionX - mouseX * scaleDifference;\n    var calculatedPositionY = positionY - mouseY * scaleDifference;\n    // do not limit to bounds when there is padding animation,\n    // it causes animation strange behaviour\n    var newPositions = getMouseBoundedPosition(calculatedPositionX, calculatedPositionY, bounds, limitToBounds, 0, 0, null);\n    return newPositions;\n}\nfunction checkZoomBounds(zoom, minScale, maxScale, zoomPadding, enablePadding) {\n    var scalePadding = enablePadding ? zoomPadding : 0;\n    var minScaleWithPadding = minScale - scalePadding;\n    if (!isNaN(maxScale) && zoom >= maxScale)\n        return maxScale;\n    if (!isNaN(minScale) && zoom <= minScaleWithPadding)\n        return minScaleWithPadding;\n    return zoom;\n}\n\nvar isPanningStartAllowed = function (contextInstance, event) {\n    var excluded = contextInstance.setup.panning.excluded;\n    var isInitialized = contextInstance.isInitialized, wrapperComponent = contextInstance.wrapperComponent;\n    var target = event.target;\n    var isWrapperChild = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.contains(target);\n    var isAllowed = isInitialized && target && isWrapperChild;\n    if (!isAllowed)\n        return false;\n    var isExcluded = isExcludedNode(target, excluded);\n    if (isExcluded)\n        return false;\n    return true;\n};\nvar isPanningAllowed = function (contextInstance) {\n    var isInitialized = contextInstance.isInitialized, isPanning = contextInstance.isPanning, setup = contextInstance.setup;\n    var disabled = setup.panning.disabled;\n    var isAllowed = isInitialized && isPanning && !disabled;\n    if (!isAllowed)\n        return false;\n    return true;\n};\nvar handlePanningSetup = function (contextInstance, event) {\n    var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY;\n    contextInstance.isPanning = true;\n    // Panning with mouse\n    var x = event.clientX;\n    var y = event.clientY;\n    contextInstance.startCoords = { x: x - positionX, y: y - positionY };\n};\nvar handleTouchPanningSetup = function (contextInstance, event) {\n    var touches = event.touches;\n    var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY;\n    contextInstance.isPanning = true;\n    // Panning with touch\n    var oneFingerTouch = touches.length === 1;\n    if (oneFingerTouch) {\n        var x = touches[0].clientX;\n        var y = touches[0].clientY;\n        contextInstance.startCoords = { x: x - positionX, y: y - positionY };\n    }\n};\nfunction handlePanToBounds(contextInstance) {\n    var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;\n    var _b = contextInstance.setup, disabled = _b.disabled, limitToBounds = _b.limitToBounds, centerZoomedOut = _b.centerZoomedOut;\n    var wrapperComponent = contextInstance.wrapperComponent;\n    if (disabled || !wrapperComponent || !contextInstance.bounds)\n        return;\n    var _c = contextInstance.bounds, maxPositionX = _c.maxPositionX, minPositionX = _c.minPositionX, maxPositionY = _c.maxPositionY, minPositionY = _c.minPositionY;\n    var xChanged = positionX > maxPositionX || positionX < minPositionX;\n    var yChanged = positionY > maxPositionY || positionY < minPositionY;\n    var mousePosX = positionX > maxPositionX\n        ? wrapperComponent.offsetWidth\n        : contextInstance.setup.minPositionX || 0;\n    var mousePosY = positionY > maxPositionY\n        ? wrapperComponent.offsetHeight\n        : contextInstance.setup.minPositionY || 0;\n    var _d = handleCalculateZoomPositions(contextInstance, mousePosX, mousePosY, scale, contextInstance.bounds, limitToBounds || centerZoomedOut), x = _d.x, y = _d.y;\n    return {\n        scale: scale,\n        positionX: xChanged ? x : positionX,\n        positionY: yChanged ? y : positionY,\n    };\n}\nfunction handleNewPosition(contextInstance, newPositionX, newPositionY, paddingValueX, paddingValueY) {\n    var limitToBounds = contextInstance.setup.limitToBounds;\n    var wrapperComponent = contextInstance.wrapperComponent, bounds = contextInstance.bounds;\n    var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n    var hasPositionXChanged = newPositionX !== positionX;\n    var hasPositionYChanged = newPositionY !== positionY;\n    var hasNewPosition = !hasPositionXChanged || !hasPositionYChanged;\n    if (!wrapperComponent || hasNewPosition || !bounds) {\n        return;\n    }\n    var _b = getMouseBoundedPosition(newPositionX, newPositionY, bounds, limitToBounds, paddingValueX, paddingValueY, wrapperComponent), x = _b.x, y = _b.y;\n    contextInstance.setTransformState(scale, x, y);\n}\nvar getPanningClientPosition = function (contextInstance, clientX, clientY) {\n    var startCoords = contextInstance.startCoords, transformState = contextInstance.transformState;\n    var panning = contextInstance.setup.panning;\n    var lockAxisX = panning.lockAxisX, lockAxisY = panning.lockAxisY;\n    var positionX = transformState.positionX, positionY = transformState.positionY;\n    if (!startCoords) {\n        return { x: positionX, y: positionY };\n    }\n    var mouseX = clientX - startCoords.x;\n    var mouseY = clientY - startCoords.y;\n    var newPositionX = lockAxisX ? positionX : mouseX;\n    var newPositionY = lockAxisY ? positionY : mouseY;\n    return { x: newPositionX, y: newPositionY };\n};\nvar getPaddingValue = function (contextInstance, size) {\n    var setup = contextInstance.setup, transformState = contextInstance.transformState;\n    var scale = transformState.scale;\n    var minScale = setup.minScale;\n    if (size > 0 && scale >= minScale) {\n        return size;\n    }\n    return 0;\n};\n\nvar isVelocityCalculationAllowed = function (contextInstance) {\n    var mounted = contextInstance.mounted;\n    var _a = contextInstance.setup, disabled = _a.disabled, velocityAnimation = _a.velocityAnimation;\n    var scale = contextInstance.transformState.scale;\n    var disabledVelocity = velocityAnimation.disabled;\n    var isAllowed = !disabledVelocity || scale > 1 || !disabled || mounted;\n    if (!isAllowed)\n        return false;\n    return true;\n};\nvar isVelocityAllowed = function (contextInstance) {\n    var mounted = contextInstance.mounted, velocity = contextInstance.velocity, bounds = contextInstance.bounds;\n    var _a = contextInstance.setup, disabled = _a.disabled, velocityAnimation = _a.velocityAnimation;\n    var scale = contextInstance.transformState.scale;\n    var disabledVelocity = velocityAnimation.disabled;\n    var isAllowed = !disabledVelocity || scale > 1 || !disabled || mounted;\n    if (!isAllowed)\n        return false;\n    if (!velocity || !bounds)\n        return false;\n    return true;\n};\nfunction getVelocityMoveTime(contextInstance, velocity) {\n    var velocityAnimation = contextInstance.setup.velocityAnimation;\n    var equalToMove = velocityAnimation.equalToMove, animationTime = velocityAnimation.animationTime, sensitivity = velocityAnimation.sensitivity;\n    if (equalToMove) {\n        return animationTime * velocity * sensitivity;\n    }\n    return animationTime;\n}\nfunction getVelocityPosition(newPosition, startPosition, currentPosition, isLocked, limitToBounds, minPosition, maxPosition, minTarget, maxTarget, step) {\n    if (limitToBounds) {\n        if (startPosition > maxPosition && currentPosition > maxPosition) {\n            var calculatedPosition = maxPosition + (newPosition - maxPosition) * step;\n            if (calculatedPosition > maxTarget)\n                return maxTarget;\n            if (calculatedPosition < maxPosition)\n                return maxPosition;\n            return calculatedPosition;\n        }\n        if (startPosition < minPosition && currentPosition < minPosition) {\n            var calculatedPosition = minPosition + (newPosition - minPosition) * step;\n            if (calculatedPosition < minTarget)\n                return minTarget;\n            if (calculatedPosition > minPosition)\n                return minPosition;\n            return calculatedPosition;\n        }\n    }\n    if (isLocked)\n        return startPosition;\n    return boundLimiter(newPosition, minPosition, maxPosition, limitToBounds);\n}\n\nfunction getSizeMultiplier(wrapperComponent, equalToMove) {\n    var defaultMultiplier = 1;\n    if (equalToMove) {\n        return Math.min(defaultMultiplier, wrapperComponent.offsetWidth / window.innerWidth);\n    }\n    return defaultMultiplier;\n}\nfunction handleCalculateVelocity(contextInstance, position) {\n    var isAllowed = isVelocityCalculationAllowed(contextInstance);\n    if (!isAllowed) {\n        return;\n    }\n    var lastMousePosition = contextInstance.lastMousePosition, velocityTime = contextInstance.velocityTime, setup = contextInstance.setup;\n    var wrapperComponent = contextInstance.wrapperComponent;\n    var equalToMove = setup.velocityAnimation.equalToMove;\n    var now = Date.now();\n    if (lastMousePosition && velocityTime && wrapperComponent) {\n        var sizeMultiplier = getSizeMultiplier(wrapperComponent, equalToMove);\n        var distanceX = position.x - lastMousePosition.x;\n        var distanceY = position.y - lastMousePosition.y;\n        var velocityX = distanceX / sizeMultiplier;\n        var velocityY = distanceY / sizeMultiplier;\n        var interval = now - velocityTime;\n        var speed = distanceX * distanceX + distanceY * distanceY;\n        var velocity = Math.sqrt(speed) / interval;\n        contextInstance.velocity = { velocityX: velocityX, velocityY: velocityY, total: velocity };\n    }\n    contextInstance.lastMousePosition = position;\n    contextInstance.velocityTime = now;\n}\nfunction handleVelocityPanning(contextInstance) {\n    var velocity = contextInstance.velocity, bounds = contextInstance.bounds, setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n    var isAllowed = isVelocityAllowed(contextInstance);\n    if (!isAllowed || !velocity || !bounds || !wrapperComponent) {\n        return;\n    }\n    var velocityX = velocity.velocityX, velocityY = velocity.velocityY, total = velocity.total;\n    var maxPositionX = bounds.maxPositionX, minPositionX = bounds.minPositionX, maxPositionY = bounds.maxPositionY, minPositionY = bounds.minPositionY;\n    var limitToBounds = setup.limitToBounds, alignmentAnimation = setup.alignmentAnimation;\n    var zoomAnimation = setup.zoomAnimation, panning = setup.panning;\n    var lockAxisY = panning.lockAxisY, lockAxisX = panning.lockAxisX;\n    var animationType = zoomAnimation.animationType;\n    var sizeX = alignmentAnimation.sizeX, sizeY = alignmentAnimation.sizeY, velocityAlignmentTime = alignmentAnimation.velocityAlignmentTime;\n    var alignAnimationTime = velocityAlignmentTime;\n    var moveAnimationTime = getVelocityMoveTime(contextInstance, total);\n    var finalAnimationTime = Math.max(moveAnimationTime, alignAnimationTime);\n    var paddingValueX = getPaddingValue(contextInstance, sizeX);\n    var paddingValueY = getPaddingValue(contextInstance, sizeY);\n    var paddingX = (paddingValueX * wrapperComponent.offsetWidth) / 100;\n    var paddingY = (paddingValueY * wrapperComponent.offsetHeight) / 100;\n    var maxTargetX = maxPositionX + paddingX;\n    var minTargetX = minPositionX - paddingX;\n    var maxTargetY = maxPositionY + paddingY;\n    var minTargetY = minPositionY - paddingY;\n    var startState = contextInstance.transformState;\n    var startTime = new Date().getTime();\n    handleSetupAnimation(contextInstance, animationType, finalAnimationTime, function (step) {\n        var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n        var frameTime = new Date().getTime() - startTime;\n        var animationProgress = frameTime / alignAnimationTime;\n        var alignAnimation = animations[alignmentAnimation.animationType];\n        var alignStep = 1 - alignAnimation(Math.min(1, animationProgress));\n        var customStep = 1 - step;\n        var newPositionX = positionX + velocityX * customStep;\n        var newPositionY = positionY + velocityY * customStep;\n        var currentPositionX = getVelocityPosition(newPositionX, startState.positionX, positionX, lockAxisX, limitToBounds, minPositionX, maxPositionX, minTargetX, maxTargetX, alignStep);\n        var currentPositionY = getVelocityPosition(newPositionY, startState.positionY, positionY, lockAxisY, limitToBounds, minPositionY, maxPositionY, minTargetY, maxTargetY, alignStep);\n        if (positionX !== newPositionX || positionY !== newPositionY) {\n            contextInstance.setTransformState(scale, currentPositionX, currentPositionY);\n        }\n    });\n}\n\nfunction handlePanningStart(contextInstance, event) {\n    var scale = contextInstance.transformState.scale;\n    handleCancelAnimation(contextInstance);\n    handleCalculateBounds(contextInstance, scale);\n    if (event.touches) {\n        handleTouchPanningSetup(contextInstance, event);\n    }\n    else {\n        handlePanningSetup(contextInstance, event);\n    }\n}\nfunction handlePanning(contextInstance, clientX, clientY) {\n    var startCoords = contextInstance.startCoords, setup = contextInstance.setup;\n    var _a = setup.alignmentAnimation, sizeX = _a.sizeX, sizeY = _a.sizeY;\n    if (!startCoords)\n        return;\n    var _b = getPanningClientPosition(contextInstance, clientX, clientY), x = _b.x, y = _b.y;\n    var paddingValueX = getPaddingValue(contextInstance, sizeX);\n    var paddingValueY = getPaddingValue(contextInstance, sizeY);\n    handleCalculateVelocity(contextInstance, { x: x, y: y });\n    handleNewPosition(contextInstance, x, y, paddingValueX, paddingValueY);\n}\nfunction handlePanningEnd(contextInstance) {\n    if (contextInstance.isPanning) {\n        var velocityDisabled = contextInstance.setup.panning.velocityDisabled;\n        var velocity = contextInstance.velocity, wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n        contextInstance.isPanning = false;\n        contextInstance.animate = false;\n        contextInstance.animation = null;\n        var wrapperRect = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.getBoundingClientRect();\n        var contentRect = contentComponent === null || contentComponent === void 0 ? void 0 : contentComponent.getBoundingClientRect();\n        var wrapperWidth = (wrapperRect === null || wrapperRect === void 0 ? void 0 : wrapperRect.width) || 0;\n        var wrapperHeight = (wrapperRect === null || wrapperRect === void 0 ? void 0 : wrapperRect.height) || 0;\n        var contentWidth = (contentRect === null || contentRect === void 0 ? void 0 : contentRect.width) || 0;\n        var contentHeight = (contentRect === null || contentRect === void 0 ? void 0 : contentRect.height) || 0;\n        var isZoomed = wrapperWidth < contentWidth || wrapperHeight < contentHeight;\n        var shouldAnimate = !velocityDisabled && velocity && (velocity === null || velocity === void 0 ? void 0 : velocity.total) > 0.1 && isZoomed;\n        if (shouldAnimate) {\n            handleVelocityPanning(contextInstance);\n        }\n        else {\n            handleAlignToBounds(contextInstance);\n        }\n    }\n}\nfunction handleAlignToBounds(contextInstance) {\n    var scale = contextInstance.transformState.scale;\n    var _a = contextInstance.setup, minScale = _a.minScale, alignmentAnimation = _a.alignmentAnimation;\n    var disabled = alignmentAnimation.disabled, sizeX = alignmentAnimation.sizeX, sizeY = alignmentAnimation.sizeY, animationTime = alignmentAnimation.animationTime, animationType = alignmentAnimation.animationType;\n    var isDisabled = disabled || scale < minScale || (!sizeX && !sizeY);\n    if (isDisabled)\n        return;\n    var targetState = handlePanToBounds(contextInstance);\n    if (targetState) {\n        animate(contextInstance, targetState, animationTime, animationType);\n    }\n}\n\nfunction handleAlignToScaleBounds(contextInstance, mousePositionX, mousePositionY) {\n    var scale = contextInstance.transformState.scale;\n    var wrapperComponent = contextInstance.wrapperComponent;\n    var _a = contextInstance.setup, minScale = _a.minScale, limitToBounds = _a.limitToBounds, zoomAnimation = _a.zoomAnimation;\n    var disabled = zoomAnimation.disabled, animationTime = zoomAnimation.animationTime, animationType = zoomAnimation.animationType;\n    var isDisabled = disabled || scale >= minScale;\n    if (scale >= 1 || limitToBounds) {\n        // fire fit to bounds animation\n        handleAlignToBounds(contextInstance);\n    }\n    if (isDisabled || !wrapperComponent || !contextInstance.mounted)\n        return;\n    var mouseX = mousePositionX || wrapperComponent.offsetWidth / 2;\n    var mouseY = mousePositionY || wrapperComponent.offsetHeight / 2;\n    var targetState = handleZoomToPoint(contextInstance, minScale, mouseX, mouseY);\n    if (targetState) {\n        animate(contextInstance, targetState, animationTime, animationType);\n    }\n}\nfunction handleZoomToPoint(contextInstance, scale, mouseX, mouseY) {\n    var _a = contextInstance.setup, minScale = _a.minScale, maxScale = _a.maxScale, limitToBounds = _a.limitToBounds;\n    var newScale = checkZoomBounds(roundNumber(scale, 2), minScale, maxScale, 0, false);\n    var bounds = handleCalculateBounds(contextInstance, newScale);\n    var _b = handleCalculateZoomPositions(contextInstance, mouseX, mouseY, newScale, bounds, limitToBounds), x = _b.x, y = _b.y;\n    return { scale: newScale, positionX: x, positionY: y };\n}\n\nvar initialState = {\n    previousScale: 1,\n    scale: 1,\n    positionX: 0,\n    positionY: 0,\n};\nvar contextInitialState = __assign(__assign({}, initialState), { setComponents: function () { return undefined; }, contextInstance: null });\nvar initialSetup = {\n    disabled: false,\n    minPositionX: null,\n    maxPositionX: null,\n    minPositionY: null,\n    maxPositionY: null,\n    minScale: 1,\n    maxScale: 8,\n    limitToBounds: true,\n    centerZoomedOut: false,\n    centerOnInit: false,\n    wheel: {\n        step: 0.2,\n        disabled: false,\n        wheelDisabled: false,\n        touchPadDisabled: false,\n        activationKeys: [],\n        excluded: [],\n    },\n    panning: {\n        disabled: false,\n        velocityDisabled: false,\n        lockAxisX: false,\n        lockAxisY: false,\n        activationKeys: [],\n        excluded: [],\n    },\n    pinch: {\n        step: 5,\n        disabled: false,\n        excluded: [],\n    },\n    doubleClick: {\n        disabled: false,\n        step: 0.7,\n        mode: \"zoomIn\",\n        animationType: \"easeOut\",\n        animationTime: 200,\n        excluded: [],\n    },\n    zoomAnimation: {\n        disabled: false,\n        size: 0.4,\n        animationTime: 200,\n        animationType: \"easeOut\",\n    },\n    alignmentAnimation: {\n        disabled: false,\n        sizeX: 100,\n        sizeY: 100,\n        animationTime: 200,\n        velocityAlignmentTime: 400,\n        animationType: \"easeOut\",\n    },\n    velocityAnimation: {\n        disabled: false,\n        sensitivity: 1,\n        animationTime: 400,\n        animationType: \"easeOut\",\n        equalToMove: true,\n    },\n};\n\nvar createState = function (props) {\n    var _a, _b, _c, _d;\n    return {\n        previousScale: (_a = props.initialScale) !== null && _a !== void 0 ? _a : initialState.scale,\n        scale: (_b = props.initialScale) !== null && _b !== void 0 ? _b : initialState.scale,\n        positionX: (_c = props.initialPositionX) !== null && _c !== void 0 ? _c : initialState.positionX,\n        positionY: (_d = props.initialPositionY) !== null && _d !== void 0 ? _d : initialState.positionY,\n    };\n};\nvar createSetup = function (props) {\n    var newSetup = __assign({}, initialSetup);\n    Object.keys(props).forEach(function (key) {\n        var validValue = typeof props[key] !== \"undefined\";\n        var validParameter = typeof initialSetup[key] !== \"undefined\";\n        if (validParameter && validValue) {\n            var dataType = Object.prototype.toString.call(initialSetup[key]);\n            var isObject = dataType === \"[object Object]\";\n            var isArray = dataType === \"[object Array]\";\n            if (isObject) {\n                newSetup[key] = __assign(__assign({}, initialSetup[key]), props[key]);\n            }\n            else if (isArray) {\n                newSetup[key] = __spreadArray(__spreadArray([], initialSetup[key]), props[key]);\n            }\n            else {\n                newSetup[key] = props[key];\n            }\n        }\n    });\n    return newSetup;\n};\n\nvar handleCalculateButtonZoom = function (contextInstance, delta, step) {\n    var scale = contextInstance.transformState.scale;\n    var wrapperComponent = contextInstance.wrapperComponent, setup = contextInstance.setup;\n    var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation;\n    var size = zoomAnimation.size;\n    if (!wrapperComponent) {\n        throw new Error(\"Wrapper is not mounted\");\n    }\n    var targetScale = scale * Math.exp(delta * step);\n    var newScale = checkZoomBounds(roundNumber(targetScale, 3), minScale, maxScale, size, false);\n    return newScale;\n};\nfunction handleZoomToViewCenter(contextInstance, delta, step, animationTime, animationType) {\n    var wrapperComponent = contextInstance.wrapperComponent;\n    var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n    if (!wrapperComponent)\n        return console.error(\"No WrapperComponent found\");\n    var wrapperWidth = wrapperComponent.offsetWidth;\n    var wrapperHeight = wrapperComponent.offsetHeight;\n    var mouseX = (wrapperWidth / 2 - positionX) / scale;\n    var mouseY = (wrapperHeight / 2 - positionY) / scale;\n    var newScale = handleCalculateButtonZoom(contextInstance, delta, step);\n    var targetState = handleZoomToPoint(contextInstance, newScale, mouseX, mouseY);\n    if (!targetState) {\n        return console.error(\"Error during zoom event. New transformation state was not calculated.\");\n    }\n    animate(contextInstance, targetState, animationTime, animationType);\n}\nfunction resetTransformations(contextInstance, animationTime, animationType) {\n    var setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n    var limitToBounds = setup.limitToBounds;\n    var initialTransformation = createState(contextInstance.props);\n    var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n    if (!wrapperComponent)\n        return;\n    var newBounds = calculateBounds(contextInstance, initialTransformation.scale);\n    var boundedPositions = getMouseBoundedPosition(initialTransformation.positionX, initialTransformation.positionY, newBounds, limitToBounds, 0, 0, wrapperComponent);\n    var newState = {\n        scale: initialTransformation.scale,\n        positionX: boundedPositions.x,\n        positionY: boundedPositions.y,\n    };\n    if (scale === initialTransformation.scale &&\n        positionX === initialTransformation.positionX &&\n        positionY === initialTransformation.positionY) {\n        return;\n    }\n    animate(contextInstance, newState, animationTime, animationType);\n}\nfunction calculateZoomToNode(contextInstance, node, customZoom) {\n    var wrapperComponent = contextInstance.wrapperComponent;\n    var _a = contextInstance.setup, limitToBounds = _a.limitToBounds, minScale = _a.minScale, maxScale = _a.maxScale;\n    if (!wrapperComponent)\n        return initialState;\n    var wrapperRect = wrapperComponent.getBoundingClientRect();\n    var nodeRect = getOffset(node);\n    var nodeLeft = nodeRect.x;\n    var nodeTop = nodeRect.y;\n    var nodeWidth = node.offsetWidth;\n    var nodeHeight = node.offsetHeight;\n    var scaleX = wrapperComponent.offsetWidth / nodeWidth;\n    var scaleY = wrapperComponent.offsetHeight / nodeHeight;\n    var newScale = checkZoomBounds(customZoom || Math.min(scaleX, scaleY), minScale, maxScale, 0, false);\n    var offsetX = (wrapperRect.width - nodeWidth * newScale) / 2;\n    var offsetY = (wrapperRect.height - nodeHeight * newScale) / 2;\n    var newPositionX = (wrapperRect.left - nodeLeft) * newScale + offsetX;\n    var newPositionY = (wrapperRect.top - nodeTop) * newScale + offsetY;\n    var bounds = calculateBounds(contextInstance, newScale);\n    var _b = getMouseBoundedPosition(newPositionX, newPositionY, bounds, limitToBounds, 0, 0, wrapperComponent), x = _b.x, y = _b.y;\n    return { positionX: x, positionY: y, scale: newScale };\n}\nfunction getOffset(element) {\n    var el = element;\n    var offsetLeft = 0;\n    var offsetTop = 0;\n    while (el) {\n        offsetLeft += el.offsetLeft;\n        offsetTop += el.offsetTop;\n        el = el.offsetParent;\n    }\n    return {\n        x: offsetLeft,\n        y: offsetTop,\n    };\n}\nfunction isValidZoomNode(node) {\n    if (!node) {\n        console.error(\"Zoom node not found\");\n        return false;\n    }\n    else if ((node === null || node === void 0 ? void 0 : node.offsetWidth) === undefined ||\n        (node === null || node === void 0 ? void 0 : node.offsetHeight) === undefined) {\n        console.error(\"Zoom node is not valid - it must contain offsetWidth and offsetHeight\");\n        return false;\n    }\n    return true;\n}\n\nvar zoomIn = function (contextInstance) { return function (step, animationTime, animationType) {\n    if (step === void 0) { step = 0.5; }\n    if (animationTime === void 0) { animationTime = 300; }\n    if (animationType === void 0) { animationType = \"easeOut\"; }\n    handleZoomToViewCenter(contextInstance, 1, step, animationTime, animationType);\n}; };\nvar zoomOut = function (contextInstance) { return function (step, animationTime, animationType) {\n    if (step === void 0) { step = 0.5; }\n    if (animationTime === void 0) { animationTime = 300; }\n    if (animationType === void 0) { animationType = \"easeOut\"; }\n    handleZoomToViewCenter(contextInstance, -1, step, animationTime, animationType);\n}; };\nvar setTransform = function (contextInstance) { return function (newPositionX, newPositionY, newScale, animationTime, animationType) {\n    if (animationTime === void 0) { animationTime = 300; }\n    if (animationType === void 0) { animationType = \"easeOut\"; }\n    var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;\n    var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n    var disabled = contextInstance.setup.disabled;\n    if (disabled || !wrapperComponent || !contentComponent)\n        return;\n    var targetState = {\n        positionX: isNaN(newPositionX) ? positionX : newPositionX,\n        positionY: isNaN(newPositionY) ? positionY : newPositionY,\n        scale: isNaN(newScale) ? scale : newScale,\n    };\n    animate(contextInstance, targetState, animationTime, animationType);\n}; };\nvar resetTransform = function (contextInstance) { return function (animationTime, animationType) {\n    if (animationTime === void 0) { animationTime = 200; }\n    if (animationType === void 0) { animationType = \"easeOut\"; }\n    resetTransformations(contextInstance, animationTime, animationType);\n}; };\nvar centerView = function (contextInstance) { return function (scale, animationTime, animationType) {\n    if (animationTime === void 0) { animationTime = 200; }\n    if (animationType === void 0) { animationType = \"easeOut\"; }\n    var transformState = contextInstance.transformState, wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n    if (wrapperComponent && contentComponent) {\n        var targetState = getCenterPosition(scale || transformState.scale, wrapperComponent, contentComponent);\n        animate(contextInstance, targetState, animationTime, animationType);\n    }\n}; };\nvar zoomToElement = function (contextInstance) { return function (node, scale, animationTime, animationType) {\n    if (animationTime === void 0) { animationTime = 600; }\n    if (animationType === void 0) { animationType = \"easeOut\"; }\n    handleCancelAnimation(contextInstance);\n    var wrapperComponent = contextInstance.wrapperComponent;\n    var target = typeof node === \"string\" ? document.getElementById(node) : node;\n    if (wrapperComponent &&\n        isValidZoomNode(target) &&\n        target &&\n        wrapperComponent.contains(target)) {\n        var targetState = calculateZoomToNode(contextInstance, target, scale);\n        animate(contextInstance, targetState, animationTime, animationType);\n    }\n}; };\n\nvar getContext = function (contextInstance) {\n    return {\n        instance: contextInstance,\n        state: contextInstance.transformState,\n        zoomIn: zoomIn(contextInstance),\n        zoomOut: zoomOut(contextInstance),\n        setTransform: setTransform(contextInstance),\n        resetTransform: resetTransform(contextInstance),\n        centerView: centerView(contextInstance),\n        zoomToElement: zoomToElement(contextInstance),\n    };\n};\n\n// We want to make event listeners non-passive, and to do so have to check\n// that browsers support EventListenerOptions in the first place.\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nvar passiveSupported = false;\nfunction makePassiveEventOption() {\n    try {\n        var options = {\n            get passive() {\n                // This function will be called when the browser\n                //   attempts to access the passive property.\n                passiveSupported = true;\n                return false;\n            },\n        };\n        return options;\n    }\n    catch (err) {\n        passiveSupported = false;\n        return passiveSupported;\n    }\n}\n\nvar isExcludedNode = function (node, excluded) {\n    var targetTagName = node.tagName.toUpperCase();\n    var isExcludedTag = excluded.find(function (tag) { return tag.toUpperCase() === targetTagName; });\n    if (isExcludedTag)\n        return true;\n    var isExcludedClassName = excluded.find(function (className) {\n        return node.classList.contains(className);\n    });\n    if (isExcludedClassName)\n        return true;\n    return false;\n};\nvar cancelTimeout = function (timeout) {\n    if (timeout) {\n        clearTimeout(timeout);\n    }\n};\n\nvar getTransformStyles = function (x, y, scale) {\n    return \"translate3d(\" + x + \"px, \" + y + \"px, 0) scale(\" + scale + \")\";\n};\nvar getCenterPosition = function (scale, wrapperComponent, contentComponent) {\n    var contentWidth = contentComponent.offsetWidth * scale;\n    var contentHeight = contentComponent.offsetHeight * scale;\n    var centerPositionX = (wrapperComponent.offsetWidth - contentWidth) / 2;\n    var centerPositionY = (wrapperComponent.offsetHeight - contentHeight) / 2;\n    return {\n        scale: scale,\n        positionX: centerPositionX,\n        positionY: centerPositionY,\n    };\n};\n\nvar isWheelAllowed = function (contextInstance, event) {\n    var _a = contextInstance.setup.wheel, disabled = _a.disabled, wheelDisabled = _a.wheelDisabled, touchPadDisabled = _a.touchPadDisabled, excluded = _a.excluded;\n    var isInitialized = contextInstance.isInitialized, isPanning = contextInstance.isPanning;\n    var target = event.target;\n    var isAllowed = isInitialized && !isPanning && !disabled && target;\n    if (!isAllowed)\n        return false;\n    // Event ctrlKey detects if touchpad action is executing wheel or pinch gesture\n    if (wheelDisabled && !event.ctrlKey)\n        return false;\n    if (touchPadDisabled && event.ctrlKey)\n        return false;\n    var isExcluded = isExcludedNode(target, excluded);\n    if (isExcluded)\n        return false;\n    return true;\n};\nfunction getDelta(event, customDelta) {\n    var deltaY = event ? (event.deltaY < 0 ? 1 : -1) : 0;\n    var delta = checkIsNumber(customDelta, deltaY);\n    return delta;\n}\nfunction getMousePosition(event, contentComponent, scale) {\n    var contentRect = contentComponent.getBoundingClientRect();\n    var mouseX = 0;\n    var mouseY = 0;\n    if (\"clientX\" in event) {\n        // mouse position x, y over wrapper component\n        mouseX = (event.clientX - contentRect.left) / scale;\n        mouseY = (event.clientY - contentRect.top) / scale;\n    }\n    else {\n        var touch = event.touches[0];\n        mouseX = (touch.clientX - contentRect.left) / scale;\n        mouseY = (touch.clientY - contentRect.top) / scale;\n    }\n    if (isNaN(mouseX) || isNaN(mouseY))\n        console.error(\"No mouse or touch offset found\");\n    return {\n        x: mouseX,\n        y: mouseY,\n    };\n}\nvar handleCalculateWheelZoom = function (contextInstance, delta, step, disablePadding, getTarget) {\n    var scale = contextInstance.transformState.scale;\n    var wrapperComponent = contextInstance.wrapperComponent, setup = contextInstance.setup;\n    var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation;\n    var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n    if (!wrapperComponent) {\n        throw new Error(\"Wrapper is not mounted\");\n    }\n    var targetScale = scale + delta * (scale - scale * step) * step;\n    if (getTarget)\n        return targetScale;\n    var paddingEnabled = disablePadding ? false : !disabled;\n    var newScale = checkZoomBounds(roundNumber(targetScale, 3), minScale, maxScale, size, paddingEnabled);\n    return newScale;\n};\nvar handleWheelZoomStop = function (contextInstance, event) {\n    var previousWheelEvent = contextInstance.previousWheelEvent;\n    var scale = contextInstance.transformState.scale;\n    var _a = contextInstance.setup, maxScale = _a.maxScale, minScale = _a.minScale;\n    if (!previousWheelEvent)\n        return false;\n    if (scale < maxScale || scale > minScale)\n        return true;\n    if (Math.sign(previousWheelEvent.deltaY) !== Math.sign(event.deltaY))\n        return true;\n    if (previousWheelEvent.deltaY > 0 && previousWheelEvent.deltaY < event.deltaY)\n        return true;\n    if (previousWheelEvent.deltaY < 0 && previousWheelEvent.deltaY > event.deltaY)\n        return true;\n    if (Math.sign(previousWheelEvent.deltaY) !== Math.sign(event.deltaY))\n        return true;\n    return false;\n};\n\nvar isPinchStartAllowed = function (contextInstance, event) {\n    var _a = contextInstance.setup.pinch, disabled = _a.disabled, excluded = _a.excluded;\n    var isInitialized = contextInstance.isInitialized;\n    var target = event.target;\n    var isAllowed = isInitialized && !disabled && target;\n    if (!isAllowed)\n        return false;\n    var isExcluded = isExcludedNode(target, excluded);\n    if (isExcluded)\n        return false;\n    return true;\n};\nvar isPinchAllowed = function (contextInstance) {\n    var disabled = contextInstance.setup.pinch.disabled;\n    var isInitialized = contextInstance.isInitialized, pinchStartDistance = contextInstance.pinchStartDistance;\n    var isAllowed = isInitialized && !disabled && pinchStartDistance;\n    if (!isAllowed)\n        return false;\n    return true;\n};\nvar calculateTouchMidPoint = function (event, scale, contentComponent) {\n    var contentRect = contentComponent.getBoundingClientRect();\n    var touches = event.touches;\n    var firstPointX = roundNumber(touches[0].clientX - contentRect.left, 5);\n    var firstPointY = roundNumber(touches[0].clientY - contentRect.top, 5);\n    var secondPointX = roundNumber(touches[1].clientX - contentRect.left, 5);\n    var secondPointY = roundNumber(touches[1].clientY - contentRect.top, 5);\n    return {\n        x: (firstPointX + secondPointX) / 2 / scale,\n        y: (firstPointY + secondPointY) / 2 / scale,\n    };\n};\nvar getTouchDistance = function (event) {\n    return Math.sqrt(Math.pow(event.touches[0].pageX - event.touches[1].pageX, 2) +\n        Math.pow(event.touches[0].pageY - event.touches[1].pageY, 2));\n};\nvar calculatePinchZoom = function (contextInstance, currentDistance) {\n    var pinchStartScale = contextInstance.pinchStartScale, pinchStartDistance = contextInstance.pinchStartDistance, setup = contextInstance.setup;\n    var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation;\n    var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n    if (!pinchStartScale || pinchStartDistance === null || !currentDistance) {\n        throw new Error(\"Pinch touches distance was not provided\");\n    }\n    if (currentDistance < 0) {\n        return contextInstance.transformState.scale;\n    }\n    var touchProportion = currentDistance / pinchStartDistance;\n    var scaleDifference = touchProportion * pinchStartScale;\n    return checkZoomBounds(roundNumber(scaleDifference, 2), minScale, maxScale, size, !disabled);\n};\n\nvar wheelStopEventTime = 160;\nvar wheelAnimationTime = 100;\nvar handleWheelStart = function (contextInstance, event) {\n    var _a = contextInstance.props, onWheelStart = _a.onWheelStart, onZoomStart = _a.onZoomStart;\n    if (!contextInstance.wheelStopEventTimer) {\n        handleCancelAnimation(contextInstance);\n        handleCallback(getContext(contextInstance), event, onWheelStart);\n        handleCallback(getContext(contextInstance), event, onZoomStart);\n    }\n};\nvar handleWheelZoom = function (contextInstance, event) {\n    var _a = contextInstance.props, onWheel = _a.onWheel, onZoom = _a.onZoom;\n    var contentComponent = contextInstance.contentComponent, setup = contextInstance.setup, transformState = contextInstance.transformState;\n    var scale = transformState.scale;\n    var limitToBounds = setup.limitToBounds, centerZoomedOut = setup.centerZoomedOut, zoomAnimation = setup.zoomAnimation, wheel = setup.wheel;\n    var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n    var step = wheel.step;\n    if (!contentComponent) {\n        throw new Error(\"Component not mounted\");\n    }\n    event.preventDefault();\n    event.stopPropagation();\n    var delta = getDelta(event, null);\n    var newScale = handleCalculateWheelZoom(contextInstance, delta, step, !event.ctrlKey);\n    // if scale not change\n    if (scale === newScale)\n        return;\n    var bounds = handleCalculateBounds(contextInstance, newScale);\n    var mousePosition = getMousePosition(event, contentComponent, scale);\n    var isPaddingDisabled = disabled || size === 0 || centerZoomedOut;\n    var isLimitedToBounds = limitToBounds && isPaddingDisabled;\n    var _b = handleCalculateZoomPositions(contextInstance, mousePosition.x, mousePosition.y, newScale, bounds, isLimitedToBounds), x = _b.x, y = _b.y;\n    contextInstance.previousWheelEvent = event;\n    contextInstance.setTransformState(newScale, x, y);\n    handleCallback(getContext(contextInstance), event, onWheel);\n    handleCallback(getContext(contextInstance), event, onZoom);\n};\nvar handleWheelStop = function (contextInstance, event) {\n    var _a = contextInstance.props, onWheelStop = _a.onWheelStop, onZoomStop = _a.onZoomStop;\n    // fire animation\n    cancelTimeout(contextInstance.wheelAnimationTimer);\n    contextInstance.wheelAnimationTimer = setTimeout(function () {\n        if (!contextInstance.mounted)\n            return;\n        handleAlignToScaleBounds(contextInstance, event.x, event.y);\n        contextInstance.wheelAnimationTimer = null;\n    }, wheelAnimationTime);\n    // Wheel stop event\n    var hasStoppedZooming = handleWheelZoomStop(contextInstance, event);\n    if (hasStoppedZooming) {\n        cancelTimeout(contextInstance.wheelStopEventTimer);\n        contextInstance.wheelStopEventTimer = setTimeout(function () {\n            if (!contextInstance.mounted)\n                return;\n            contextInstance.wheelStopEventTimer = null;\n            handleCallback(getContext(contextInstance), event, onWheelStop);\n            handleCallback(getContext(contextInstance), event, onZoomStop);\n        }, wheelStopEventTime);\n    }\n};\n\nvar handlePinchStart = function (contextInstance, event) {\n    var distance = getTouchDistance(event);\n    contextInstance.pinchStartDistance = distance;\n    contextInstance.lastDistance = distance;\n    contextInstance.pinchStartScale = contextInstance.transformState.scale;\n    contextInstance.isPanning = false;\n    handleCancelAnimation(contextInstance);\n};\nvar handlePinchZoom = function (contextInstance, event) {\n    var contentComponent = contextInstance.contentComponent, pinchStartDistance = contextInstance.pinchStartDistance;\n    var scale = contextInstance.transformState.scale;\n    var _a = contextInstance.setup, limitToBounds = _a.limitToBounds, centerZoomedOut = _a.centerZoomedOut, zoomAnimation = _a.zoomAnimation;\n    var disabled = zoomAnimation.disabled, size = zoomAnimation.size;\n    // if one finger starts from outside of wrapper\n    if (pinchStartDistance === null || !contentComponent)\n        return;\n    var midPoint = calculateTouchMidPoint(event, scale, contentComponent);\n    // if touches goes off of the wrapper element\n    if (!isFinite(midPoint.x) || !isFinite(midPoint.y))\n        return;\n    var currentDistance = getTouchDistance(event);\n    var newScale = calculatePinchZoom(contextInstance, currentDistance);\n    if (newScale === scale)\n        return;\n    var bounds = handleCalculateBounds(contextInstance, newScale);\n    var isPaddingDisabled = disabled || size === 0 || centerZoomedOut;\n    var isLimitedToBounds = limitToBounds && isPaddingDisabled;\n    var _b = handleCalculateZoomPositions(contextInstance, midPoint.x, midPoint.y, newScale, bounds, isLimitedToBounds), x = _b.x, y = _b.y;\n    contextInstance.pinchMidpoint = midPoint;\n    contextInstance.lastDistance = currentDistance;\n    contextInstance.setTransformState(newScale, x, y);\n};\nvar handlePinchStop = function (contextInstance) {\n    var pinchMidpoint = contextInstance.pinchMidpoint;\n    contextInstance.velocity = null;\n    contextInstance.lastDistance = null;\n    contextInstance.pinchMidpoint = null;\n    contextInstance.pinchStartScale = null;\n    contextInstance.pinchStartDistance = null;\n    handleAlignToScaleBounds(contextInstance, pinchMidpoint === null || pinchMidpoint === void 0 ? void 0 : pinchMidpoint.x, pinchMidpoint === null || pinchMidpoint === void 0 ? void 0 : pinchMidpoint.y);\n};\n\nfunction handleDoubleClick(contextInstance, event) {\n    var _a = contextInstance.setup.doubleClick, disabled = _a.disabled, mode = _a.mode, step = _a.step, animationTime = _a.animationTime, animationType = _a.animationType;\n    if (disabled)\n        return;\n    if (mode === \"reset\") {\n        return resetTransformations(contextInstance, animationTime, animationType);\n    }\n    var scale = contextInstance.transformState.scale;\n    var contentComponent = contextInstance.contentComponent;\n    if (!contentComponent)\n        return console.error(\"No ContentComponent found\");\n    var delta = mode === \"zoomOut\" ? -1 : 1;\n    var newScale = handleCalculateButtonZoom(contextInstance, delta, step);\n    var mousePosition = getMousePosition(event, contentComponent, scale);\n    var targetState = handleZoomToPoint(contextInstance, newScale, mousePosition.x, mousePosition.y);\n    if (!targetState) {\n        return console.error(\"Error during zoom event. New transformation state was not calculated.\");\n    }\n    animate(contextInstance, targetState, animationTime, animationType);\n}\nvar isDoubleClickAllowed = function (contextInstance, event) {\n    var isInitialized = contextInstance.isInitialized, setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n    var _a = setup.doubleClick, disabled = _a.disabled, excluded = _a.excluded;\n    var target = event.target;\n    var isWrapperChild = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.contains(target);\n    var isAllowed = isInitialized && target && isWrapperChild && !disabled;\n    if (!isAllowed)\n        return false;\n    var isExcluded = isExcludedNode(target, excluded);\n    if (isExcluded)\n        return false;\n    if (!isAllowed)\n        return false;\n    return true;\n};\n\nvar Context = React.createContext(contextInitialState);\nvar TransformContext = /** @class */ (function (_super) {\n    __extends(TransformContext, _super);\n    function TransformContext() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.mounted = true;\n        _this.transformState = createState(_this.props);\n        _this.setup = createSetup(_this.props);\n        // Components\n        _this.wrapperComponent = null;\n        _this.contentComponent = null;\n        // Initialization\n        _this.isInitialized = false;\n        _this.bounds = null;\n        // wheel helpers\n        _this.previousWheelEvent = null;\n        _this.wheelStopEventTimer = null;\n        _this.wheelAnimationTimer = null;\n        // panning helpers\n        _this.isPanning = false;\n        _this.startCoords = null;\n        _this.lastTouch = null;\n        // pinch helpers\n        _this.distance = null;\n        _this.lastDistance = null;\n        _this.pinchStartDistance = null;\n        _this.pinchStartScale = null;\n        _this.pinchMidpoint = null;\n        // velocity helpers\n        _this.velocity = null;\n        _this.velocityTime = null;\n        _this.lastMousePosition = null;\n        // animations helpers\n        _this.animate = false;\n        _this.animation = null;\n        _this.maxBounds = null;\n        // key press\n        _this.pressedKeys = {};\n        _this.handleInitializeWrapperEvents = function (wrapper) {\n            // Zooming events on wrapper\n            var passive = makePassiveEventOption();\n            wrapper.addEventListener(\"wheel\", _this.onWheelZoom, passive);\n            wrapper.addEventListener(\"dblclick\", _this.onDoubleClick, passive);\n            wrapper.addEventListener(\"touchstart\", _this.onTouchPanningStart, passive);\n            wrapper.addEventListener(\"touchmove\", _this.onTouchPanning, passive);\n            wrapper.addEventListener(\"touchend\", _this.onTouchPanningStop, passive);\n        };\n        _this.handleInitialize = function () {\n            var centerOnInit = _this.setup.centerOnInit;\n            _this.applyTransformation();\n            _this.forceUpdate();\n            if (centerOnInit) {\n                // this has to be redone once the right solution is found\n                // problem is - we need to execute it after mounted component specify it's height / width, images are fetched async so it's tricky\n                setTimeout(function () {\n                    if (_this.mounted) {\n                        _this.setCenter();\n                    }\n                }, 50);\n                setTimeout(function () {\n                    if (_this.mounted) {\n                        _this.setCenter();\n                    }\n                }, 100);\n                setTimeout(function () {\n                    if (_this.mounted) {\n                        _this.setCenter();\n                    }\n                }, 200);\n            }\n        };\n        //////////\n        // Zoom\n        //////////\n        _this.onWheelZoom = function (event) {\n            var disabled = _this.setup.disabled;\n            if (disabled)\n                return;\n            var isAllowed = isWheelAllowed(_this, event);\n            if (!isAllowed)\n                return;\n            var keysPressed = _this.isPressingKeys(_this.setup.wheel.activationKeys);\n            if (!keysPressed)\n                return;\n            handleWheelStart(_this, event);\n            handleWheelZoom(_this, event);\n            handleWheelStop(_this, event);\n        };\n        //////////\n        // Pan\n        //////////\n        _this.onPanningStart = function (event) {\n            var disabled = _this.setup.disabled;\n            var onPanningStart = _this.props.onPanningStart;\n            if (disabled)\n                return;\n            var isAllowed = isPanningStartAllowed(_this, event);\n            if (!isAllowed)\n                return;\n            var keysPressed = _this.isPressingKeys(_this.setup.panning.activationKeys);\n            if (!keysPressed)\n                return;\n            event.preventDefault();\n            event.stopPropagation();\n            handleCancelAnimation(_this);\n            handlePanningStart(_this, event);\n            handleCallback(getContext(_this), event, onPanningStart);\n        };\n        _this.onPanning = function (event) {\n            var disabled = _this.setup.disabled;\n            var onPanning = _this.props.onPanning;\n            if (disabled)\n                return;\n            var isAllowed = isPanningAllowed(_this);\n            if (!isAllowed)\n                return;\n            var keysPressed = _this.isPressingKeys(_this.setup.panning.activationKeys);\n            if (!keysPressed)\n                return;\n            event.preventDefault();\n            event.stopPropagation();\n            handlePanning(_this, event.clientX, event.clientY);\n            handleCallback(getContext(_this), event, onPanning);\n        };\n        _this.onPanningStop = function (event) {\n            var onPanningStop = _this.props.onPanningStop;\n            if (_this.isPanning) {\n                handlePanningEnd(_this);\n                handleCallback(getContext(_this), event, onPanningStop);\n            }\n        };\n        //////////\n        // Pinch\n        //////////\n        _this.onPinchStart = function (event) {\n            var disabled = _this.setup.disabled;\n            var _a = _this.props, onPinchingStart = _a.onPinchingStart, onZoomStart = _a.onZoomStart;\n            if (disabled)\n                return;\n            var isAllowed = isPinchStartAllowed(_this, event);\n            if (!isAllowed)\n                return;\n            handlePinchStart(_this, event);\n            handleCancelAnimation(_this);\n            handleCallback(getContext(_this), event, onPinchingStart);\n            handleCallback(getContext(_this), event, onZoomStart);\n        };\n        _this.onPinch = function (event) {\n            var disabled = _this.setup.disabled;\n            var _a = _this.props, onPinching = _a.onPinching, onZoom = _a.onZoom;\n            if (disabled)\n                return;\n            var isAllowed = isPinchAllowed(_this);\n            if (!isAllowed)\n                return;\n            event.preventDefault();\n            event.stopPropagation();\n            handlePinchZoom(_this, event);\n            handleCallback(getContext(_this), event, onPinching);\n            handleCallback(getContext(_this), event, onZoom);\n        };\n        _this.onPinchStop = function (event) {\n            var _a = _this.props, onPinchingStop = _a.onPinchingStop, onZoomStop = _a.onZoomStop;\n            if (_this.pinchStartScale) {\n                handlePinchStop(_this);\n                handleCallback(getContext(_this), event, onPinchingStop);\n                handleCallback(getContext(_this), event, onZoomStop);\n            }\n        };\n        //////////\n        // Touch\n        //////////\n        _this.onTouchPanningStart = function (event) {\n            var disabled = _this.setup.disabled;\n            var onPanningStart = _this.props.onPanningStart;\n            if (disabled)\n                return;\n            var isAllowed = isPanningStartAllowed(_this, event);\n            if (!isAllowed)\n                return;\n            var isDoubleTap = _this.lastTouch && +new Date() - _this.lastTouch < 200;\n            if (isDoubleTap && event.touches.length === 1) {\n                _this.onDoubleClick(event);\n            }\n            else {\n                _this.lastTouch = +new Date();\n                handleCancelAnimation(_this);\n                var touches = event.touches;\n                var isPanningAction = touches.length === 1;\n                var isPinchAction = touches.length === 2;\n                if (isPanningAction) {\n                    handleCancelAnimation(_this);\n                    handlePanningStart(_this, event);\n                    handleCallback(getContext(_this), event, onPanningStart);\n                }\n                if (isPinchAction) {\n                    _this.onPinchStart(event);\n                }\n            }\n        };\n        _this.onTouchPanning = function (event) {\n            var disabled = _this.setup.disabled;\n            var onPanning = _this.props.onPanning;\n            if (_this.isPanning && event.touches.length === 1) {\n                if (disabled)\n                    return;\n                var isAllowed = isPanningAllowed(_this);\n                if (!isAllowed)\n                    return;\n                event.preventDefault();\n                event.stopPropagation();\n                var touch = event.touches[0];\n                handlePanning(_this, touch.clientX, touch.clientY);\n                handleCallback(getContext(_this), event, onPanning);\n            }\n            else if (event.touches.length > 1) {\n                _this.onPinch(event);\n            }\n        };\n        _this.onTouchPanningStop = function (event) {\n            _this.onPanningStop(event);\n            _this.onPinchStop(event);\n        };\n        //////////\n        // Double Click\n        //////////\n        _this.onDoubleClick = function (event) {\n            var disabled = _this.setup.disabled;\n            if (disabled)\n                return;\n            var isAllowed = isDoubleClickAllowed(_this, event);\n            if (!isAllowed)\n                return;\n            handleDoubleClick(_this, event);\n        };\n        //////////\n        // Helpers\n        //////////\n        _this.clearPanning = function (event) {\n            if (_this.isPanning) {\n                _this.onPanningStop(event);\n            }\n        };\n        _this.setKeyPressed = function (e) {\n            _this.pressedKeys[e.key] = true;\n        };\n        _this.setKeyUnPressed = function (e) {\n            _this.pressedKeys[e.key] = false;\n        };\n        _this.isPressingKeys = function (keys) {\n            if (!keys.length) {\n                return true;\n            }\n            return Boolean(keys.find(function (key) { return _this.pressedKeys[key]; }));\n        };\n        _this.setComponents = function (wrapperComponent, contentComponent) {\n            _this.wrapperComponent = wrapperComponent;\n            _this.contentComponent = contentComponent;\n            handleCalculateBounds(_this, _this.transformState.scale);\n            _this.handleInitializeWrapperEvents(wrapperComponent);\n            _this.handleInitialize();\n            _this.handleRef();\n            _this.isInitialized = true;\n            handleCallback(getContext(_this), undefined, _this.props.onInit);\n        };\n        _this.setTransformState = function (scale, positionX, positionY) {\n            if (!isNaN(scale) && !isNaN(positionX) && !isNaN(positionY)) {\n                if (scale !== _this.transformState.scale) {\n                    _this.transformState.previousScale = _this.transformState.scale;\n                    _this.transformState.scale = scale;\n                }\n                _this.transformState.positionX = positionX;\n                _this.transformState.positionY = positionY;\n                _this.applyTransformation();\n            }\n            else {\n                console.error(\"Detected NaN set state values\");\n            }\n        };\n        _this.setCenter = function () {\n            if (_this.wrapperComponent && _this.contentComponent) {\n                var targetState = getCenterPosition(_this.transformState.scale, _this.wrapperComponent, _this.contentComponent);\n                _this.setTransformState(targetState.scale, targetState.positionX, targetState.positionY);\n            }\n        };\n        _this.applyTransformation = function () {\n            if (!_this.mounted || !_this.contentComponent)\n                return;\n            var _a = _this.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n            var transform = getTransformStyles(positionX, positionY, scale);\n            _this.contentComponent.style.transform = transform;\n            _this.handleRef();\n        };\n        _this.handleRef = function () {\n            _this.props.setRef(getContext(_this));\n        };\n        return _this;\n    }\n    TransformContext.prototype.componentDidMount = function () {\n        var passive = makePassiveEventOption();\n        // Panning on window to allow panning when mouse is out of component wrapper\n        window.addEventListener(\"mousedown\", this.onPanningStart, passive);\n        window.addEventListener(\"mousemove\", this.onPanning, passive);\n        window.addEventListener(\"mouseup\", this.onPanningStop, passive);\n        document.addEventListener(\"mouseleave\", this.clearPanning, passive);\n        window.addEventListener(\"keyup\", this.setKeyUnPressed, passive);\n        window.addEventListener(\"keydown\", this.setKeyPressed, passive);\n        this.handleRef();\n    };\n    TransformContext.prototype.componentWillUnmount = function () {\n        var passive = makePassiveEventOption();\n        window.removeEventListener(\"mousedown\", this.onPanningStart, passive);\n        window.removeEventListener(\"mousemove\", this.onPanning, passive);\n        window.removeEventListener(\"mouseup\", this.onPanningStop, passive);\n        window.removeEventListener(\"keyup\", this.setKeyUnPressed, passive);\n        window.removeEventListener(\"keydown\", this.setKeyPressed, passive);\n        handleCancelAnimation(this);\n    };\n    TransformContext.prototype.componentDidUpdate = function (oldProps) {\n        if (oldProps !== this.props) {\n            handleCalculateBounds(this, this.transformState.scale);\n            this.setup = createSetup(this.props);\n        }\n    };\n    TransformContext.prototype.render = function () {\n        var value = getContext(this);\n        var children = this.props.children;\n        var content = typeof children === \"function\" ? children(value) : children;\n        return (React.createElement(Context.Provider, { value: __assign(__assign({}, this.transformState), { setComponents: this.setComponents, contextInstance: this }) }, content));\n    };\n    return TransformContext;\n}(Component));\n\nvar TransformWrapper = React.forwardRef(function (props, ref) {\n    var _a = useState(null), innerRef = _a[0], setRef = _a[1];\n    useImperativeHandle(ref, function () { return innerRef; }, [innerRef]);\n    return React.createElement(TransformContext, __assign({}, props, { setRef: setRef }));\n});\n\nfunction styleInject(css, ref) {\n  if ( ref === void 0 ) ref = {};\n  var insertAt = ref.insertAt;\n\n  if (!css || typeof document === 'undefined') { return; }\n\n  var head = document.head || document.getElementsByTagName('head')[0];\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild);\n    } else {\n      head.appendChild(style);\n    }\n  } else {\n    head.appendChild(style);\n  }\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nvar css_248z = \".transform-component-module_wrapper__1_Fgj {\\n  position: relative;\\n  width: -moz-fit-content;\\n  width: fit-content;\\n  height: -moz-fit-content;\\n  height: fit-content;\\n  overflow: hidden;\\n  -webkit-touch-callout: none; /* iOS Safari */\\n  -webkit-user-select: none; /* Safari */\\n  -khtml-user-select: none; /* Konqueror HTML */\\n  -moz-user-select: none; /* Firefox */\\n  -ms-user-select: none; /* Internet Explorer/Edge */\\n  user-select: none;\\n  margin: 0;\\n  padding: 0;\\n}\\n.transform-component-module_content__2jYgh {\\n  display: flex;\\n  flex-wrap: wrap;\\n  width: -moz-fit-content;\\n  width: fit-content;\\n  height: -moz-fit-content;\\n  height: fit-content;\\n  margin: 0;\\n  padding: 0;\\n  transform-origin: 0% 0%;\\n}\\n.transform-component-module_content__2jYgh img {\\n  pointer-events: none;\\n}\\n\";\nvar styles = {\"wrapper\":\"transform-component-module_wrapper__1_Fgj\",\"content\":\"transform-component-module_content__2jYgh\"};\nstyleInject(css_248z);\n\nvar TransformComponent = function (_a) {\n    var children = _a.children, _b = _a.wrapperClass, wrapperClass = _b === void 0 ? \"\" : _b, _c = _a.contentClass, contentClass = _c === void 0 ? \"\" : _c, wrapperStyle = _a.wrapperStyle, contentStyle = _a.contentStyle;\n    var setComponents = useContext(Context).setComponents;\n    var wrapperRef = useRef(null);\n    var contentRef = useRef(null);\n    useEffect(function () {\n        var wrapper = wrapperRef.current;\n        var content = contentRef.current;\n        if (wrapper !== null && content !== null && setComponents) {\n            setComponents(wrapper, content);\n        }\n    }, []);\n    return (React.createElement(\"div\", { ref: wrapperRef, className: \"react-transform-wrapper \" + styles.wrapper + \" \" + wrapperClass, style: wrapperStyle },\n        React.createElement(\"div\", { ref: contentRef, className: \"react-transform-component \" + styles.content + \" \" + contentClass, style: contentStyle }, children)));\n};\n\nvar useTransformContext = function () {\n    var libraryContext = useContext(Context);\n    if (!libraryContext.contextInstance) {\n        throw new Error(\"Transform context mus be placed inside TransformWrapper\");\n    }\n    return getContext(libraryContext.contextInstance);\n};\n\nexport { TransformComponent, TransformWrapper, useTransformContext };\n//# sourceMappingURL=index.esm.js.map\n","\nvar content = require(\"!!../css-loader/dist/cjs.js?sourceMap=true!./keen-slider.min.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"sourceMap\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../css-loader/dist/cjs.js?sourceMap=true!./keen-slider.min.css\", function() {\n\t\tvar newContent = require(\"!!../css-loader/dist/cjs.js?sourceMap=true!./keen-slider.min.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","/**\n * keen-slider 5.5.1\n * The HTML touch slider carousel with the most native feeling you will get.\n * https://keen-slider.io\n * Copyright 2020-2021 Eric Beyer <contact@ericbeyer.de>\n * License: MIT\n * Released on: 2021-06-10\n */\n\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports,require(\"react\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).KeenSlider={},t.react)}(this,(function(t,e){\"use strict\";function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?r(Object(i),!0).forEach((function(e){n(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):r(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,u=t[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return n}(t,e)||u(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function a(t){return function(t){if(Array.isArray(t))return c(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||u(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 u(t,e){if(t){if(\"string\"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function f(t){var e,n,r,o,u,c,f,s,h,v,p,b,m,g,y,w,M,j,O,S,A,x,k,P,E,T,D,C,L,I,V,X,Y,_,q=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},z=\"data-keen-slider-moves\",F=\"data-keen-slider-v\",H=[],R=null,K=!1,W=!1,N=0,U=[];function $(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t.addEventListener(e,n,r),H.push([t,e,n,r])}function B(t){if(j&&O===Z(t)&&ft()){var n=et(t).x;if(!rt(t)&&P)return J(t);P&&(Kt(),S=n,P=!1),t.cancelable&&t.preventDefault();var r=S-n;E+=Math.abs(r),!T&&E>5&&(T=!0,e.setAttribute(z,!0)),Xt(k(r,Gt)*(lt()?-1:1),t.timeStamp),S=n}}function G(t){j||!ft()||nt(t.target)||(j=!0,P=!0,O=Z(t),T=!1,E=0,rt(t),pt(),M=v,S=et(t).x,Xt(0,t.timeStamp),ut(\"dragStart\"))}function J(t){j&&O===Z(t,!0)&&ft()&&(e.removeAttribute(z),j=!1,gt(),ut(\"dragEnd\"))}function Q(t){return t.changedTouches}function Z(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?Q(t):tt(t);return n?n[0]?n[0].identifier:\"error\":\"default\"}function tt(t){return t.targetTouches}function et(t){var e=tt(t);return{x:ht()?e?e[0].screenY:t.pageY:e?e[0].screenX:t.pageX,timestamp:t.timeStamp}}function nt(t){return t.hasAttribute(w.preventEvent)}function rt(t){var e=tt(t);if(!e)return!0;var n=e[0],r=ht()?n.clientY:n.clientX,i=ht()?n.clientX:n.clientY,o=void 0!==A&&void 0!==x&&Math.abs(x-i)<=Math.abs(A-r);return A=r,x=i,o}function it(t){ft()&&j&&t.preventDefault()}function ot(){$(window,\"orientationchange\",Dt),$(window,\"resize\",(function(){return Tt()})),$(e,\"dragstart\",(function(t){ft()&&t.preventDefault()})),$(e,\"mousedown\",G),$(w.cancelOnLeave?e:window,\"mousemove\",B),w.cancelOnLeave&&$(e,\"mouseleave\",J),$(window,\"mouseup\",J),$(e,\"touchstart\",G,{passive:!0}),$(e,\"touchmove\",B,{passive:!1}),$(e,\"touchend\",J,{passive:!0}),$(e,\"touchcancel\",J,{passive:!0}),$(window,\"wheel\",it,{passive:!1})}function at(){H.forEach((function(t){t[0].removeEventListener(t[1],t[2],t[3])})),H=[]}function ut(t){w[t]&&w[t](Gt)}function ct(){return w.centered}function ft(){return void 0!==n?n:w.controls}function st(){return w.loop&&r>1}function lt(){return w.rtl}function dt(){return!w.loop&&w.rubberband}function ht(){return!!w.vertical}function vt(){D=window.requestAnimationFrame(bt)}function pt(){D&&(window.cancelAnimationFrame(D),D=null),C=null}function bt(t){C||(C=t);var e=t-C,n=mt(e);if(e>=I)return Xt(L-X,!1),_?_():void ut(\"afterChange\");var r=Yt(n);if(0===r||st()||dt()||Y){if(0!==r&&dt()&&!Y)return Ot();X+=n,Xt(n,!1),vt()}else Xt(n-r,!1)}function mt(t){return L*V(t/I)-X}function gt(){switch(ut(\"beforeChange\"),w.mode){case\"free\":Mt();break;case\"free-snap\":jt();break;case\"snap\":default:yt()}}function yt(){wt((1===f&&0!==p?M:v)+Math.sign(p))}function wt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:w.duration,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=function(t){return 1+--t*t*t*t*t};St(Ft(t=zt(t,r,i)),n,o,e)}function Mt(){if(0===m)return!(!Yt(0)||st())&&wt(v);var t=w.friction/Math.pow(Math.abs(m),-.5);St(Math.pow(m,2)/t*Math.sign(m),6*Math.abs(m/t),(function(t){return 1-Math.pow(1-t,5)}))}function jt(){if(0===m)return wt(v);var t=w.friction/Math.pow(Math.abs(m),-.5),e=Math.pow(m,2)/t*Math.sign(m),n=6*Math.abs(m/t),r=(N+e)/(c/f);St((-1===p?Math.floor(r):Math.ceil(r))*(c/f)-N,n,(function(t){return 1-Math.pow(1-t,5)}))}function Ot(){if(pt(),0===m)return wt(v,!0);var t=.04/Math.pow(Math.abs(m),-.5),e=Math.pow(m,2)/t*Math.sign(m),n=function(t){return--t*t*t+1},r=m;St(e,3*Math.abs(r/t),n,!0,(function(){St(Ft(zt(v)),500,n,!0)}))}function St(t,e,n,r,i){pt(),L=t,X=0,I=e,V=n,Y=r,_=i,C=null,vt()}function At(n){var r=l(t);r.length&&(e=r[0],Tt(n),ot(),ut(\"mounted\"))}function xt(){var t,e=q.breakpoints||[];for(var n in e)window.matchMedia(n).matches&&(t=n);if(t===R)return!0;var r=(R=t)?e[R]:q;r.breakpoints&&R&&delete r.breakpoints,w=i(i(i({},Bt),q),r),K=!0,h=null,ut(\"optionsChanged\"),Et()}function kt(t){if(\"function\"==typeof t)return t();var e=w.autoAdjustSlidesPerView;e||(r=Math.max(t,r));var n=st()&&e?r-1:r;return d(t,1,Math.max(n,1))}function Pt(){xt(),W=!0,ut(\"created\")}function Et(t,e){t&&(q=t),e&&(R=null),Ct(),At(e)}function Tt(t){var n=window.innerWidth;if(xt()&&(n!==h||t)){h=n;var i=w.slides;\"number\"==typeof i?(u=null,r=i):(u=l(i,e),r=u?u.length:0);var a=w.dragSpeed;k=\"function\"==typeof a?a:function(t){return t*a},c=ht()?e.offsetHeight:e.offsetWidth,f=kt(w.slidesPerView),s=d(w.spacing,0,c/(f-1)-1),c+=s,o=ct()?(c/2-c/f/2)/c:0,It();var p=!W||K&&w.resetSlide?w.initial:v;$t(st()?p:_t(p)),ht()&&e.setAttribute(F,!0),K=!1}}function Dt(t){Tt(),setTimeout(Tt,500),setTimeout(Tt,2e3)}function Ct(){at(),Vt(),e&&e.hasAttribute(F)&&e.removeAttribute(F),ut(\"destroyed\")}function Lt(){u&&u.forEach((function(t,e){var n=g[e].distance*c-e*(c/f-s/f-s/f*(f-1)),r=ht()?0:n,i=ht()?n:0,o=\"translate3d(\".concat(r,\"px, \").concat(i,\"px, 0)\");t.style.transform=o,t.style[\"-webkit-transform\"]=o}))}function It(){u&&u.forEach((function(t){var e=\"calc(\".concat(100/f,\"% - \").concat(s/f*(f-1),\"px)\");ht()?(t.style[\"min-height\"]=e,t.style[\"max-height\"]=e):(t.style[\"min-width\"]=e,t.style[\"max-width\"]=e)}))}function Vt(){if(u){var t=[\"transform\",\"-webkit-transform\"];t=[].concat(a(t),ht?[\"min-height\",\"max-height\"]:[\"min-width\",\"max-width\"]),u.forEach((function(e){t.forEach((function(t){e.style.removeProperty(t)}))}))}}function Xt(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now();Rt(t,n),e&&(t=Nt(t)),N+=t,Wt()}function Yt(t){var e=c*(r-1*(ct()?1:f))/f,n=N+t;return n>e?n-e:n<0?n:0}function _t(t){return d(t,0,r-1-(ct()?0:f-1))}function qt(){var t=Math.abs(y),e=N<0?1-t:t;return{direction:p,progressTrack:e,progressSlides:e*r/(r-1),positions:g,position:N,speed:m,relativeSlide:(v%r+r)%r,absoluteSlide:v,size:r,slidesPerView:f,widthOrHeight:c}}function zt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return st()?e?Ht(t,n):t:_t(t)}function Ft(t){return-(-c/f*t+N)}function Ht(t,e){var n=(v%r+r)%r,i=n<(t=(t%r+r)%r)?-n-r+t:-(n-t),o=n>t?r-n+t:t-n,a=e?Math.abs(i)<=o?i:o:t<n?i:o;return v+a}function Rt(t,e){clearTimeout(b);var n=Math.sign(t);if(n!==p&&Kt(),p=n,U.push({distance:t,time:e}),b=setTimeout((function(){U=[],m=0}),50),(U=U.slice(-6)).length<=1||0===p)return m=0;var r=U.slice(0,-1).reduce((function(t,e){return t+e.distance}),0),i=U[U.length-1].time,o=U[0].time;m=d(r/(i-o),-10,10)}function Kt(){U=[]}function Wt(){y=st()?N%(c*r/f)/(c*r/f):N/(c*r/f),Ut();for(var t=[],e=0;e<r;e++){var n=(1/r*e-(y<0&&st()?y+1:y))*r/f+o;st()&&(n+=n>(r-1)/f?-r/f:n<-r/f+1?r/f:0);var i=1/f,a=n+i,u=a<i?a/i:a>1?1-(a-1)*f/1:1;t.push({portion:u<0||u>1?0:u,distance:lt()?-1*n+1-i:n})}g=t,Lt(),ut(\"move\")}function Nt(t){if(st())return t;var e=Yt(t);if(!dt())return t-e;if(0===e)return t;var n;return t*(n=e/c,(1-Math.abs(n))*(1-Math.abs(n)))}function Ut(){var t=Math.round(N/(c/f));t!==v&&(!st()&&(t<0||t>r-1)||(v=t,ut(\"slideChanged\")))}function $t(t){ut(\"beforeChange\"),Xt(Ft(t),!1),ut(\"afterChange\")}var Bt={autoAdjustSlidesPerView:!0,centered:!1,breakpoints:null,controls:!0,dragSpeed:1,friction:.0025,loop:!1,initial:0,duration:500,preventEvent:\"data-keen-slider-pe\",slides:\".keen-slider__slide\",vertical:!1,resetSlide:!1,slidesPerView:1,spacing:0,mode:\"snap\",rtl:!1,rubberband:!0,cancelOnLeave:!0},Gt={controls:function(t){n=t},destroy:Ct,refresh:function(t){Et(t,!0)},next:function(){wt(v+1,!0)},prev:function(){wt(v-1,!0)},moveToSlide:function(t,e){wt(t,!0,e)},moveToSlideRelative:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;wt(t,!0,n,!0,e)},resize:function(){Tt(!0)},details:function(){return qt()},options:function(){var t=i({},w);return delete t.breakpoints,t}};return Pt(),Gt}function s(t){return Array.prototype.slice.call(t)}function l(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return\"function\"==typeof t?s(t()):\"string\"==typeof t?s(e.querySelectorAll(t)):t instanceof HTMLElement!=!1?[t]:t instanceof NodeList!=!1?t:[]}function d(t,e,n){return Math.min(Math.max(t,e),n)}Math.sign||(Math.sign=function(t){return(t>0)-(t<0)||+t});var h=function t(e,n){var r=Object.prototype.toString.call(e);if(r!==Object.prototype.toString.call(n))return!1;if([\"[object Array]\",\"[object Object]\"].indexOf(r)<0)return!1;var i=\"[object Array]\"===r?e.length:Object.keys(e).length;if(i!==(\"[object Array]\"===r?n.length:Object.keys(n).length))return!1;var o=function(e,n){var r=Object.prototype.toString.call(e);if([\"[object Array]\",\"[object Object]\"].indexOf(r)>=0){if(!t(e,n))return!1}else{if(r!==Object.prototype.toString.call(n))return!1;if(\"[object Function]\"===r){if(e.toString()!==n.toString())return!1}else if(e!==n)return!1}};if(\"[object Array]\"===r){for(var a=0;a<i;a++)if(!1===o(e[a],n[a]))return!1}else for(var u in e)if(e.hasOwnProperty(u)&&!1===o(e[u],n[u]))return!1;return!0};t.default=f,t.useKeenSlider=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.useRef(),r=e.useRef();function i(t){return h(r.current,t)||(r.current=t),r.current}var a=e.useState(null),u=o(a,2),c=u[0],s=u[1];return e.useEffect((function(){var t=new f(n.current,r.current);return s(t),function(){t.destroy()}}),[i(t)]),[n,c]},Object.defineProperty(t,\"__esModule\",{value:!0})}));\n//# sourceMappingURL=react.js.map\n","exports = module.exports = require(\"../css-loader/dist/runtime/api.js\")(true);\n// Module\nexports.push([module.id, \".keen-slider{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.keen-slider,.keen-slider__slide{overflow:hidden;position:relative}.keen-slider__slide{width:100%;min-height:100%}.keen-slider[data-keen-slider-v]{flex-wrap:wrap}.keen-slider[data-keen-slider-v] .keen-slider__slide{width:100%}.keen-slider[data-keen-slider-moves] *{pointer-events:none}\\n/*# sourceMappingURL=keen-slider.min.css.map */\", \"\",{\"version\":3,\"sources\":[\"keen-slider.scss\",\"keen-slider.min.css\"],\"names\":[],\"mappings\":\"AAAA,aACE,YAAa,CAGb,wBAAiB,CAAjB,qBAAiB,CAAjB,oBAAiB,CAAjB,gBAAiB,CACjB,0BAA2B,CAC3B,uBAAwB,CAExB,kBAAmB,CACnB,uCACF,CACA,iCATE,eAAgB,CAChB,iBAaF,CALA,oBAGE,UAAW,CACX,eACF,CACA,iCACE,cACF,CACA,qDACE,UACF,CACA,uCACE,mBACF;ACxBA,8CAA8C\",\"file\":\"keen-slider.min.css\",\"sourcesContent\":[\".keen-slider {\\n  display: flex;\\n  overflow: hidden;\\n  position: relative;\\n  user-select: none;\\n  -webkit-touch-callout: none;\\n  -khtml-user-select: none;\\n  -ms-touch-action: pan-y;\\n  touch-action: pan-y;\\n  -webkit-tap-highlight-color: transparent;\\n}\\n.keen-slider__slide {\\n  position: relative;\\n  overflow: hidden;\\n  width: 100%;\\n  min-height: 100%;\\n}\\n.keen-slider[data-keen-slider-v] {\\n  flex-wrap: wrap;\\n}\\n.keen-slider[data-keen-slider-v] .keen-slider__slide {\\n  width: 100%;\\n}\\n.keen-slider[data-keen-slider-moves] * {\\n  pointer-events: none;\\n}\",\".keen-slider{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.keen-slider,.keen-slider__slide{overflow:hidden;position:relative}.keen-slider__slide{width:100%;min-height:100%}.keen-slider[data-keen-slider-v]{flex-wrap:wrap}.keen-slider[data-keen-slider-v] .keen-slider__slide{width:100%}.keen-slider[data-keen-slider-moves] *{pointer-events:none}\\n/*# sourceMappingURL=keen-slider.min.css.map */\"]}]);\n"],"sourceRoot":""}