| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622 | 
							- /*! medium-zoom 1.0.6 | MIT License | https://github.com/francoischalifour/medium-zoom */
 
- var _extends = Object.assign || function (target) {
 
-   for (var i = 1; i < arguments.length; i++) {
 
-     var source = arguments[i];
 
-     for (var key in source) {
 
-       if (Object.prototype.hasOwnProperty.call(source, key)) {
 
-         target[key] = source[key];
 
-       }
 
-     }
 
-   }
 
-   return target;
 
- };
 
- var isSupported = function isSupported(node) {
 
-   return node.tagName === 'IMG';
 
- };
 
- /* eslint-disable-next-line no-prototype-builtins */
 
- var isNodeList = function isNodeList(selector) {
 
-   return NodeList.prototype.isPrototypeOf(selector);
 
- };
 
- var isNode = function isNode(selector) {
 
-   return selector && selector.nodeType === 1;
 
- };
 
- var isSvg = function isSvg(image) {
 
-   var source = image.currentSrc || image.src;
 
-   return source.substr(-4).toLowerCase() === '.svg';
 
- };
 
- var getImagesFromSelector = function getImagesFromSelector(selector) {
 
-   try {
 
-     if (Array.isArray(selector)) {
 
-       return selector.filter(isSupported);
 
-     }
 
-     if (isNodeList(selector)) {
 
-       // Do not use spread operator or Array.from() for IE support
 
-       return [].slice.call(selector).filter(isSupported);
 
-     }
 
-     if (isNode(selector)) {
 
-       return [selector].filter(isSupported);
 
-     }
 
-     if (typeof selector === 'string') {
 
-       // Do not use spread operator or Array.from() for IE support
 
-       return [].slice.call(document.querySelectorAll(selector)).filter(isSupported);
 
-     }
 
-     return [];
 
-   } catch (err) {
 
-     throw new TypeError('The provided selector is invalid.\n' + 'Expects a CSS selector, a Node element, a NodeList or an array.\n' + 'See: https://github.com/francoischalifour/medium-zoom');
 
-   }
 
- };
 
- var createOverlay = function createOverlay(background) {
 
-   var overlay = document.createElement('div');
 
-   overlay.classList.add('medium-zoom-overlay');
 
-   overlay.style.background = background;
 
-   return overlay;
 
- };
 
- var cloneTarget = function cloneTarget(template) {
 
-   var _template$getBounding = template.getBoundingClientRect(),
 
-       top = _template$getBounding.top,
 
-       left = _template$getBounding.left,
 
-       width = _template$getBounding.width,
 
-       height = _template$getBounding.height;
 
-   var clone = template.cloneNode();
 
-   var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
 
-   var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
 
-   clone.removeAttribute('id');
 
-   clone.style.position = 'absolute';
 
-   clone.style.top = top + scrollTop + 'px';
 
-   clone.style.left = left + scrollLeft + 'px';
 
-   clone.style.width = width + 'px';
 
-   clone.style.height = height + 'px';
 
-   clone.style.transform = '';
 
-   return clone;
 
- };
 
- var createCustomEvent = function createCustomEvent(type, params) {
 
-   var eventParams = _extends({
 
-     bubbles: false,
 
-     cancelable: false,
 
-     detail: undefined
 
-   }, params);
 
-   if (typeof window.CustomEvent === 'function') {
 
-     return new CustomEvent(type, eventParams);
 
-   }
 
-   var customEvent = document.createEvent('CustomEvent');
 
-   customEvent.initCustomEvent(type, eventParams.bubbles, eventParams.cancelable, eventParams.detail);
 
-   return customEvent;
 
- };
 
