/*! lightense-image v1.0.9 | © Tunghsiao Liu | MIT */ (function webpackUniversalModuleDefinition(root,factory){if(typeof exports==="object"&&typeof module==="object")module.exports=factory();else if(typeof define==="function"&&define.amd)define([],factory);else if(typeof exports==="object")exports["Lightense"]=factory();else root["Lightense"]=factory()})(window,(function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:true,get:getter})}};__webpack_require__.r=function(exports){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(exports,"__esModule",{value:true})};__webpack_require__.t=function(value,mode){if(mode&1)value=__webpack_require__(value);if(mode&8)return value;if(mode&4&&typeof value==="object"&&value&&value.__esModule)return value;var ns=Object.create(null);__webpack_require__.r(ns);Object.defineProperty(ns,"default",{enumerable:true,value:value});if(mode&2&&typeof value!="string")for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key]}.bind(null,key));return ns};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=0)}([function(module,exports){function _objectSpread(target){for(var i=1;i>16&255,color>>8&255,color&255].join(", ")+", 1)"}if(ifRgb(input)){return input.replace(")",", 1)")}if(ifRgba(input)){return input}return defaults.background}function computeBackgroundSafari(color){var background=hexToRgbA(color);var factor=.7;var regex=/([\d.]+)\)$/g;var alpha=regex.exec(background)[1];return background.replace(regex,alpha*factor+")")}function insertCss(styleId,styleContent){var head=d.head||d.getElementsByTagName("head")[0];if(d.getElementById(styleId)){d.getElementById(styleId).remove()}var styleEl=d.createElement("style");styleEl.id=styleId;if(styleEl.styleSheet){styleEl.styleSheet.cssText=styleContent}else{styleEl.appendChild(d.createTextNode(styleContent))}head.appendChild(styleEl)}function createDefaultCss(){var css="\n:root {\n --lightense-z-index: ".concat(config.zIndex-1,";\n --lightense-backdrop: ").concat(config.background,";\n --lightense-backdrop-safari: ").concat(computeBackgroundSafari(config.background),";\n --lightense-duration: ").concat(config.time,"ms;\n --lightense-timing-func: ").concat(config.cubicBezier,";\n}\n\n.lightense-backdrop {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n z-index: calc(var(--lightense-z-index) - 1);\n padding: 0;\n margin: 0;\n transition: opacity var(--lightense-duration) ease;\n cursor: zoom-out;\n opacity: 0;\n background-color: var(--lightense-backdrop);\n visibility: hidden;\n}\n\n@supports (-webkit-backdrop-filter: blur(30px)) {\n .lightense-backdrop {\n background-color: var(--lightense-backdrop-safari);\n -webkit-backdrop-filter: blur(30px);\n }\n}\n\n@supports (backdrop-filter: blur(30px)) {\n .lightense-backdrop {\n background-color: var(--lightense-backdrop-safari);\n backdrop-filter: blur(30px);\n }\n}\n\n.lightense-wrap {\n position: relative;\n transition: transform var(--lightense-duration) var(--lightense-timing-func);\n z-index: var(--lightense-z-index);\n pointer-events: none;\n}\n\n.lightense-target {\n cursor: zoom-in;\n transition: transform var(--lightense-duration) var(--lightense-timing-func);\n pointer-events: auto;\n}\n\n.lightense-open {\n cursor: zoom-out;\n}\n\n.lightense-transitioning {\n pointer-events: none;\n}");insertCss("lightense-image-css",css)}function createBackdrop(){if(!d.querySelector(".lightense-backdrop")){config.container=d.createElement("div");config.container.className="lightense-backdrop";d.body.appendChild(config.container)}}function createTransform(img){var naturalWidth=img.width;var naturalHeight=img.height;var scrollTop=w.pageYOffset||d.documentElement.scrollTop||0;var scrollLeft=w.pageXOffset||d.documentElement.scrollLeft||0;var targetImage=config.target.getBoundingClientRect();var maxScaleFactor=naturalWidth/targetImage.width;var viewportWidth=w.innerWidth||d.documentElement.clientWidth||0;var viewportHeight=w.innerHeight||d.documentElement.clientHeight||0;var viewportPadding=config.target.getAttribute("data-lightense-padding")||config.target.getAttribute("data-padding")||config.padding;var viewportWidthOffset=viewportWidth>viewportPadding?viewportWidth-viewportPadding:viewportWidth-defaults.padding;var viewportHeightOffset=viewportHeight>viewportPadding?viewportHeight-viewportPadding:viewportHeight-defaults.padding;var imageRatio=naturalWidth/naturalHeight;var viewportRatio=viewportWidthOffset/viewportHeightOffset;if(naturalWidth=config.offset){removeViewer()}}function once(target,event,handler){target.addEventListener(event,(function fn(args){Reflect.apply(handler,this,args);target.removeEventListener(event,fn)}))}function init(element){config.target=element;if(config.target.classList.contains("lightense-open")){return removeViewer()}invokeCustomHook("beforeShow");config.scrollY=w.scrollY;once(config.target,"transitionend",(function(){invokeCustomHook("afterShow")}));var img=new Image;img.onload=function(){createTransform(this);createViewer();bindEvents()};img.src=config.target.src}function bindEvents(){w.addEventListener("keyup",onKeyUp,false);w.addEventListener("scroll",checkViewer,false);config.container.addEventListener("click",removeViewer,false)}function unbindEvents(){w.removeEventListener("keyup",onKeyUp,false);w.removeEventListener("scroll",checkViewer,false);config.container.removeEventListener("click",removeViewer,false)}function onKeyUp(event){event.preventDefault();if(event.keyCode===27){removeViewer()}}function main(target){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};elements=getElements(target);config=_objectSpread({},defaults,options);createDefaultCss();createBackdrop();startTracking(elements)}return main};var singleton=Lightense();module.exports=singleton}])}));