{"version":3,"file":"js/3524-01055709fe67c753f2fc.js","mappings":"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","sources":["webpack:///../../node_modules/clamp/index.js","webpack:///../../node_modules/detect-hover/lib/index.js","webpack:///../../node_modules/detect-it/lib/index.js","webpack:///../../node_modules/detect-pointer/lib/index.js","webpack:///../../node_modules/detect-touch-events/lib/index.js","webpack:///../../node_modules/object.omit/index.js","webpack:///../../node_modules/object.omit/node_modules/is-extendable/index.js","webpack:///../../node_modules/react-cursor-position/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///../../node_modules/react-cursor-position/node_modules/prop-types/index.js","webpack:///../../node_modules/react-cursor-position/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///../../node_modules/react-cursor-position/dist/es/lib/ElementRelativeCursorPosition.js","webpack:///../../node_modules/react-cursor-position/dist/es/utils/addEventListener.js","webpack:///../../node_modules/react-cursor-position/dist/es/constants.js","webpack:///../../node_modules/react-cursor-position/dist/es/utils/noop.js","webpack:///../../node_modules/react-cursor-position/dist/es/ReactCursorPosition.js","webpack:///../../node_modules/react-image-magnify/dist/es/lib/imageRatio.js","webpack:///../../node_modules/react-image-magnify/dist/es/lib/imageCoordinates.js","webpack:///../../node_modules/react-image-magnify/dist/es/prop-types/Image.js","webpack:///../../node_modules/react-image-magnify/dist/es/constants/index.js","webpack:///../../node_modules/react-image-magnify/dist/es/prop-types/EnlargedImage.js","webpack:///../../node_modules/react-image-magnify/dist/es/utils/index.js","webpack:///../../node_modules/react-image-magnify/dist/es/prop-types/Point.js","webpack:///../../node_modules/react-image-magnify/dist/es/lib/styles.js","webpack:///../../node_modules/react-image-magnify/dist/es/EnlargedImage.js","webpack:///../../node_modules/react-image-magnify/dist/es/RenderEnlargedImage.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/negative-space/Lens.js","webpack:///../../node_modules/react-image-magnify/dist/es/prop-types/Lens.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/negative-space/LensTop.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/negative-space/LensLeft.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/negative-space/LensRight.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/negative-space/LensBottom.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/negative-space/index.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/positive-space/assets/textured-lens-data-uri.js","webpack:///../../node_modules/react-image-magnify/dist/es/lens/positive-space/index.js","webpack:///../../node_modules/react-image-magnify/dist/es/hint/DisplayUntilActive.js","webpack:///../../node_modules/react-image-magnify/dist/es/hint/DefaultHint.js","webpack:///../../node_modules/react-image-magnify/dist/es/lib/lens.js","webpack:///../../node_modules/react-image-magnify/dist/es/lib/dimensions.js","webpack:///../../node_modules/react-image-magnify/dist/es/ReactImageMagnify.js","webpack:///../../node_modules/react-image-magnify/node_modules/fast-deep-equal/index.js","webpack:///../../node_modules/react-image-magnify/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///../../node_modules/react-image-magnify/node_modules/prop-types/index.js","webpack:///../../node_modules/react-image-magnify/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///../../node_modules/react-required-if/index.js"],"sourcesContent":["module.exports = clamp\n\nfunction clamp(value, min, max) {\n return min < max\n ? (value < min ? min : value > max ? max : value)\n : (value < max ? max : value > min ? min : value)\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar detectHover = {\n update: function update() {\n if (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {\n detectHover.hover = window.matchMedia('(hover: hover)').matches;\n detectHover.none = window.matchMedia('(hover: none)').matches || window.matchMedia('(hover: on-demand)').matches;\n detectHover.anyHover = window.matchMedia('(any-hover: hover)').matches;\n detectHover.anyNone = window.matchMedia('(any-hover: none)').matches || window.matchMedia('(any-hover: on-demand)').matches;\n }\n }\n};\n\ndetectHover.update();\nexports.default = detectHover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _detectHover = require('detect-hover');\n\nvar _detectHover2 = _interopRequireDefault(_detectHover);\n\nvar _detectPointer = require('detect-pointer');\n\nvar _detectPointer2 = _interopRequireDefault(_detectPointer);\n\nvar _detectTouchEvents = require('detect-touch-events');\n\nvar _detectTouchEvents2 = _interopRequireDefault(_detectTouchEvents);\n\nvar _detectPassiveEvents = require('detect-passive-events');\n\nvar _detectPassiveEvents2 = _interopRequireDefault(_detectPassiveEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * detectIt object structure\n * const detectIt = {\n * deviceType: 'mouseOnly' / 'touchOnly' / 'hybrid',\n * passiveEvents: boolean,\n * hasTouch: boolean,\n * hasMouse: boolean,\n * maxTouchPoints: number,\n * primaryHover: 'hover' / 'none',\n * primaryPointer: 'fine' / 'coarse' / 'none',\n * state: {\n * detectHover,\n * detectPointer,\n * detectTouchEvents,\n * detectPassiveEvents,\n * },\n * update() {...},\n * }\n */\n\nfunction determineDeviceType(hasTouch, anyHover, anyFine, state) {\n // A hybrid device is one that both hasTouch and any input device can hover\n // or has a fine pointer.\n if (hasTouch && (anyHover || anyFine)) return 'hybrid';\n\n // workaround for browsers that have the touch events api,\n // and have implemented Level 4 media queries but not the\n // hover and pointer media queries, so the tests are all false (notable Firefox)\n // if it hasTouch, no pointer and hover support, and on an android assume it's touchOnly\n // if it hasTouch, no pointer and hover support, and not on an android assume it's a hybrid\n if (hasTouch && Object.keys(state.detectHover).filter(function (key) {\n return key !== 'update';\n }).every(function (key) {\n return state.detectHover[key] === false;\n }) && Object.keys(state.detectPointer).filter(function (key) {\n return key !== 'update';\n }).every(function (key) {\n return state.detectPointer[key] === false;\n })) {\n if (window.navigator && /android/.test(window.navigator.userAgent.toLowerCase())) {\n return 'touchOnly';\n }\n return 'hybrid';\n }\n\n // In almost all cases a device that doesn’t support touch will have a mouse,\n // but there may be rare exceptions. Note that it doesn’t work to do additional tests\n // based on hover and pointer media queries as older browsers don’t support these.\n // Essentially, 'mouseOnly' is the default.\n return hasTouch ? 'touchOnly' : 'mouseOnly';\n}\n\nvar detectIt = {\n state: {\n detectHover: _detectHover2.default,\n detectPointer: _detectPointer2.default,\n detectTouchEvents: _detectTouchEvents2.default,\n detectPassiveEvents: _detectPassiveEvents2.default\n },\n update: function update() {\n detectIt.state.detectHover.update();\n detectIt.state.detectPointer.update();\n detectIt.state.detectTouchEvents.update();\n detectIt.state.detectPassiveEvents.update();\n detectIt.updateOnlyOwnProperties();\n },\n updateOnlyOwnProperties: function updateOnlyOwnProperties() {\n if (typeof window !== 'undefined') {\n detectIt.passiveEvents = detectIt.state.detectPassiveEvents.hasSupport || false;\n\n detectIt.hasTouch = detectIt.state.detectTouchEvents.hasSupport || false;\n\n detectIt.deviceType = determineDeviceType(detectIt.hasTouch, detectIt.state.detectHover.anyHover, detectIt.state.detectPointer.anyFine, detectIt.state);\n\n detectIt.hasMouse = detectIt.deviceType !== 'touchOnly';\n\n detectIt.primaryInput = detectIt.deviceType === 'mouseOnly' && 'mouse' || detectIt.deviceType === 'touchOnly' && 'touch' ||\n // deviceType is hybrid:\n detectIt.state.detectHover.hover && 'mouse' || detectIt.state.detectHover.none && 'touch' ||\n // if there's no support for hover media queries but detectIt determined it's\n // a hybrid device, then assume it's a mouse first device\n 'mouse';\n\n // issue with Windows Chrome on hybrid devices starting in version 59 where\n // media queries represent a touch only device, so if the browser is an\n // affected Windows Chrome version and hasTouch,\n // then assume it's a hybrid with primaryInput mouse\n // see https://github.com/rafrex/detect-it/issues/8\n var isAffectedWindowsChromeVersion = /windows/.test(window.navigator.userAgent.toLowerCase()) && /chrome/.test(window.navigator.userAgent.toLowerCase()) && parseInt(/Chrome\\/([0-9.]+)/.exec(navigator.userAgent)[1], 10) >= 59;\n\n if (isAffectedWindowsChromeVersion && detectIt.hasTouch) {\n detectIt.deviceType = 'hybrid';\n detectIt.hasMouse = true;\n detectIt.primaryInput = 'mouse';\n }\n }\n }\n};\n\ndetectIt.updateOnlyOwnProperties();\nexports.default = detectIt;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar detectPointer = {\n update: function update() {\n if (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {\n detectPointer.fine = window.matchMedia('(pointer: fine)').matches;\n detectPointer.coarse = window.matchMedia('(pointer: coarse)').matches;\n detectPointer.none = window.matchMedia('(pointer: none)').matches;\n detectPointer.anyFine = window.matchMedia('(any-pointer: fine)').matches;\n detectPointer.anyCoarse = window.matchMedia('(any-pointer: coarse)').matches;\n detectPointer.anyNone = window.matchMedia('(any-pointer: none)').matches;\n }\n }\n};\n\ndetectPointer.update();\nexports.default = detectPointer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar detectTouchEvents = {\n update: function update() {\n if (typeof window !== 'undefined') {\n detectTouchEvents.hasSupport = 'ontouchstart' in window;\n detectTouchEvents.browserSupportsApi = Boolean(window.TouchEvent);\n }\n }\n};\n\ndetectTouchEvents.update();\nexports.default = detectTouchEvents;","/*!\n * object.omit \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('is-extendable');\n\nmodule.exports = function omit(obj, props, fn) {\n if (!isObject(obj)) return {};\n\n if (typeof props === 'function') {\n fn = props;\n props = [];\n }\n\n if (typeof props === 'string') {\n props = [props];\n }\n\n var isFunction = typeof fn === 'function';\n var keys = Object.keys(obj);\n var res = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = obj[key];\n\n if (!props || (props.indexOf(key) === -1 && (!isFunction || fn(val, key, obj)))) {\n res[key] = val;\n }\n }\n return res;\n};\n","/*!\n * is-extendable \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isPlainObject = require('is-plain-object');\n\nmodule.exports = function isExtendable(val) {\n return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ElementRelativeCursorPosition = function () {\n function ElementRelativeCursorPosition(el) {\n _classCallCheck(this, ElementRelativeCursorPosition);\n\n this.el = el;\n }\n\n _createClass(ElementRelativeCursorPosition, [{\n key: \"getDocumentRelativeElementOffset\",\n value: function getDocumentRelativeElementOffset(el) {\n var rootEl = this.getRootOfEl(el);\n\n var _rootEl$getBoundingCl = rootEl.getBoundingClientRect(),\n docLeft = _rootEl$getBoundingCl.left,\n docTop = _rootEl$getBoundingCl.top;\n\n var _el$getBoundingClient = el.getBoundingClientRect(),\n elLeft = _el$getBoundingClient.left,\n elTop = _el$getBoundingClient.top;\n\n return {\n x: Math.abs(docLeft) + elLeft,\n y: Math.abs(docTop) + elTop\n };\n }\n }, {\n key: \"getRootOfEl\",\n value: function getRootOfEl(el) {\n if (el.parentElement) {\n return this.getRootOfEl(el.parentElement);\n }\n return el;\n }\n }, {\n key: \"getComputedElementRelativeCursorPosition\",\n value: function getComputedElementRelativeCursorPosition(event, documentRelativeElementOffset) {\n this.lastEvent = event;\n var position = this.getDocumentRelativeCursorPosition(event);\n var cursorX = position.x,\n cursorY = position.y;\n var offsetX = documentRelativeElementOffset.x,\n offsetY = documentRelativeElementOffset.y;\n\n\n return {\n x: Math.round(cursorX - offsetX),\n y: Math.round(cursorY - offsetY)\n };\n }\n }, {\n key: \"getDocumentRelativeCursorPosition\",\n value: function getDocumentRelativeCursorPosition(event) {\n return {\n x: event.pageX,\n y: event.pageY\n };\n }\n }, {\n key: \"getCursorPosition\",\n value: function getCursorPosition(event) {\n return this.getComputedElementRelativeCursorPosition(event, this.documentRelativeElementOffset);\n }\n }, {\n key: \"documentRelativeElementOffset\",\n get: function get() {\n if (!this.elementOffset) {\n this.elementOffset = this.getDocumentRelativeElementOffset(this.el);\n }\n\n return this.elementOffset;\n }\n }]);\n\n return ElementRelativeCursorPosition;\n}();\n\nexport default ElementRelativeCursorPosition;","export default function addEventListener(node, eventName, handler, options) {\n node.addEventListener(eventName, handler, options);\n return {\n removeEventListener: function removeEventListener() {\n node.removeEventListener(eventName, handler, options);\n }\n };\n}","export var PRESS_EVENT_TIMER_NAME = 'pressEvent';\nexport var MOUSE_EMULATION_GUARD_TIMER_NAME = 'mouseEmulation';\nexport var SET_ACTIVATION_TIMER_NAME = 'setHovering';\nexport var UNSET_ACTIVATION_TIMER_NAME = 'unsetHovering';","export default (function () {});","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Children, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport objectAssign from 'object-assign';\nimport omit from 'object.omit';\nimport Core from './lib/ElementRelativeCursorPosition';\nimport addEventListener from './utils/addEventListener';\nimport * as constants from './constants';\nimport noop from './utils/noop';\n\nvar _class = function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n detectedEnvironment: {\n isMouseDetected: false,\n isTouchDetected: false\n },\n elementDimensions: {\n width: 0,\n height: 0\n },\n isActive: false,\n isPositionOutside: true,\n position: {\n x: 0,\n y: 0\n }\n };\n\n _this.shouldGuardAgainstMouseEmulationByDevices = false;\n _this.eventListeners = [];\n _this.timers = [];\n _this.elementOffset = {\n x: 0,\n y: 0\n };\n\n _this.onTouchStart = _this.onTouchStart.bind(_this);\n _this.onTouchMove = _this.onTouchMove.bind(_this);\n _this.onTouchEnd = _this.onTouchEnd.bind(_this);\n _this.onTouchCancel = _this.onTouchCancel.bind(_this);\n _this.onMouseEnter = _this.onMouseEnter.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.onMouseLeave = _this.onMouseLeave.bind(_this);\n return _this;\n }\n\n _createClass(_class, [{\n key: 'onTouchStart',\n value: function onTouchStart(e) {\n this.init();\n this.onTouchDetected();\n this.setShouldGuardAgainstMouseEmulationByDevices();\n\n var position = this.core.getCursorPosition(this.getTouchEvent(e));\n this.setPositionState(position);\n\n if (this.props.isActivatedOnTouch) {\n e.preventDefault();\n this.activate();\n return;\n }\n\n this.initPressEventCriteria(position);\n this.setPressEventTimer();\n }\n }, {\n key: 'onTouchMove',\n value: function onTouchMove(e) {\n if (!this.isCoreReady) {\n return;\n }\n\n var position = this.core.getCursorPosition(this.getTouchEvent(e));\n\n if (!this.state.isActive) {\n this.setPressEventCriteria(position);\n return;\n }\n\n this.setPositionState(position);\n e.preventDefault();\n\n if (this.props.shouldStopTouchMovePropagation) {\n e.stopPropagation();\n }\n }\n }, {\n key: 'onTouchEnd',\n value: function onTouchEnd() {\n this.deactivate();\n this.unsetShouldGuardAgainstMouseEmulationByDevices();\n }\n }, {\n key: 'onTouchCancel',\n value: function onTouchCancel() {\n this.deactivate();\n this.unsetShouldGuardAgainstMouseEmulationByDevices();\n }\n }, {\n key: 'onMouseEnter',\n value: function onMouseEnter(e) {\n if (this.shouldGuardAgainstMouseEmulationByDevices) {\n return;\n }\n\n this.init();\n this.onMouseDetected();\n this.setPositionState(this.core.getCursorPosition(e));\n this.clearActivationTimers();\n this.schedulActivation(this.props.hoverDelayInMs);\n }\n }, {\n key: 'onMouseMove',\n value: function onMouseMove(e) {\n if (!this.isCoreReady) {\n return;\n }\n\n this.setPositionState(this.core.getCursorPosition(e));\n }\n }, {\n key: 'onMouseLeave',\n value: function onMouseLeave() {\n this.clearActivationTimers();\n this.scheduleDeactivation(this.props.hoverOffDelayInMs);\n this.setState({ isPositionOutside: true });\n }\n }, {\n key: 'onTouchDetected',\n value: function onTouchDetected() {\n var environment = {\n isTouchDetected: true,\n isMouseDetected: false\n };\n\n this.setState({ detectedEnvironment: environment });\n this.props.onDetectedEnvironmentChanged(environment);\n }\n }, {\n key: 'onMouseDetected',\n value: function onMouseDetected() {\n var environment = {\n isTouchDetected: false,\n isMouseDetected: true\n };\n\n this.setState({ detectedEnvironment: environment });\n this.props.onDetectedEnvironmentChanged(environment);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.isEnabled) {\n this.enable();\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var willBeEnabled = _ref.isEnabled;\n var isEnabled = this.props.isEnabled;\n\n var isEnabledWillChange = isEnabled !== willBeEnabled;\n\n if (!isEnabledWillChange) {\n return;\n }\n\n if (willBeEnabled) {\n this.enable();\n } else {\n this.disable();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.clearTimers();\n this.disable();\n }\n }, {\n key: 'enable',\n value: function enable() {\n this.addEventListeners();\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.removeEventListeners();\n }\n }, {\n key: 'init',\n value: function init() {\n this.core = new Core(this.el);\n\n this.setElementDimensionsState(this.getElementDimensions(this.el));\n }\n }, {\n key: 'reset',\n value: function reset() {\n var _core = this.core;\n _core = _core === undefined ? {} : _core;\n var lastMouseEvent = _core.lastEvent;\n\n\n this.init();\n\n if (!lastMouseEvent) {\n return;\n }\n\n this.setPositionState(this.core.getCursorPosition(lastMouseEvent));\n }\n }, {\n key: 'activate',\n value: function activate() {\n this.setState({ isActive: true });\n this.props.onActivationChanged({ isActive: true });\n }\n }, {\n key: 'deactivate',\n value: function deactivate() {\n var _this2 = this;\n\n this.clearTimer(constants.PRESS_EVENT_TIMER_NAME);\n\n this.setState({ isActive: false }, function () {\n var _state = _this2.state,\n isPositionOutside = _state.isPositionOutside,\n position = _state.position;\n\n\n _this2.props.onPositionChanged({\n isPositionOutside: isPositionOutside,\n position: position\n });\n\n _this2.props.onActivationChanged({ isActive: false });\n });\n }\n }, {\n key: 'setPositionState',\n value: function setPositionState(position) {\n var isPositionOutside = this.getIsPositionOutside(position);\n\n this.setState({\n isPositionOutside: isPositionOutside,\n position: position\n }, this.onPositionChanged);\n }\n }, {\n key: 'setElementDimensionsState',\n value: function setElementDimensionsState(dimensions) {\n this.setState({\n elementDimensions: dimensions\n });\n }\n }, {\n key: 'schedulActivation',\n value: function schedulActivation(schedule) {\n var _this3 = this;\n\n var scheduleId = setTimeout(function () {\n _this3.activate();\n }, schedule);\n\n this.timers.push({\n id: scheduleId,\n name: constants.SET_ACTIVATION_TIMER_NAME\n });\n }\n }, {\n key: 'scheduleDeactivation',\n value: function scheduleDeactivation(schedule) {\n var _this4 = this;\n\n var scheduleId = setTimeout(function () {\n _this4.deactivate();\n }, schedule);\n\n this.timers.push({\n id: scheduleId,\n name: constants.UNSET_ACTIVATION_TIMER_NAME\n });\n }\n }, {\n key: 'clearActivationTimers',\n value: function clearActivationTimers() {\n this.clearTimer(constants.SET_ACTIVATION_TIMER_NAME);\n this.clearTimer(constants.UNSET_ACTIVATION_TIMER_NAME);\n }\n }, {\n key: 'setPressEventTimer',\n value: function setPressEventTimer() {\n var _this5 = this;\n\n var _props = this.props,\n pressDuration = _props.pressDuration,\n pressMoveThreshold = _props.pressMoveThreshold;\n\n\n this.timers.push({\n name: constants.PRESS_EVENT_TIMER_NAME,\n id: setTimeout(function () {\n if (Math.abs(_this5.currentElTop - _this5.initialElTop) < pressMoveThreshold) {\n _this5.activate();\n }\n }, pressDuration)\n });\n }\n }, {\n key: 'setPressEventCriteria',\n value: function setPressEventCriteria(position) {\n this.currentElTop = position.y;\n }\n }, {\n key: 'initPressEventCriteria',\n value: function initPressEventCriteria(position) {\n var top = position.y;\n this.initialElTop = top;\n this.currentElTop = top;\n }\n }, {\n key: 'setShouldGuardAgainstMouseEmulationByDevices',\n value: function setShouldGuardAgainstMouseEmulationByDevices() {\n this.shouldGuardAgainstMouseEmulationByDevices = true;\n }\n }, {\n key: 'unsetShouldGuardAgainstMouseEmulationByDevices',\n value: function unsetShouldGuardAgainstMouseEmulationByDevices() {\n var _this6 = this;\n\n this.timers.push({\n name: constants.MOUSE_EMULATION_GUARD_TIMER_NAME,\n id: setTimeout(function () {\n _this6.shouldGuardAgainstMouseEmulationByDevices = false;\n }, 0)\n });\n }\n }, {\n key: 'clearTimers',\n value: function clearTimers() {\n var timers = this.timers;\n while (timers.length) {\n var timer = timers.pop();\n clearTimeout(timer.id);\n }\n }\n }, {\n key: 'clearTimer',\n value: function clearTimer(timerName) {\n this.timers.forEach(function (timer) {\n if (timer.name === timerName) {\n clearTimeout(timer.id);\n }\n });\n }\n }, {\n key: 'getElementDimensions',\n value: function getElementDimensions(el) {\n var _el$getBoundingClient = el.getBoundingClientRect(),\n width = _el$getBoundingClient.width,\n height = _el$getBoundingClient.height;\n\n return {\n width: width,\n height: height\n };\n }\n }, {\n key: 'getIsPositionOutside',\n value: function getIsPositionOutside(position) {\n var x = position.x,\n y = position.y;\n var _state$elementDimensi = this.state.elementDimensions,\n width = _state$elementDimensi.width,\n height = _state$elementDimensi.height;\n\n\n var isPositionOutside = x < 0 || y < 0 || x > width || y > height;\n\n return isPositionOutside;\n }\n }, {\n key: 'getTouchEvent',\n value: function getTouchEvent(e) {\n return e.touches[0];\n }\n }, {\n key: 'getIsReactComponent',\n value: function getIsReactComponent(reactElement) {\n return typeof reactElement.type === 'function';\n }\n }, {\n key: 'shouldDecorateChild',\n value: function shouldDecorateChild(child) {\n return !!child && this.getIsReactComponent(child) && this.props.shouldDecorateChildren;\n }\n }, {\n key: 'decorateChild',\n value: function decorateChild(child, props) {\n return cloneElement(child, props);\n }\n }, {\n key: 'decorateChildren',\n value: function decorateChildren(children, props) {\n var _this7 = this;\n\n return Children.map(children, function (child) {\n return _this7.shouldDecorateChild(child) ? _this7.decorateChild(child, props) : child;\n });\n }\n }, {\n key: 'addEventListeners',\n value: function addEventListeners() {\n this.eventListeners.push(addEventListener(this.el, 'touchstart', this.onTouchStart, { passive: false }), addEventListener(this.el, 'touchmove', this.onTouchMove, { passive: false }), addEventListener(this.el, 'touchend', this.onTouchEnd), addEventListener(this.el, 'touchcancel', this.onTouchCancel), addEventListener(this.el, 'mouseenter', this.onMouseEnter), addEventListener(this.el, 'mousemove', this.onMouseMove), addEventListener(this.el, 'mouseleave', this.onMouseLeave));\n }\n }, {\n key: 'removeEventListeners',\n value: function removeEventListeners() {\n while (this.eventListeners.length) {\n this.eventListeners.pop().removeEventListener();\n }\n }\n }, {\n key: 'getPassThroughProps',\n value: function getPassThroughProps() {\n var ownPropNames = Object.keys(this.constructor.propTypes);\n return omit(this.props, ownPropNames);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this8 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n className = _props2.className,\n mapChildProps = _props2.mapChildProps,\n style = _props2.style;\n\n var props = objectAssign({}, mapChildProps(this.state), this.getPassThroughProps());\n\n return React.createElement(\n 'div',\n {\n className: className,\n ref: function ref(el) {\n return _this8.el = el;\n },\n style: objectAssign({}, style, {\n WebkitUserSelect: 'none'\n })\n },\n this.decorateChildren(children, props)\n );\n }\n }, {\n key: 'isCoreReady',\n get: function get() {\n return !!this.core;\n }\n }]);\n\n return _class;\n}(React.Component);\n\n_class.displayName = 'ReactCursorPosition';\n_class.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n hoverDelayInMs: PropTypes.number,\n hoverOffDelayInMs: PropTypes.number,\n isActivatedOnTouch: PropTypes.bool,\n isEnabled: PropTypes.bool,\n mapChildProps: PropTypes.func,\n onActivationChanged: PropTypes.func,\n onPositionChanged: PropTypes.func,\n onDetectedEnvironmentChanged: PropTypes.func,\n pressDuration: PropTypes.number,\n pressMoveThreshold: PropTypes.number,\n shouldDecorateChildren: PropTypes.bool,\n shouldStopTouchMovePropagation: PropTypes.bool,\n style: PropTypes.object\n};\n_class.defaultProps = {\n isActivatedOnTouch: false,\n isEnabled: true,\n hoverDelayInMs: 0,\n hoverOffDelayInMs: 0,\n mapChildProps: function mapChildProps(props) {\n return props;\n },\n onActivationChanged: noop,\n onPositionChanged: noop,\n onDetectedEnvironmentChanged: noop,\n pressDuration: 500,\n pressMoveThreshold: 5,\n shouldDecorateChildren: true,\n shouldStopTouchMovePropagation: false\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this9 = this;\n\n this.onPositionChanged = function () {\n var onPositionChanged = _this9.props.onPositionChanged;\n\n onPositionChanged(_this9.state);\n };\n};\n\nexport default _class;","\nexport function getSmallToLargeImageRatio(smallImage, largeImage) {\n return getSmallToLargeElementRatio(smallImage, largeImage);\n}\n\nexport function getLargeToSmallImageRatio(smallImage, largeImage) {\n return {\n x: smallImage.width / largeImage.width,\n y: smallImage.height / largeImage.height\n };\n}\n\nexport function getContainerToImageRatio(container, image) {\n return getSmallToLargeElementRatio(container, {\n width: image.width - container.width,\n height: image.height - container.height\n });\n}\n\nfunction getSmallToLargeElementRatio(smallElement, largeElement) {\n return {\n x: largeElement.width / smallElement.width,\n y: largeElement.height / smallElement.height\n };\n}","import clamp from 'clamp';\nimport { getContainerToImageRatio, getSmallToLargeImageRatio } from './imageRatio';\n\nfunction getMinCoordinates(container, largeImage) {\n return {\n x: (largeImage.width - container.width) * -1,\n y: (largeImage.height - container.height) * -1\n };\n}\n\nfunction getMaxCoordinates() {\n return {\n x: 0,\n y: 0\n };\n}\n\nexport function getLensModeEnlargedImageCoordinates(_ref) {\n var containerDimensions = _ref.containerDimensions,\n lensCursorOffset = _ref.cursorOffset,\n largeImage = _ref.largeImage,\n position = _ref.position,\n smallImage = _ref.smallImage;\n\n var adjustedPosition = getCursorPositionAdjustedForLens(position, lensCursorOffset);\n var ratio = getSmallToLargeImageRatio(smallImage, largeImage);\n var coordinates = {\n x: Math.round(adjustedPosition.x * ratio.x) * -1,\n y: Math.round(adjustedPosition.y * ratio.y) * -1\n };\n var minCoordinates = getMinCoordinates(containerDimensions, largeImage);\n var maxCoordinates = getMaxCoordinates();\n\n return clampImageCoordinates(coordinates, minCoordinates, maxCoordinates);\n}\n\nexport function getInPlaceEnlargedImageCoordinates(_ref2) {\n var containerDimensions = _ref2.containerDimensions,\n largeImage = _ref2.largeImage,\n position = _ref2.position;\n\n var minCoordinates = getMinCoordinates(containerDimensions, largeImage);\n var maxCoordinates = getMaxCoordinates();\n var ratio = getContainerToImageRatio(containerDimensions, largeImage);\n var coordinates = {\n x: Math.round(position.x * ratio.x) * -1,\n y: Math.round(position.y * ratio.y) * -1\n };\n\n return clampImageCoordinates(coordinates, minCoordinates, maxCoordinates);\n}\n\nfunction clampImageCoordinates(imageCoordinates, minCoordinates, maxCoordinates) {\n return {\n x: clamp(imageCoordinates.x, minCoordinates.x, maxCoordinates.x),\n y: clamp(imageCoordinates.y, minCoordinates.y, maxCoordinates.y)\n };\n}\n\nfunction getCursorPositionAdjustedForLens(position, lensCursorOffset) {\n return {\n x: position.x - lensCursorOffset.x,\n y: position.y - lensCursorOffset.y\n };\n}","import PropTypes from 'prop-types';\nimport requiredIf from 'react-required-if';\nimport objectAssign from 'object-assign';\n\nvar BaseImageShape = {\n alt: PropTypes.string,\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n onLoad: PropTypes.func,\n onError: PropTypes.func\n};\n\nexport var LargeImageShape = PropTypes.shape(objectAssign({}, BaseImageShape, {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n}));\n\nexport var SmallImageShape = PropTypes.shape(objectAssign({}, BaseImageShape, {\n isFluidWidth: PropTypes.bool,\n width: requiredIf(PropTypes.number, function (props) {\n return !props.isFluidWidth;\n }),\n height: requiredIf(PropTypes.number, function (props) {\n return !props.isFluidWidth;\n })\n}));","export var INPUT_TYPE = {\n mouse: 'mouse',\n touch: 'touch'\n};\n\nexport var ENLARGED_IMAGE_POSITION = {\n over: 'over',\n beside: 'beside'\n};","import PropTypes from 'prop-types';\nimport { ENLARGED_IMAGE_POSITION } from '../constants';\n\nexport var EnlargedImagePosition = PropTypes.oneOf([ENLARGED_IMAGE_POSITION.beside, ENLARGED_IMAGE_POSITION.over]);\n\nexport var EnlargedImageContainerDimensions = PropTypes.shape({\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n});\n\nexport var ContainerDimensions = PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n});","export function noop() {}","import PropTypes from 'prop-types';\n\nexport default PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n});","import objectAssign from 'object-assign';\nimport isEqual from 'fast-deep-equal';\n\nexport function getContainerStyle(smallImage, userSpecifiedStyle) {\n var isSmallImageFluidWidth = smallImage.isFluidWidth,\n width = smallImage.width,\n height = smallImage.height;\n\n\n var fluidWidthContainerStyle = {\n width: 'auto',\n height: 'auto',\n fontSize: '0px',\n position: 'relative'\n };\n\n var fixedWidthContainerStyle = {\n width: width + 'px',\n height: height + 'px',\n position: 'relative'\n };\n\n var priorityContainerStyle = isSmallImageFluidWidth ? fluidWidthContainerStyle : fixedWidthContainerStyle;\n\n var compositContainerStyle = objectAssign({ cursor: 'crosshair' }, userSpecifiedStyle, priorityContainerStyle);\n\n return compositContainerStyle;\n}\n\nexport function getSmallImageStyle(smallImage, style) {\n var isSmallImageFluidWidth = smallImage.isFluidWidth,\n width = smallImage.width,\n height = smallImage.height;\n\n\n var fluidWidthSmallImageStyle = {\n width: '100%',\n height: 'auto',\n display: 'block',\n pointerEvents: 'none'\n };\n\n var fixedWidthSmallImageStyle = {\n width: width + 'px',\n height: height + 'px',\n pointerEvents: 'none'\n };\n\n var prioritySmallImageStyle = isSmallImageFluidWidth ? fluidWidthSmallImageStyle : fixedWidthSmallImageStyle;\n\n var compositSmallImageStyle = objectAssign({}, style, prioritySmallImageStyle);\n\n return compositSmallImageStyle;\n}\n\nfunction getPrimaryEnlargedImageContainerStyle(isInPlaceMode, isPortalRendered) {\n var baseContainerStyle = {\n overflow: 'hidden'\n };\n\n if (isPortalRendered) {\n return baseContainerStyle;\n }\n\n var sharedPositionStyle = {\n position: 'absolute',\n top: '0px'\n };\n\n if (isInPlaceMode) {\n return objectAssign(baseContainerStyle, sharedPositionStyle, { left: '0px' });\n }\n\n return objectAssign(baseContainerStyle, sharedPositionStyle, {\n left: '100%',\n marginLeft: '10px',\n border: '1px solid #d6d6d6'\n });\n}\n\nfunction getPriorityEnlargedImageContainerStyle(params) {\n var containerDimensions = params.containerDimensions,\n fadeDurationInMs = params.fadeDurationInMs,\n isTransitionActive = params.isTransitionActive;\n\n\n return {\n width: containerDimensions.width,\n height: containerDimensions.height,\n opacity: isTransitionActive ? 1 : 0,\n transition: 'opacity ' + fadeDurationInMs + 'ms ease-in',\n pointerEvents: 'none'\n };\n}\n\nvar enlargedImageContainerStyleCache = {};\n\nexport function getEnlargedImageContainerStyle(params) {\n var cache = enlargedImageContainerStyleCache;\n var _cache$params = cache.params,\n memoizedParams = _cache$params === undefined ? {} : _cache$params,\n memoizedStyle = cache.compositStyle;\n\n\n if (isEqual(memoizedParams, params)) {\n return memoizedStyle;\n }\n\n var containerDimensions = params.containerDimensions,\n userSpecifiedStyle = params.containerStyle,\n fadeDurationInMs = params.fadeDurationInMs,\n isTransitionActive = params.isTransitionActive,\n isInPlaceMode = params.isInPlaceMode,\n isPortalRendered = params.isPortalRendered;\n\n\n var primaryStyle = getPrimaryEnlargedImageContainerStyle(isInPlaceMode, isPortalRendered);\n var priorityStyle = getPriorityEnlargedImageContainerStyle({\n containerDimensions: containerDimensions,\n fadeDurationInMs: fadeDurationInMs,\n isTransitionActive: isTransitionActive\n });\n\n cache.compositStyle = objectAssign({}, primaryStyle, userSpecifiedStyle, priorityStyle);\n cache.params = params;\n\n return cache.compositStyle;\n}\n\nexport function getEnlargedImageStyle(params) {\n var imageCoordinates = params.imageCoordinates,\n userSpecifiedStyle = params.imageStyle,\n largeImage = params.largeImage;\n\n\n var translate = 'translate(' + imageCoordinates.x + 'px, ' + imageCoordinates.y + 'px)';\n\n var priorityStyle = {\n width: largeImage.width,\n height: largeImage.height,\n transform: translate,\n WebkitTransform: translate,\n msTransform: translate,\n pointerEvents: 'none'\n };\n\n var compositeImageStyle = objectAssign({}, userSpecifiedStyle, priorityStyle);\n\n return compositeImageStyle;\n}","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { getLensModeEnlargedImageCoordinates, getInPlaceEnlargedImageCoordinates } from './lib/imageCoordinates';\nimport { LargeImageShape } from './prop-types/Image';\nimport { ContainerDimensions } from './prop-types/EnlargedImage';\nimport { noop } from './utils';\nimport Point from './prop-types/Point';\nimport { getEnlargedImageContainerStyle, getEnlargedImageStyle } from './lib/styles';\n\nvar _class = function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, props));\n\n _this.state = {\n isTransitionEntering: false,\n isTransitionActive: false,\n isTransitionLeaving: false,\n isTransitionDone: false\n };\n\n _this.timers = [];\n return _this;\n }\n\n _createClass(_class, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n this.scheduleCssTransition(nextProps);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.timers.forEach(function (timerId) {\n clearTimeout(timerId);\n });\n }\n }, {\n key: 'scheduleCssTransition',\n value: function scheduleCssTransition(nextProps) {\n var _this2 = this;\n\n var _props = this.props,\n fadeDurationInMs = _props.fadeDurationInMs,\n isActive = _props.isActive,\n isPositionOutside = _props.isPositionOutside;\n\n var willIsActiveChange = isActive !== nextProps.isActive;\n var willIsPositionOutsideChange = isPositionOutside !== nextProps.isPositionOutside;\n\n if (!willIsActiveChange && !willIsPositionOutsideChange) {\n return;\n }\n\n if (nextProps.isActive && !nextProps.isPositionOutside) {\n this.setState({\n isTrainsitionDone: false,\n isTransitionEntering: true\n });\n\n this.timers.push(setTimeout(function () {\n _this2.setState({\n isTransitionEntering: false,\n isTransitionActive: true\n });\n }, 0));\n } else {\n this.setState({\n isTransitionLeaving: true,\n isTransitionActive: false\n });\n\n this.timers.push(setTimeout(function () {\n _this2.setState({\n isTransitionDone: true,\n isTransitionLeaving: false\n });\n }, fadeDurationInMs));\n }\n }\n }, {\n key: 'getImageCoordinates',\n value: function getImageCoordinates() {\n var _props2 = this.props,\n cursorOffset = _props2.cursorOffset,\n largeImage = _props2.largeImage,\n containerDimensions = _props2.containerDimensions,\n position = _props2.position,\n smallImage = _props2.smallImage,\n isInPlaceMode = _props2.isInPlaceMode;\n\n\n if (isInPlaceMode) {\n return getInPlaceEnlargedImageCoordinates({\n containerDimensions: containerDimensions,\n largeImage: largeImage,\n position: position\n });\n }\n\n return getLensModeEnlargedImageCoordinates({\n containerDimensions: containerDimensions,\n cursorOffset: cursorOffset,\n largeImage: largeImage,\n position: position,\n smallImage: smallImage\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props3 = this.props,\n containerClassName = _props3.containerClassName,\n imageClassName = _props3.imageClassName,\n isLazyLoaded = _props3.isLazyLoaded,\n largeImage = _props3.largeImage,\n _props3$largeImage = _props3.largeImage,\n _props3$largeImage$al = _props3$largeImage.alt,\n alt = _props3$largeImage$al === undefined ? '' : _props3$largeImage$al,\n _props3$largeImage$on = _props3$largeImage.onLoad,\n onLoad = _props3$largeImage$on === undefined ? noop : _props3$largeImage$on,\n _props3$largeImage$on2 = _props3$largeImage.onError,\n onError = _props3$largeImage$on2 === undefined ? noop : _props3$largeImage$on2;\n\n\n var component = React.createElement(\n 'div',\n {\n className: containerClassName,\n style: this.containerStyle\n },\n React.createElement('img', {\n alt: alt,\n className: imageClassName,\n src: largeImage.src,\n srcSet: largeImage.srcSet,\n sizes: largeImage.sizes,\n style: this.imageStyle,\n onLoad: onLoad,\n onError: onError\n })\n );\n\n if (isLazyLoaded) {\n return this.isVisible ? component : null;\n }\n\n return component;\n }\n }, {\n key: 'isVisible',\n get: function get() {\n var _state = this.state,\n isTransitionEntering = _state.isTransitionEntering,\n isTransitionActive = _state.isTransitionActive,\n isTransitionLeaving = _state.isTransitionLeaving;\n\n\n return isTransitionEntering || isTransitionActive || isTransitionLeaving;\n }\n }, {\n key: 'containerStyle',\n get: function get() {\n var _props4 = this.props,\n containerStyle = _props4.containerStyle,\n containerDimensions = _props4.containerDimensions,\n fadeDurationInMs = _props4.fadeDurationInMs,\n isPortalRendered = _props4.isPortalRendered,\n isInPlaceMode = _props4.isInPlaceMode;\n var isTransitionActive = this.state.isTransitionActive;\n\n\n return getEnlargedImageContainerStyle({\n containerDimensions: containerDimensions,\n containerStyle: containerStyle,\n fadeDurationInMs: fadeDurationInMs,\n isTransitionActive: isTransitionActive,\n isInPlaceMode: isInPlaceMode,\n isPortalRendered: isPortalRendered\n });\n }\n }, {\n key: 'imageStyle',\n get: function get() {\n var _props5 = this.props,\n imageStyle = _props5.imageStyle,\n largeImage = _props5.largeImage;\n\n\n return getEnlargedImageStyle({\n imageCoordinates: this.getImageCoordinates(),\n imageStyle: imageStyle,\n largeImage: largeImage\n });\n }\n }]);\n\n return _class;\n}(React.Component);\n\n_class.displayName = 'EnlargedImage';\n_class.defaultProps = {\n fadeDurationInMs: 0,\n isLazyLoaded: true\n};\n_class.propTypes = {\n containerClassName: PropTypes.string,\n containerStyle: PropTypes.object,\n cursorOffset: Point,\n position: Point,\n fadeDurationInMs: PropTypes.number,\n imageClassName: PropTypes.string,\n imageStyle: PropTypes.object,\n isActive: PropTypes.bool,\n isLazyLoaded: PropTypes.bool,\n largeImage: LargeImageShape,\n containerDimensions: ContainerDimensions,\n isPortalRendered: PropTypes.bool,\n isInPlaceMode: PropTypes.bool\n};\nexport default _class;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport objectAssign from 'object-assign';\nimport EnlargedImage from './EnlargedImage';\n\nvar RenderEnlargedImage = function (_Component) {\n _inherits(RenderEnlargedImage, _Component);\n\n function RenderEnlargedImage() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, RenderEnlargedImage);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = RenderEnlargedImage.__proto__ || Object.getPrototypeOf(RenderEnlargedImage)).call.apply(_ref, [this].concat(args))), _this), _this.state = { isMounted: false }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(RenderEnlargedImage, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.setState({ isMounted: true });\n\n if (this.isPortalRendered) {\n var portalId = this.props.portalId;\n\n this.portalElement = document.getElementById(portalId);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n if (!this.isMounted) {\n return null;\n }\n\n var props = this.compositProps;\n\n if (this.isPortalRendered) {\n return ReactDOM.createPortal(React.createElement(EnlargedImage, props), this.portalElement);\n }\n\n return React.createElement(EnlargedImage, props);\n }\n }, {\n key: 'isPortalIdImplemented',\n get: function get() {\n return !!this.props.portalId;\n }\n }, {\n key: 'isPortalRendered',\n get: function get() {\n var _props = this.props,\n isPortalEnabledForTouch = _props.isPortalEnabledForTouch,\n isTouchDetected = _props.isTouchDetected;\n\n\n if (!this.isPortalIdImplemented) {\n return false;\n }\n\n if (!isTouchDetected) {\n return true;\n }\n\n if (isPortalEnabledForTouch) {\n return true;\n }\n\n return false;\n }\n }, {\n key: 'isMounted',\n get: function get() {\n return this.state.isMounted;\n }\n }, {\n key: 'compositProps',\n get: function get() {\n return objectAssign({}, this.props, { isPortalRendered: this.isPortalRendered });\n }\n }]);\n\n return RenderEnlargedImage;\n}(Component);\n\nRenderEnlargedImage.propTypes = {\n isPortalEnabledForTouch: PropTypes.bool.isRequired,\n isTouchDetected: PropTypes.bool.isRequired,\n portalId: PropTypes.string\n};\nexport default RenderEnlargedImage;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport objectAssign from 'object-assign';\n\nvar Lens = function Lens(props) {\n var fadeDurationInMs = props.fadeDurationInMs,\n isActive = props.isActive,\n isPositionOutside = props.isPositionOutside,\n parentSpecifiedStyle = props.style;\n\n\n var defaultStyle = {\n width: 'auto',\n height: 'auto',\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto',\n display: 'block'\n };\n\n var computedStyle = {\n position: 'absolute',\n opacity: isActive && !isPositionOutside ? 1 : 0,\n transition: 'opacity ' + fadeDurationInMs + 'ms ease-in'\n };\n\n var compositStyle = objectAssign({}, defaultStyle, parentSpecifiedStyle, computedStyle);\n\n return React.createElement('div', { style: compositStyle });\n};\n\nLens.propTypes = {\n style: PropTypes.object,\n fadeDurationInMs: PropTypes.number,\n isActive: PropTypes.bool,\n translateX: PropTypes.number,\n translateY: PropTypes.number,\n userStyle: PropTypes.object\n};\n\nLens.defaultProps = {\n isActive: false,\n fadeDurationInMs: 0,\n translateX: 0,\n translateY: 0\n};\n\nexport default Lens;","import PropTypes from 'prop-types';\nimport Point from './Point';\nimport { SmallImageShape } from './Image';\n\nexport default {\n cursorOffset: Point,\n fadeDurationInMs: PropTypes.number,\n isActive: PropTypes.bool,\n isPositionOutside: PropTypes.bool,\n position: Point,\n smallImage: SmallImageShape,\n style: PropTypes.object\n};","import React from 'react';\nimport clamp from 'clamp';\nimport objectAssign from 'object-assign';\nimport Lens from './Lens';\nimport LensPropTypes from '../../prop-types/Lens';\n\nvar LensTop = function LensTop(_ref) {\n var cursorOffset = _ref.cursorOffset,\n position = _ref.position,\n fadeDurationInMs = _ref.fadeDurationInMs,\n isActive = _ref.isActive,\n isPositionOutside = _ref.isPositionOutside,\n smallImage = _ref.smallImage,\n parentSpecifiedStyle = _ref.style;\n\n var clearLensHeight = cursorOffset.y * 2;\n var maxHeight = smallImage.height - clearLensHeight;\n var height = clamp(position.y - cursorOffset.y, 0, maxHeight);\n var computedStyle = {\n height: height + 'px',\n width: '100%',\n top: '0px'\n };\n\n return React.createElement(Lens, {\n fadeDurationInMs: fadeDurationInMs,\n isActive: isActive,\n isPositionOutside: isPositionOutside,\n style: objectAssign({}, parentSpecifiedStyle, computedStyle)\n });\n};\n\nLensTop.propTypes = LensPropTypes;\n\nexport default LensTop;","import React from 'react';\nimport objectAssign from 'object-assign';\nimport clamp from 'clamp';\nimport Lens from './Lens';\nimport LensPropTypes from '../../prop-types/Lens';\n\nvar LensLeft = function LensLeft(_ref) {\n var cursorOffset = _ref.cursorOffset,\n position = _ref.position,\n fadeDurationInMs = _ref.fadeDurationInMs,\n isActive = _ref.isActive,\n isPositionOutside = _ref.isPositionOutside,\n smallImage = _ref.smallImage,\n parentSpecifiedStyle = _ref.style;\n\n var clearLensHeight = cursorOffset.y * 2;\n var clearLensWidth = cursorOffset.x * 2;\n var maxHeight = smallImage.height - clearLensHeight;\n var maxWidth = smallImage.width - clearLensWidth;\n var height = clearLensHeight;\n var width = clamp(position.x - cursorOffset.x, 0, maxWidth);\n var top = clamp(position.y - cursorOffset.y, 0, maxHeight);\n var computedStyle = {\n height: height + 'px',\n width: width + 'px',\n top: top + 'px',\n left: '0px'\n };\n\n return React.createElement(Lens, {\n fadeDurationInMs: fadeDurationInMs,\n isActive: isActive,\n isPositionOutside: isPositionOutside,\n style: objectAssign({}, parentSpecifiedStyle, computedStyle)\n });\n};\n\nLensLeft.propTypes = LensPropTypes;\n\nexport default LensLeft;","import React from 'react';\nimport objectAssign from 'object-assign';\nimport clamp from 'clamp';\nimport Lens from './Lens';\nimport LensPropTypes from '../../prop-types/Lens';\n\nvar LensRight = function LensRight(_ref) {\n var cursorOffset = _ref.cursorOffset,\n position = _ref.position,\n fadeDurationInMs = _ref.fadeDurationInMs,\n isActive = _ref.isActive,\n isPositionOutside = _ref.isPositionOutside,\n smallImage = _ref.smallImage,\n parentSpecifiedStyle = _ref.style;\n\n var clearLensHeight = cursorOffset.y * 2;\n var clearLensWidth = cursorOffset.x * 2;\n var maxHeight = smallImage.height - clearLensHeight;\n var maxWidth = smallImage.width - clearLensWidth;\n var height = clearLensHeight;\n var width = clamp(smallImage.width - position.x - cursorOffset.x, 0, maxWidth);\n var top = clamp(position.y - cursorOffset.y, 0, maxHeight);\n var computedStyle = {\n height: height + 'px',\n width: width + 'px',\n top: top + 'px',\n right: '0px'\n };\n\n return React.createElement(Lens, {\n fadeDurationInMs: fadeDurationInMs,\n isActive: isActive,\n isPositionOutside: isPositionOutside,\n style: objectAssign({}, parentSpecifiedStyle, computedStyle)\n });\n};\n\nLensRight.propTypes = LensPropTypes;\n\nexport default LensRight;","import React from 'react';\nimport objectAssign from 'object-assign';\nimport clamp from 'clamp';\nimport Lens from './Lens';\nimport LensPropTypes from '../../prop-types/Lens';\n\nvar LensBottom = function LensBottom(_ref) {\n var cursorOffset = _ref.cursorOffset,\n position = _ref.position,\n fadeDurationInMs = _ref.fadeDurationInMs,\n isActive = _ref.isActive,\n isPositionOutside = _ref.isPositionOutside,\n smallImage = _ref.smallImage,\n parentSpecifiedStyle = _ref.style;\n\n\n var clearLensHeight = cursorOffset.y * 2;\n var computedHeight = smallImage.height - position.y - cursorOffset.y;\n var maxHeight = smallImage.height - clearLensHeight;\n var height = clamp(computedHeight, 0, maxHeight);\n var clearLensBottom = position.y + cursorOffset.y;\n var top = Math.max(clearLensBottom, clearLensHeight);\n var computedStyle = {\n height: height + 'px',\n width: '100%',\n top: top + 'px'\n };\n\n return React.createElement(Lens, {\n fadeDurationInMs: fadeDurationInMs,\n isActive: isActive,\n isPositionOutside: isPositionOutside,\n style: objectAssign({}, parentSpecifiedStyle, computedStyle)\n });\n};\n\nLensBottom.propTypes = LensPropTypes;\n\nexport default LensBottom;","import React from 'react';\nimport objectAssign from 'object-assign';\n\nimport LensTop from './LensTop';\nimport LensLeft from './LensLeft';\nimport LensRight from './LensRight';\nimport LensBottom from './LensBottom';\n\nimport LensPropTypes from '../../prop-types/Lens';\n\nexport default function NegativeSpaceLens(inputProps) {\n var userSpecifiedStyle = inputProps.style;\n\n\n var compositLensStyle = objectAssign({ backgroundColor: 'rgba(0,0,0,.4)' }, userSpecifiedStyle);\n\n var props = objectAssign({}, inputProps, { style: compositLensStyle });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(LensTop, props),\n React.createElement(LensLeft, props),\n React.createElement(LensRight, props),\n React.createElement(LensBottom, props)\n );\n}\n\nNegativeSpaceLens.propTypes = LensPropTypes;","export default 'data:image/gif;base64,R0lGODlhZABkAPABAHOf4fj48yH5BAEAAAEALAAAAABkAGQAAAL+jI+py+0PowOB2oqvznz7Dn5iSI7SiabqWrbj68bwTLL2jUv0Lvf8X8sJhzmg0Yc8mojM5kmZjEKPzqp1MZVqs7Cr98rdisOXr7lJHquz57YwDV8j3XRb/C7v1vcovD8PwicY8VcISDGY2GDIKKf4mNAoKQZZeXg5aQk5yRml+dgZ2vOpKGraQpp4uhqYKsgKi+H6iln7N8sXG4u7p2s7ykvnyxos/DuMWtyGfKq8fAwd5nzGHN067VUtiv2lbV3GDfY9DhQu7p1pXoU+rr5ODk/j7sSePk9Ub33PlN+4jx8v4JJ/RQQa3EDwzcGFiBLi6AfN4UOGCyXegGjIoh0fisQ0rsD4y+NHjgZFqgB5y2Qfks1UPmEZ0OVLlIcKAAA7';","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component } from 'react';\nimport objectAssign from 'object-assign';\nimport LensPropTypes from '../../prop-types/Lens';\nimport clamp from 'clamp';\nimport dataUri from './assets/textured-lens-data-uri';\n\nvar PositiveSpaceLens = function (_Component) {\n _inherits(PositiveSpaceLens, _Component);\n\n function PositiveSpaceLens() {\n _classCallCheck(this, PositiveSpaceLens);\n\n return _possibleConstructorReturn(this, (PositiveSpaceLens.__proto__ || Object.getPrototypeOf(PositiveSpaceLens)).apply(this, arguments));\n }\n\n _createClass(PositiveSpaceLens, [{\n key: 'render',\n value: function render() {\n return React.createElement('div', { style: this.compositStyle });\n }\n }, {\n key: 'dimensions',\n get: function get() {\n var _props$cursorOffset = this.props.cursorOffset,\n cursorOffsetX = _props$cursorOffset.x,\n cursorOffsetY = _props$cursorOffset.y;\n\n\n return {\n width: cursorOffsetX * 2,\n height: cursorOffsetY * 2\n };\n }\n }, {\n key: 'positionOffset',\n get: function get() {\n var _props = this.props,\n _props$cursorOffset2 = _props.cursorOffset,\n cursorOffsetX = _props$cursorOffset2.x,\n cursorOffsetY = _props$cursorOffset2.y,\n _props$position = _props.position,\n positionX = _props$position.x,\n positionY = _props$position.y,\n _props$smallImage = _props.smallImage,\n imageHeight = _props$smallImage.height,\n imageWidth = _props$smallImage.width;\n var _dimensions = this.dimensions,\n width = _dimensions.width,\n height = _dimensions.height;\n\n\n var top = positionY - cursorOffsetY;\n var left = positionX - cursorOffsetX;\n var maxTop = imageHeight - height;\n var maxLeft = imageWidth - width;\n var minOffset = 0;\n\n return {\n top: clamp(top, minOffset, maxTop),\n left: clamp(left, minOffset, maxLeft)\n };\n }\n }, {\n key: 'defaultStyle',\n get: function get() {\n var fadeDurationInMs = this.props.fadeDurationInMs;\n\n\n return {\n transition: 'opacity ' + fadeDurationInMs + 'ms ease-in',\n backgroundImage: 'url(' + dataUri + ')'\n };\n }\n }, {\n key: 'userSpecifiedStyle',\n get: function get() {\n var style = this.props.style;\n\n\n return style;\n }\n }, {\n key: 'isVisible',\n get: function get() {\n var _props2 = this.props,\n isActive = _props2.isActive,\n isPositionOutside = _props2.isPositionOutside;\n\n\n return isActive && !isPositionOutside;\n }\n }, {\n key: 'priorityStyle',\n get: function get() {\n var _dimensions2 = this.dimensions,\n width = _dimensions2.width,\n height = _dimensions2.height;\n var _positionOffset = this.positionOffset,\n top = _positionOffset.top,\n left = _positionOffset.left;\n\n\n return {\n position: 'absolute',\n top: top + 'px',\n left: left + 'px',\n width: width + 'px',\n height: height + 'px',\n opacity: this.isVisible ? 1 : 0\n };\n }\n }, {\n key: 'compositStyle',\n get: function get() {\n return objectAssign(this.defaultStyle, this.userSpecifiedStyle, this.priorityStyle);\n }\n }]);\n\n return PositiveSpaceLens;\n}(Component);\n\nPositiveSpaceLens.propTypes = LensPropTypes;\nPositiveSpaceLens.defaultProps = {\n style: {}\n};\nexport default PositiveSpaceLens;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar DisplayUntilActive = function (_React$Component) {\n _inherits(DisplayUntilActive, _React$Component);\n\n function DisplayUntilActive(props) {\n _classCallCheck(this, DisplayUntilActive);\n\n var _this = _possibleConstructorReturn(this, (DisplayUntilActive.__proto__ || Object.getPrototypeOf(DisplayUntilActive)).call(this, props));\n\n _this.hasShown = false;\n return _this;\n }\n\n _createClass(DisplayUntilActive, [{\n key: 'setHasShown',\n value: function setHasShown() {\n this.hasShown = true;\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n isActive = _props.isActive,\n shouldHideAfterFirstActivation = _props.shouldHideAfterFirstActivation,\n hasShown = this.hasShown;\n\n var shouldShow = !isActive && (!hasShown || !shouldHideAfterFirstActivation);\n\n if (isActive && !hasShown) {\n this.setHasShown();\n }\n\n return shouldShow ? children : null;\n }\n }]);\n\n return DisplayUntilActive;\n}(React.Component);\n\nDisplayUntilActive.propTypes = {\n children: PropTypes.element,\n isActive: PropTypes.bool,\n shouldHideAfterFirstActivation: PropTypes.bool\n};\nDisplayUntilActive.defaultProps = {\n shouldHideAfterFirstActivation: true\n};\nexport default DisplayUntilActive;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction DefaultHint(_ref) {\n var isTouchDetected = _ref.isTouchDetected,\n hintTextMouse = _ref.hintTextMouse,\n hintTextTouch = _ref.hintTextTouch;\n\n return React.createElement(\n 'div',\n { style: {\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n position: 'absolute',\n bottom: '25px'\n } },\n React.createElement(\n 'div',\n { style: {\n display: 'flex',\n alignItems: 'center',\n padding: '5px 10px',\n backgroundColor: '#333',\n borderRadius: '10px',\n opacity: '0.90'\n } },\n React.createElement('img', {\n style: {\n width: '25px',\n height: '25px'\n },\n src: 'data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ5MC4yIDQ5MC4yIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0OTAuMiA0OTAuMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQxOC41LDQxOC41Yzk1LjYtOTUuNiw5NS42LTI1MS4yLDAtMzQ2LjhzLTI1MS4yLTk1LjYtMzQ2LjgsMHMtOTUuNiwyNTEuMiwwLDM0Ni44UzMyMi45LDUxNC4xLDQxOC41LDQxOC41eiBNODksODkgICAgYzg2LjEtODYuMSwyMjYuMS04Ni4xLDMxMi4yLDBzODYuMSwyMjYuMSwwLDMxMi4ycy0yMjYuMSw4Ni4xLTMxMi4yLDBTMywxNzUuMSw4OSw4OXoiIGZpbGw9IiNGRkZGRkYiLz4KCQk8cGF0aCBkPSJNMjQ1LjEsMzM2LjljMy40LDAsNi40LTEuNCw4LjctMy42YzIuMi0yLjIsMy42LTUuMywzLjYtOC43di02Ny4zaDY3LjNjMy40LDAsNi40LTEuNCw4LjctMy42YzIuMi0yLjIsMy42LTUuMywzLjYtOC43ICAgIGMwLTYuOC01LjUtMTIuMy0xMi4yLTEyLjJoLTY3LjN2LTY3LjNjMC02LjgtNS41LTEyLjMtMTIuMi0xMi4yYy02LjgsMC0xMi4zLDUuNS0xMi4yLDEyLjJ2NjcuM2gtNjcuM2MtNi44LDAtMTIuMyw1LjUtMTIuMiwxMi4yICAgIGMwLDYuOCw1LjUsMTIuMywxMi4yLDEyLjJoNjcuM3Y2Ny4zQzIzMi44LDMzMS40LDIzOC4zLDMzNi45LDI0NS4xLDMzNi45eiIgZmlsbD0iI0ZGRkZGRiIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=',\n alt: ''\n }),\n React.createElement(\n 'span',\n { style: {\n padding: '2px 0 0 5px',\n fontFamily: 'Arial, sans-serif',\n fontSize: '14px',\n color: 'white'\n } },\n isTouchDetected ? hintTextTouch : hintTextMouse\n )\n )\n );\n}\n\nDefaultHint.displayName = 'DefaultHint';\n\nDefaultHint.propTypes = {\n isTouchDetected: PropTypes.bool,\n hintTextMouse: PropTypes.string,\n hintTextTouch: PropTypes.string\n};\n\nexport default DefaultHint;","import { getLargeToSmallImageRatio } from './imageRatio';\n\nexport function getLensCursorOffset(smallImage, largeImage, enlargedImageContainerDimensions) {\n var ratio = getLargeToSmallImageRatio(smallImage, largeImage);\n return {\n x: getLensCursorOffsetDimension(enlargedImageContainerDimensions.width, ratio.x),\n y: getLensCursorOffsetDimension(enlargedImageContainerDimensions.height, ratio.y)\n };\n}\n\nfunction getLensCursorOffsetDimension(enlargedImageContainerDimension, ratio) {\n return Math.round(enlargedImageContainerDimension * ratio / 2);\n}","export function isPercentageFormat(val) {\n return typeof val === 'string' && /^\\d+%$/.test(val);\n}\n\nexport function convertPercentageToDecimal(percentage) {\n return parseInt(percentage) / 100;\n}\n\nexport function getEnlargedImageContainerDimension(_ref) {\n var containerDimension = _ref.containerDimension,\n smallImageDimension = _ref.smallImageDimension,\n isInPlaceMode = _ref.isInPlaceMode;\n\n if (isInPlaceMode) {\n return smallImageDimension;\n }\n\n if (isPercentageFormat(containerDimension)) {\n return smallImageDimension * convertPercentageToDecimal(containerDimension);\n }\n\n return containerDimension;\n}","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport detectIt from 'detect-it';\nimport objectAssign from 'object-assign';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactCursorPosition from 'react-cursor-position';\n\nimport RenderEnlargedImage from './RenderEnlargedImage';\nimport NegativeSpaceLens from './lens/negative-space';\nimport PositiveSpaceLens from './lens/positive-space';\nimport DisplayUntilActive from './hint/DisplayUntilActive';\nimport Hint from './hint/DefaultHint';\n\nimport { getLensCursorOffset } from './lib/lens';\nimport { getEnlargedImageContainerDimension } from './lib/dimensions';\nimport { getContainerStyle, getSmallImageStyle } from './lib/styles';\nimport { LargeImageShape, SmallImageShape } from './prop-types/Image';\nimport { EnlargedImagePosition, EnlargedImageContainerDimensions } from './prop-types/EnlargedImage';\nimport { noop } from './utils';\nimport { INPUT_TYPE, ENLARGED_IMAGE_POSITION } from './constants';\n\nvar ReactImageMagnify = function (_React$Component) {\n _inherits(ReactImageMagnify, _React$Component);\n\n function ReactImageMagnify(props) {\n _classCallCheck(this, ReactImageMagnify);\n\n var _this = _possibleConstructorReturn(this, (ReactImageMagnify.__proto__ || Object.getPrototypeOf(ReactImageMagnify)).call(this, props));\n\n var primaryInput = detectIt.primaryInput;\n var MOUSE = INPUT_TYPE.mouse,\n TOUCH = INPUT_TYPE.touch;\n\n\n _this.state = {\n smallImageWidth: 0,\n smallImageHeight: 0,\n detectedInputType: {\n isMouseDeteced: primaryInput === MOUSE,\n isTouchDetected: primaryInput === TOUCH\n }\n };\n\n _this.onSmallImageLoad = _this.onSmallImageLoad.bind(_this);\n _this.setSmallImageDimensionState = _this.setSmallImageDimensionState.bind(_this);\n _this.onDetectedInputTypeChanged = _this.onDetectedInputTypeChanged.bind(_this);\n return _this;\n }\n\n _createClass(ReactImageMagnify, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var isFluidWidth = this.props.smallImage.isFluidWidth;\n\n\n if (!isFluidWidth) {\n return;\n }\n\n this.setSmallImageDimensionState();\n window.addEventListener('resize', this.setSmallImageDimensionState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.setSmallImageDimensionState);\n }\n }, {\n key: 'onSmallImageLoad',\n value: function onSmallImageLoad(e) {\n var _props$smallImage = this.props.smallImage,\n _props$smallImage$onL = _props$smallImage.onLoad,\n onLoad = _props$smallImage$onL === undefined ? noop : _props$smallImage$onL,\n isFluidWidth = _props$smallImage.isFluidWidth;\n\n\n onLoad(e);\n\n if (!isFluidWidth) {\n return;\n }\n\n this.setSmallImageDimensionState();\n }\n }, {\n key: 'onDetectedInputTypeChanged',\n value: function onDetectedInputTypeChanged(detectedInputType) {\n this.setState({\n detectedInputType: detectedInputType\n });\n }\n }, {\n key: 'setSmallImageDimensionState',\n value: function setSmallImageDimensionState() {\n var _smallImageEl = this.smallImageEl,\n smallImageWidth = _smallImageEl.offsetWidth,\n smallImageHeight = _smallImageEl.offsetHeight;\n\n\n this.setState({\n smallImageWidth: smallImageWidth,\n smallImageHeight: smallImageHeight\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n className = _props.className,\n style = _props.style,\n hoverDelayInMs = _props.hoverDelayInMs,\n hoverOffDelayInMs = _props.hoverOffDelayInMs,\n isActivatedOnTouch = _props.isActivatedOnTouch,\n pressDuration = _props.pressDuration,\n pressMoveThreshold = _props.pressMoveThreshold,\n _props$smallImage$onE = _props.smallImage.onError,\n onError = _props$smallImage$onE === undefined ? noop : _props$smallImage$onE,\n imageClassName = _props.imageClassName,\n imageStyle = _props.imageStyle,\n lensStyle = _props.lensStyle,\n largeImage = _props.largeImage,\n enlargedImageContainerClassName = _props.enlargedImageContainerClassName,\n enlargedImageContainerStyle = _props.enlargedImageContainerStyle,\n enlargedImageClassName = _props.enlargedImageClassName,\n enlargedImageStyle = _props.enlargedImageStyle,\n enlargedImagePortalId = _props.enlargedImagePortalId,\n isEnlargedImagePortalEnabledForTouch = _props.isEnlargedImagePortalEnabledForTouch,\n fadeDurationInMs = _props.fadeDurationInMs,\n HintComponent = _props.hintComponent,\n isHintEnabled = _props.isHintEnabled,\n hintTextMouse = _props.hintTextMouse,\n hintTextTouch = _props.hintTextTouch,\n shouldHideHintAfterFirstActivation = _props.shouldHideHintAfterFirstActivation;\n\n\n var smallImage = this.smallImage;\n\n var isTouchDetected = this.state.detectedInputType.isTouchDetected;\n\n\n var cursorOffset = getLensCursorOffset(smallImage, largeImage, this.enlargedImageContainerDimensions);\n\n var Lens = this.lensComponent;\n\n return React.createElement(\n ReactCursorPosition,\n {\n className: className,\n hoverDelayInMs: hoverDelayInMs,\n hoverOffDelayInMs: hoverOffDelayInMs,\n isActivatedOnTouch: isActivatedOnTouch,\n onDetectedInputTypeChanged: this.onDetectedInputTypeChanged,\n pressDuration: pressDuration,\n pressMoveThreshold: pressMoveThreshold,\n shouldStopTouchMovePropagation: true,\n style: getContainerStyle(smallImage, style)\n },\n React.createElement('img', {\n src: smallImage.src,\n srcSet: smallImage.srcSet,\n sizes: smallImage.sizes,\n alt: smallImage.alt,\n className: imageClassName,\n style: getSmallImageStyle(smallImage, imageStyle),\n ref: function ref(el) {\n return _this2.smallImageEl = el;\n },\n onLoad: this.onSmallImageLoad,\n onError: onError\n }),\n isHintEnabled && React.createElement(\n DisplayUntilActive,\n {\n shouldHideAfterFirstActivation: shouldHideHintAfterFirstActivation\n },\n React.createElement(HintComponent, {\n isTouchDetected: isTouchDetected,\n hintTextMouse: hintTextMouse,\n hintTextTouch: hintTextTouch\n })\n ),\n this.shouldShowLens && React.createElement(Lens, {\n cursorOffset: cursorOffset,\n fadeDurationInMs: fadeDurationInMs,\n smallImage: smallImage,\n style: lensStyle\n }),\n React.createElement(RenderEnlargedImage, {\n containerClassName: enlargedImageContainerClassName,\n containerDimensions: this.enlargedImageContainerDimensions,\n containerStyle: enlargedImageContainerStyle,\n cursorOffset: cursorOffset,\n fadeDurationInMs: fadeDurationInMs,\n imageClassName: enlargedImageClassName,\n imageStyle: enlargedImageStyle,\n largeImage: largeImage,\n smallImage: smallImage,\n portalId: enlargedImagePortalId,\n isPortalEnabledForTouch: isEnlargedImagePortalEnabledForTouch,\n isTouchDetected: this.isTouchDetected,\n isInPlaceMode: this.isInPlaceMode\n })\n );\n }\n }, {\n key: 'smallImage',\n get: function get() {\n var _props2 = this.props,\n smallImage = _props2.smallImage,\n isFluidWidth = _props2.smallImage.isFluidWidth;\n\n\n if (!isFluidWidth) {\n return smallImage;\n }\n\n var _state = this.state,\n fluidWidth = _state.smallImageWidth,\n fluidHeight = _state.smallImageHeight;\n\n\n return objectAssign({}, smallImage, {\n width: fluidWidth,\n height: fluidHeight\n });\n }\n }, {\n key: 'enlargedImagePlacement',\n get: function get() {\n var userDefinedEnlargedImagePosition = this.props.enlargedImagePosition;\n var isTouchDetected = this.state.detectedInputType.isTouchDetected;\n\n\n var computedEnlargedImagePosition = isTouchDetected ? ENLARGED_IMAGE_POSITION.over : ENLARGED_IMAGE_POSITION.beside;\n\n return userDefinedEnlargedImagePosition || computedEnlargedImagePosition;\n }\n }, {\n key: 'isInPlaceMode',\n get: function get() {\n var OVER = ENLARGED_IMAGE_POSITION.over;\n\n return this.enlargedImagePlacement === OVER;\n }\n }, {\n key: 'enlargedImageContainerDimensions',\n get: function get() {\n var _props$enlargedImageC = this.props.enlargedImageContainerDimensions,\n containerWidth = _props$enlargedImageC.width,\n containerHeight = _props$enlargedImageC.height;\n var _smallImage = this.smallImage,\n smallImageWidth = _smallImage.width,\n smallImageHeight = _smallImage.height;\n\n var isInPlaceMode = this.isInPlaceMode;\n\n return {\n width: getEnlargedImageContainerDimension({\n containerDimension: containerWidth,\n smallImageDimension: smallImageWidth,\n isInPlaceMode: isInPlaceMode\n }),\n height: getEnlargedImageContainerDimension({\n containerDimension: containerHeight,\n smallImageDimension: smallImageHeight,\n isInPlaceMode: isInPlaceMode\n })\n };\n }\n }, {\n key: 'isTouchDetected',\n get: function get() {\n var isTouchDetected = this.state.detectedInputType.isTouchDetected;\n\n\n return isTouchDetected;\n }\n }, {\n key: 'shouldShowLens',\n get: function get() {\n return !this.isInPlaceMode && !this.isTouchDetected;\n }\n }, {\n key: 'lensComponent',\n get: function get() {\n var _props3 = this.props,\n shouldUsePositiveSpaceLens = _props3.shouldUsePositiveSpaceLens,\n lensComponent = _props3.lensComponent;\n\n\n if (lensComponent) {\n return lensComponent;\n }\n\n if (shouldUsePositiveSpaceLens) {\n return PositiveSpaceLens;\n }\n\n return NegativeSpaceLens;\n }\n }]);\n\n return ReactImageMagnify;\n}(React.Component);\n\nReactImageMagnify.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n hoverDelayInMs: PropTypes.number,\n hoverOffDelayInMs: PropTypes.number,\n fadeDurationInMs: PropTypes.number,\n pressDuration: PropTypes.number,\n pressMoveThreshold: PropTypes.number,\n isActivatedOnTouch: PropTypes.bool,\n imageClassName: PropTypes.string,\n imageStyle: PropTypes.object,\n lensStyle: PropTypes.object,\n lensComponent: PropTypes.func,\n shouldUsePositiveSpaceLens: PropTypes.bool,\n smallImage: SmallImageShape,\n largeImage: LargeImageShape,\n enlargedImageContainerClassName: PropTypes.string,\n enlargedImageContainerStyle: PropTypes.object,\n enlargedImageClassName: PropTypes.string,\n enlargedImageStyle: PropTypes.object,\n enlargedImageContainerDimensions: EnlargedImageContainerDimensions,\n enlargedImagePosition: EnlargedImagePosition,\n enlargedImagePortalId: PropTypes.string,\n isEnlargedImagePortalEnabledForTouch: PropTypes.bool,\n hintComponent: PropTypes.func,\n hintTextMouse: PropTypes.string,\n hintTextTouch: PropTypes.string,\n isHintEnabled: PropTypes.bool,\n shouldHideHintAfterFirstActivation: PropTypes.bool\n};\nReactImageMagnify.defaultProps = {\n enlargedImageContainerDimensions: {\n width: '100%',\n height: '100%'\n },\n isEnlargedImagePortalEnabledForTouch: false,\n fadeDurationInMs: 300,\n hintComponent: Hint,\n shouldHideHintAfterFirstActivation: true,\n isHintEnabled: false,\n hintTextMouse: 'Hover to Zoom',\n hintTextTouch: 'Long-Touch to Zoom',\n hoverDelayInMs: 250,\n hoverOffDelayInMs: 150,\n shouldUsePositiveSpaceLens: false\n};\n\n\nexport default ReactImageMagnify;","'use strict';\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n var arrA = Array.isArray(a)\n , arrB = Array.isArray(b)\n , i;\n\n if (arrA && arrB) {\n if (a.length != b.length) return false;\n for (i = 0; i < a.length; i++)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA && dateB) return a.getTime() == b.getTime();\n if (dateA != dateB) return false;\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA && regexpB) return a.toString() == b.toString();\n if (regexpA != regexpB) return false;\n\n for (i = 0; i < keys.length; i++)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = 0; i < keys.length; i++)\n if(!equal(a[keys[i]], b[keys[i]])) return false;\n\n return true;\n }\n\n return false;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = function requiredIf(type, condition) {\n return function(props) {\n var test = condition(props) ? type.isRequired : type;\n return test.apply(this, arguments);\n };\n};\n"],"names":["module","exports","value","min","max","Object","defineProperty","detectHover","update","window","matchMedia","hover","matches","none","anyHover","anyNone","_detectHover2","_interopRequireDefault","_detectPointer2","_detectTouchEvents2","_detectPassiveEvents2","obj","__esModule","default","detectIt","state","detectPointer","detectTouchEvents","detectPassiveEvents","updateOnlyOwnProperties","hasTouch","anyFine","passiveEvents","hasSupport","deviceType","keys","filter","key","every","navigator","test","userAgent","toLowerCase","hasMouse","primaryInput","parseInt","exec","fine","coarse","anyCoarse","browserSupportsApi","Boolean","TouchEvent","isObject","props","fn","isFunction","res","i","length","val","indexOf","isPlainObject","Array","isArray","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","prototype","ElementRelativeCursorPosition","el","instance","TypeError","_classCallCheck","this","_rootEl$getBoundingCl","getRootOfEl","getBoundingClientRect","docLeft","left","docTop","top","_el$getBoundingClient","elLeft","elTop","x","Math","abs","y","parentElement","event","documentRelativeElementOffset","lastEvent","position","getDocumentRelativeCursorPosition","cursorX","cursorY","offsetX","offsetY","round","pageX","pageY","getComputedElementRelativeCursorPosition","get","elementOffset","getDocumentRelativeElementOffset","addEventListener","eventName","handler","options","removeEventListener","PRESS_EVENT_TIMER_NAME","SET_ACTIVATION_TIMER_NAME","UNSET_ACTIVATION_TIMER_NAME","_class","_React$Component","_this","self","call","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","_initialiseProps","detectedEnvironment","isMouseDetected","isTouchDetected","elementDimensions","width","height","isActive","isPositionOutside","shouldGuardAgainstMouseEmulationByDevices","eventListeners","timers","onTouchStart","bind","onTouchMove","onTouchEnd","onTouchCancel","onMouseEnter","onMouseMove","onMouseLeave","subClass","superClass","create","constructor","setPrototypeOf","_inherits","e","init","onTouchDetected","setShouldGuardAgainstMouseEmulationByDevices","core","getCursorPosition","getTouchEvent","setPositionState","isActivatedOnTouch","preventDefault","activate","initPressEventCriteria","setPressEventTimer","isCoreReady","shouldStopTouchMovePropagation","stopPropagation","setPressEventCriteria","deactivate","unsetShouldGuardAgainstMouseEmulationByDevices","onMouseDetected","clearActivationTimers","schedulActivation","hoverDelayInMs","scheduleDeactivation","hoverOffDelayInMs","setState","environment","onDetectedEnvironmentChanged","isEnabled","enable","_ref","willBeEnabled","disable","clearTimers","addEventListeners","removeEventListeners","setElementDimensionsState","getElementDimensions","_core","lastMouseEvent","undefined","onActivationChanged","_this2","clearTimer","_state","onPositionChanged","getIsPositionOutside","dimensions","schedule","_this3","scheduleId","setTimeout","push","id","_this4","_this5","_props","pressDuration","pressMoveThreshold","currentElTop","initialElTop","_this6","timer","pop","clearTimeout","timerName","forEach","_state$elementDimensi","touches","reactElement","type","child","getIsReactComponent","shouldDecorateChildren","cloneElement","children","_this7","Children","shouldDecorateChild","decorateChild","passive","ownPropNames","propTypes","_this8","_props2","className","mapChildProps","style","getPassThroughProps","ref","WebkitUserSelect","decorateChildren","displayName","defaultProps","noop","_this9","getSmallToLargeElementRatio","smallElement","largeElement","getMinCoordinates","container","largeImage","clampImageCoordinates","imageCoordinates","minCoordinates","maxCoordinates","BaseImageShape","alt","src","srcSet","sizes","onLoad","onError","LargeImageShape","SmallImageShape","isFluidWidth","ENLARGED_IMAGE_POSITION","EnlargedImagePosition","EnlargedImageContainerDimensions","ContainerDimensions","getContainerStyle","smallImage","userSpecifiedStyle","isSmallImageFluidWidth","priorityContainerStyle","fontSize","cursor","getSmallImageStyle","prioritySmallImageStyle","display","pointerEvents","enlargedImageContainerStyleCache","isTransitionEntering","isTransitionActive","isTransitionLeaving","isTransitionDone","nextProps","scheduleCssTransition","timerId","fadeDurationInMs","willIsActiveChange","willIsPositionOutsideChange","isTrainsitionDone","cursorOffset","containerDimensions","isInPlaceMode","_ref2","image","ratio","getInPlaceEnlargedImageCoordinates","lensCursorOffset","adjustedPosition","getCursorPositionAdjustedForLens","getSmallToLargeImageRatio","getLensModeEnlargedImageCoordinates","_props3","containerClassName","imageClassName","isLazyLoaded","_props3$largeImage","_props3$largeImage$al","_props3$largeImage$on","_props3$largeImage$on2","component","containerStyle","imageStyle","isVisible","_props4","isPortalRendered","params","cache","_cache$params","memoizedParams","memoizedStyle","compositStyle","primaryStyle","baseContainerStyle","overflow","sharedPositionStyle","marginLeft","border","getPrimaryEnlargedImageContainerStyle","priorityStyle","opacity","transition","getPriorityEnlargedImageContainerStyle","getEnlargedImageContainerStyle","_props5","translate","transform","WebkitTransform","msTransform","getEnlargedImageStyle","getImageCoordinates","Point","RenderEnlargedImage","_Component","_temp","_len","arguments","args","_key","apply","concat","isMounted","portalId","portalElement","document","getElementById","compositProps","EnlargedImage","isPortalEnabledForTouch","isPortalIdImplemented","Component","Lens","parentSpecifiedStyle","computedStyle","right","bottom","translateX","translateY","userStyle","LensTop","clearLensHeight","maxHeight","LensLeft","clearLensWidth","maxWidth","LensRight","LensBottom","computedHeight","clearLensBottom","NegativeSpaceLens","inputProps","compositLensStyle","backgroundColor","PositiveSpaceLens","_props$cursorOffset","_props$cursorOffset2","cursorOffsetX","cursorOffsetY","_props$position","positionX","positionY","_props$smallImage","imageHeight","imageWidth","_dimensions","maxTop","maxLeft","backgroundImage","_dimensions2","_positionOffset","positionOffset","defaultStyle","DisplayUntilActive","hasShown","shouldHideAfterFirstActivation","shouldShow","setHasShown","DefaultHint","hintTextMouse","hintTextTouch","justifyContent","alignItems","padding","borderRadius","fontFamily","color","getLensCursorOffsetDimension","enlargedImageContainerDimension","getEnlargedImageContainerDimension","containerDimension","smallImageDimension","ReactImageMagnify","smallImageWidth","smallImageHeight","detectedInputType","isMouseDeteced","onSmallImageLoad","setSmallImageDimensionState","onDetectedInputTypeChanged","_props$smallImage$onL","_smallImageEl","smallImageEl","offsetWidth","offsetHeight","_props$smallImage$onE","lensStyle","enlargedImageContainerClassName","enlargedImageContainerStyle","enlargedImageClassName","enlargedImageStyle","enlargedImagePortalId","isEnlargedImagePortalEnabledForTouch","HintComponent","hintComponent","isHintEnabled","shouldHideHintAfterFirstActivation","enlargedImageContainerDimensions","getLargeToSmallImageRatio","getLensCursorOffset","lensComponent","ReactCursorPosition","shouldShowLens","fluidWidth","fluidHeight","userDefinedEnlargedImagePosition","enlargedImagePosition","enlargedImagePlacement","_props$enlargedImageC","containerWidth","containerHeight","_smallImage","shouldUsePositiveSpaceLens","equal","a","b","arrA","arrB","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","toString","hasOwnProperty","invariant","condition"],"sourceRoot":""}