- var mediumZoomEsm = function mediumZoom(selector) {
 
-   var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 
-   /**
 
-    * Ensure the compatibility with IE11 if no Promise polyfill are used.
 
-    */
 
-   var Promise = window.Promise || function Promise(fn) {
 
-     function noop() {}
 
-     fn(noop, noop);
 
-   };
 
-   var _handleClick = function _handleClick(event) {
 
-     var target = event.target;
 
-     if (target === overlay) {
 
-       close();
 
-       return;
 
-     }
 
-     if (images.indexOf(target) === -1) {
 
-       return;
 
-     }
 
-     toggle({ target: target });
 
-   };
 
-   var _handleScroll = function _handleScroll() {
 
-     if (isAnimating || !active.original) {
 
-       return;
 
-     }
 
-     var currentScroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
 
-     if (Math.abs(scrollTop - currentScroll) > zoomOptions.scrollOffset) {
 
-       setTimeout(close, 150);
 
-     }
 
-   };
 
-   var _handleKeyUp = function _handleKeyUp(event) {
 
-     var key = event.key || event.keyCode;
 
-     // Close if escape key is pressed
 
-     if (key === 'Escape' || key === 'Esc' || key === 27) {
 
-       close();
 
-     }
 
-   };
 
-   var update = function update() {
 
-     var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 
-     var newOptions = options;
 
-     if (options.background) {
 
-       overlay.style.background = options.background;
 
-     }
 
-     if (options.container && options.container instanceof Object) {
 
-       newOptions.container = _extends({}, zoomOptions.container, options.container);
 
-     }
 
-     if (options.template) {
 
-       var template = isNode(options.template) ? options.template : document.querySelector(options.template);
 
-       newOptions.template = template;
 
-     }
 
-     zoomOptions = _extends({}, zoomOptions, newOptions);
 
-     images.forEach(function (image) {
 
-       image.dispatchEvent(createCustomEvent('medium-zoom:update', {
 
-         detail: { zoom: zoom }
 
-       }));
 
-     });
 
-     return zoom;
 
-   };
 
-   var clone = function clone() {
 
-     var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 
-     return mediumZoomEsm(_extends({}, zoomOptions, options));
 
-   };
 
-   var attach = function attach() {
 
-     for (var _len = arguments.length, selectors = Array(_len), _key = 0; _key < _len; _key++) {
 
-       selectors[_key] = arguments[_key];
 
-     }
 
-     var newImages = selectors.reduce(function (imagesAccumulator, currentSelector) {
 
-       return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector));
 
-     }, []);
 
-     newImages.filter(function (newImage) {
 
-       return images.indexOf(newImage) === -1;
 
-     }).forEach(function (newImage) {
 
-       images.push(newImage);
 
-       newImage.classList.add('medium-zoom-image');
 
-     });
 
-     eventListeners.forEach(function (_ref) {
 
-       var type = _ref.type,
 
-           listener = _ref.listener,
 
-           options = _ref.options;
 
-       newImages.forEach(function (image) {
 
-         image.addEventListener(type, listener, options);
 
-       });
 
-     });
 
-     return zoom;
 
-   };
 
-   var detach = function detach() {
 
-     for (var _len2 = arguments.length, selectors = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
 
-       selectors[_key2] = arguments[_key2];
 
-     }
 
-     if (active.zoomed) {
 
-       close();
 
-     }
 
-     var imagesToDetach = selectors.length > 0 ? selectors.reduce(function (imagesAccumulator, currentSelector) {
 
-       return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector));
 
-     }, []) : images;
 
-     imagesToDetach.forEach(function (image) {
 
-       image.classList.remove('medium-zoom-image');
 
-       image.dispatchEvent(createCustomEvent('medium-zoom:detach', {
 
-         detail: { zoom: zoom }
 
-       }));
 
-     });
 
-     images = images.filter(function (image) {
 
-       return imagesToDetach.indexOf(image) === -1;
 
-     });
 
-     return zoom;
 
-   };
 
-   var on = function on(type, listener) {
 
-     var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
 
-     images.forEach(function (image) {
 
-       image.addEventListener('medium-zoom:' + type, listener, options);
 
-     });
 
-     eventListeners.push({ type: 'medium-zoom:' + type, listener: listener, options: options });
 
-     return zoom;
 
-   };
 
-   var off = function off(type, listener) {
 
-     var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
 
-     images.forEach(function (image) {
 
-       image.removeEventListener('medium-zoom:' + type, listener, options);
 
-     });
 
-     eventListeners = eventListeners.filter(function (eventListener) {
 
-       return !(eventListener.type === 'medium-zoom:' + type && eventListener.listener.toString() === listener.toString());
 
-     });
 
-     return zoom;
 
-   };
 
-   var open = function open() {
 
-     var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
 
-         target = _ref2.target;
 
-     var _animate = function _animate() {
 
-       var container = {
 
-         width: document.documentElement.clientWidth,
 
-         height: document.documentElement.clientHeight,
 
-         left: 0,
 
-         top: 0,
 
-         right: 0,
 
-         bottom: 0
 
-       };
 
-       var viewportWidth = void 0;
 
-       var viewportHeight = void 0;
 
-       if (zoomOptions.container) {
 
-         if (zoomOptions.container instanceof Object) {
 
-           // The container is given as an object with properties like width, height, left, top
 
-           container = _extends({}, container, zoomOptions.container);
 
-           // We need to adjust custom options like container.right or container.bottom
 
-           viewportWidth = container.width - container.left - container.right - zoomOptions.margin * 2;
 
-           viewportHeight = container.height - container.top - container.bottom - zoomOptions.margin * 2;
 
-         } else {
 
-           // The container is given as an element
 
-           var zoomContainer = isNode(zoomOptions.container) ? zoomOptions.container : document.querySelector(zoomOptions.container);
 
-           var _zoomContainer$getBou = zoomContainer.getBoundingClientRect(),
 
-               _width = _zoomContainer$getBou.width,
 
-               _height = _zoomContainer$getBou.height,
 
-               _left = _zoomContainer$getBou.left,
 
-               _top = _zoomContainer$getBou.top;
 
-           container = _extends({}, container, {
 
-             width: _width,
 
-             height: _height,
 
-             left: _left,
 
-             top: _top
 
-           });
 
-         }
 
-       }
 
-       viewportWidth = viewportWidth || container.width - zoomOptions.margin * 2;
 
-       viewportHeight = viewportHeight || container.height - zoomOptions.margin * 2;
 
-       var zoomTarget = active.zoomedHd || active.original;
 
-       var naturalWidth = isSvg(zoomTarget) ? viewportWidth : zoomTarget.naturalWidth || viewportWidth;
 
-       var naturalHeight = isSvg(zoomTarget) ? viewportHeight : zoomTarget.naturalHeight || viewportHeight;
 
-       var _zoomTarget$getBoundi = zoomTarget.getBoundingClientRect(),
 
-           top = _zoomTarget$getBoundi.top,
 
-           left = _zoomTarget$getBoundi.left,
 
-           width = _zoomTarget$getBoundi.width,
 
-           height = _zoomTarget$getBoundi.height;
 
-       var scaleX = Math.min(naturalWidth, viewportWidth) / width;
 
-       var scaleY = Math.min(naturalHeight, viewportHeight) / height;
 
-       var scale = Math.min(scaleX, scaleY);
 
-       var translateX = (-left + (viewportWidth - width) / 2 + zoomOptions.margin + container.left) / scale;
 
-       var translateY = (-top + (viewportHeight - height) / 2 + zoomOptions.margin + container.top) / scale;
 
-       var transform = 'scale(' + scale + ') translate3d(' + translateX + 'px, ' + translateY + 'px, 0)';
 
-       active.zoomed.style.transform = transform;
 
-       if (active.zoomedHd) {
 
-         active.zoomedHd.style.transform = transform;
 
-       }
 
-     };
 
-     return new Promise(function (resolve) {
 
-       if (target && images.indexOf(target) === -1) {
 
-         resolve(zoom);
 
-         return;
 
-       }
 
-       var _handleOpenEnd = function _handleOpenEnd() {
 
-         isAnimating = false;
 
-         active.zoomed.removeEventListener('transitionend', _handleOpenEnd);
 
-         active.original.dispatchEvent(createCustomEvent('medium-zoom:opened', {
 
-           detail: { zoom: zoom }
 
-         }));
 
-         resolve(zoom);
 
-       };
 
-       if (active.zoomed) {
 
-         resolve(zoom);
 
-         return;
 
-       }
 
-       if (target) {
 
-         // The zoom was triggered manually via a click
 
-         active.original = target;
 
-       } else if (images.length > 0) {
 
- var _images = images;
 
-         active.original = _images[0];
 
-       } else {
 
-         resolve(zoom);
 
-         return;
 
-       }
 
-       active.original.dispatchEvent(createCustomEvent('medium-zoom:open', {
 
-         detail: { zoom: zoom }
 
-       }));
 
-       scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
 
-       isAnimating = true;
 
-       active.zoomed = cloneTarget(active.original);
 
-       document.body.appendChild(overlay);
 
-       if (zoomOptions.template) {
 
-         var template = isNode(zoomOptions.template) ? zoomOptions.template : document.querySelector(zoomOptions.template);
 
-         active.template = document.createElement('div');
 
-         active.template.appendChild(template.content.cloneNode(true));
 
-         document.body.appendChild(active.template);
 
-       }
 
-       document.body.appendChild(active.zoomed);
 
-       window.requestAnimationFrame(function () {
 
-         document.body.classList.add('medium-zoom--opened');
 
-       });
 
-       active.original.classList.add('medium-zoom-image--hidden');
 
-       active.zoomed.classList.add('medium-zoom-image--opened');
 
-       active.zoomed.addEventListener('click', close);
 
-       active.zoomed.addEventListener('transitionend', _handleOpenEnd);
 
-       if (active.original.getAttribute('data-zoom-src')) {
 
-         active.zoomedHd = active.zoomed.cloneNode();
 
-         // Reset the `scrset` property or the HD image won't load.
 
-         active.zoomedHd.removeAttribute('srcset');
 
-         active.zoomedHd.removeAttribute('sizes');
 
-         active.zoomedHd.src = active.zoomed.getAttribute('data-zoom-src');
 
-         active.zoomedHd.onerror = function () {
 
-           clearInterval(getZoomTargetSize);
 
-           console.warn('Unable to reach the zoom image target ' + active.zoomedHd.src);
 
-           active.zoomedHd = null;
 
-           _animate();
 
-         };
 
-         // We need to access the natural size of the full HD
 
-         // target as fast as possible to compute the animation.
 
-         var getZoomTargetSize = setInterval(function () {
 
-           if ( active.zoomedHd.complete) {
 
-             clearInterval(getZoomTargetSize);
 
-             active.zoomedHd.classList.add('medium-zoom-image--opened');
 
-             active.zoomedHd.addEventListener('click', close);
 
-             document.body.appendChild(active.zoomedHd);
 
-             _animate();
 
-           }
 
-         }, 10);
 
-       } else if (active.original.hasAttribute('srcset')) {
 
-         // If an image has a `srcset` attribuet, we don't know the dimensions of the
 
-         // zoomed (HD) image (like when `data-zoom-src` is specified).
 
-         // Therefore the approach is quite similar.
 
-         active.zoomedHd = active.zoomed.cloneNode();
 
-         // Resetting the sizes attribute tells the browser to load the
 
-         // image best fitting the current viewport size, respecting the `srcset`.
 
-         active.zoomedHd.removeAttribute('sizes');
 
-         // In Firefox, the `loading` attribute needs to be set to `eager` (default
 
-         // value) for the load event to be fired.
 
-         active.zoomedHd.removeAttribute('loading');
 
-         // Wait for the load event of the hd image. This will fire if the image
 
-         // is already cached.
 
-         var loadEventListener = active.zoomedHd.addEventListener('load', function () {
 
-           active.zoomedHd.removeEventListener('load', loadEventListener);
 
-           active.zoomedHd.classList.add('medium-zoom-image--opened');
 
-           active.zoomedHd.addEventListener('click', close);
 
-           document.body.appendChild(active.zoomedHd);
 
-           _animate();
 
-         });
 
-       } else {
 
-         _animate();
 
-       }
 
-     });
 
-   };
 
-   var close = function close() {
 
-     return new Promise(function (resolve) {
 
-       if (isAnimating || !active.original) {
 
-         resolve(zoom);
 
-         return;
 
-       }
 
-       var _handleCloseEnd = function _handleCloseEnd() {
 
-         active.original.classList.remove('medium-zoom-image--hidden');
 
-         document.body.removeChild(active.zoomed);
 
-         if (active.zoomedHd) {
 
-           document.body.removeChild(active.zoomedHd);
 
-         }
 
-         document.body.removeChild(overlay);
 
-         active.zoomed.classList.remove('medium-zoom-image--opened');
 
-         if (active.template) {
 
-           document.body.removeChild(active.template);
 
-         }
 
-         isAnimating = false;
 
-         active.zoomed.removeEventListener('transitionend', _handleCloseEnd);
 
-         active.original.dispatchEvent(createCustomEvent('medium-zoom:closed', {
 
-           detail: { zoom: zoom }
 
-         }));
 
-         active.original = null;
 
-         active.zoomed = null;
 
-         active.zoomedHd = null;
 
-         active.template = null;
 
-         resolve(zoom);
 
-       };
 
-       isAnimating = true;
 
-       document.body.classList.remove('medium-zoom--opened');
 
-       active.zoomed.style.transform = '';
 
-       if (active.zoomedHd) {
 
-         active.zoomedHd.style.transform = '';
 
-       }
 
-       // Fade out the template so it's not too abrupt
 
-       if (active.template) {
 
-         active.template.style.transition = 'opacity 150ms';
 
-         active.template.style.opacity = 0;
 
-       }
 
-       active.original.dispatchEvent(createCustomEvent('medium-zoom:close', {
 
-         detail: { zoom: zoom }
 
-       }));
 
-       active.zoomed.addEventListener('transitionend', _handleCloseEnd);
 
-     });
 
-   };
 
-   var toggle = function toggle() {
 
-     var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
 
-         target = _ref3.target;
 
-     if (active.original) {
 
-       return close();
 
-     }
 
-     return open({ target: target });
 
-   };
 
-   var getOptions = function getOptions() {
 
-     return zoomOptions;
 
-   };
 
-   var getImages = function getImages() {
 
-     return images;
 
-   };
 
-   var getZoomedImage = function getZoomedImage() {
 
-     return active.original;
 
-   };
 
-   var images = [];
 
-   var eventListeners = [];
 
-   var isAnimating = false;
 
-   var scrollTop = 0;
 
-   var zoomOptions = options;
 
-   var active = {
 
-     original: null,
 
-     zoomed: null,
 
-     zoomedHd: null,
 
-     template: null
 
-     // If the selector is omitted, it's replaced by the options
 
-   };if (Object.prototype.toString.call(selector) === '[object Object]') {
 
-     zoomOptions = selector;
 
-   } else if (selector || typeof selector === 'string' // to process empty string as a selector
 
-   ) {
 
-       attach(selector);
 
-     }
 
-   // Apply the default option values
 
-   zoomOptions = _extends({
 
-     margin: 0,
 
-     background: '#fff',
 
-     scrollOffset: 40,
 
-     container: null,
 
-     template: null
 
-   }, zoomOptions);
 
-   var overlay = createOverlay(zoomOptions.background);
 
-   document.addEventListener('click', _handleClick);
 
-   document.addEventListener('keyup', _handleKeyUp);
 
-   document.addEventListener('scroll', _handleScroll);
 
-   window.addEventListener('resize', close);
 
-   var zoom = {
 
-     open: open,
 
-     close: close,
 
-     toggle: toggle,
 
-     update: update,
 
-     clone: clone,
 
-     attach: attach,
 
-     detach: detach,
 
-     on: on,
 
-     off: off,
 
-     getOptions: getOptions,
 
-     getImages: getImages,
 
-     getZoomedImage: getZoomedImage
 
-   };
 
-   return zoom;
 
- };
 
- function styleInject(css, ref) {
 
-   if ( ref === void 0 ) ref = {};
 
-   var insertAt = ref.insertAt;
 
-   if (!css || typeof document === 'undefined') { return; }
 
-   var head = document.head || document.getElementsByTagName('head')[0];
 
-   var style = document.createElement('style');
 
-   style.type = 'text/css';
 
-   if (insertAt === 'top') {
 
-     if (head.firstChild) {
 
-       head.insertBefore(style, head.firstChild);
 
-     } else {
 
-       head.appendChild(style);
 
-     }
 
-   } else {
 
-     head.appendChild(style);
 
-   }
 
-   if (style.styleSheet) {
 
-     style.styleSheet.cssText = css;
 
-   } else {
 
-     style.appendChild(document.createTextNode(css));
 
-   }
 
- }
 
- var css = ".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";
 
- styleInject(css);
 
- export default mediumZoomEsm;
 
 
  |