{"version":3,"sources":["webpack:///./node_modules/use-media/lib/useMedia.js","webpack:///./node_modules/use-media/lib/utilities/queryObjectToString.js","webpack:///./node_modules/ramda/es/internal/_xfindIndex.js","webpack:///./node_modules/ramda/es/findIndex.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/use-media/lib/utilities/index.js","webpack:///./node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","webpack:///./node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","webpack:///./node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","webpack:///./node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","webpack:///./node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","webpack:///./node_modules/@juggle/resize-observer/lib/utils/element.js","webpack:///./node_modules/@juggle/resize-observer/lib/utils/global.js","webpack:///./node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","webpack:///./node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","webpack:///./node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","webpack:///./node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","webpack:///./node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","webpack:///./node_modules/@juggle/resize-observer/lib/utils/process.js","webpack:///./node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","webpack:///./node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","webpack:///./node_modules/@juggle/resize-observer/lib/utils/scheduler.js","webpack:///./node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","webpack:///./node_modules/@juggle/resize-observer/lib/ResizeObservation.js","webpack:///./node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","webpack:///./node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","webpack:///./node_modules/@juggle/resize-observer/lib/ResizeObserver.js","webpack:///./node_modules/react-use/esm/useMeasure.js","webpack:///./node_modules/ramda/es/and.js","webpack:///./node_modules/ramda/es/not.js","webpack:///./node_modules/ramda/es/isNil.js","webpack:///./src/components/shared/ImageGallery/ImageGallery.js","webpack:///./node_modules/ramda/es/internal/_concat.js","webpack:///./node_modules/ramda/es/addIndex.js","webpack:///./node_modules/use-media/lib/utilities/noop.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/gatsby-image/withIEPolyfill/index.js","webpack:///./node_modules/react-swipeable/es/index.js","webpack:///./node_modules/use-media/lib/index.js","webpack:///./node_modules/use-media/lib/utilities/camelToHyphen.js"],"names":["Object","defineProperty","exports","value","react_1","utilities_1","mockMediaQueryList","media","matches","onchange","noop","addListener","removeListener","addEventListener","removeEventListener","dispatchEvent","_","createUseMedia","effect","rawQuery","defaultState","_a","useState","state","setState","query","queryObjectToString","mounted","mediaQueryList","window","matchMedia","onChange","Boolean","useMedia","useEffect","useMediaLayout","useLayoutEffect","default","camelToHyphen_1","entries","map","feature","convertedFeature","convertedValue","test","join","XFindIndex","f","xf","this","idx","found","prototype","_xfBase","init","result","input","_reduced","_curry2","findIndex","_dispatchable","fn","list","len","length","OFI","propRegex","testImg","Image","style","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","setAttribute","autoModeEnabled","setPlaceholder","img","width","height","placeholder","call","onImageReady","callback","naturalWidth","setTimeout","fixOne","el","parsed","getComputedStyle","fontFamily","props","exec","getStyle","ofi","skipTest","srcset","src","naturalHeight","descriptors","get","prop","set","ss","keepSrcUsable","err","console","warn","picturefill","pf","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","replace","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","imgs","opts","startAutoMode","document","getElementsByTagName","querySelectorAll","i","body","e","target","tagName","watchMQ","bind","getOfiImageMaybe","name","HTMLImageElement","String","hijackAttributes","module","_identity","x","identity","_curry1","camelToHyphen","queryObjectToString_1","noop_1","ResizeObserverBoxOptions","resizeObservers","msg","trigger","DOMRectReadOnly","y","top","left","bottom","right","freeze","toJSON","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","obj","scope","ownerDocument","defaultView","Element","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","navigator","userAgent","parseDimension","pixel","parseFloat","inlineSize","blockSize","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","forceRecalculation","has","cs","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","Math","round","devicePixelRatio","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","node","Infinity","depth","parent","parentNode","shallowestDepth","callbacks","forEach","ro","activeTargets","ot","entry","targetDepth","push","lastReportedSize","observer","splice","_i","callbacks_1","skippedTargets","observationTargets","isActive","event","some","ErrorEvent","message","createEvent","initEvent","queueMicroTask","toggle_1","el_1","createTextNode","MutationObserver","cb","observe","characterData","textContent","watching","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","scheduler","Scheduler","_this","stopped","listener","schedule","run","until","elementsHaveResized","start","requestAnimationFrame","stop","disconnect","updateCount","n","ResizeObservation","CONTENT_BOX","size","type","isReplacedElement","display","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","rect","a","b","ImageGallery","className","metadata","showHoverInfo","showLabelInfo","queries","values","defaultValue","contextMenuListener","hasActiveHover","useMemo","and","compose","hasActiveLabel","parsedQueries","parsedValues","parsedDefaultValue","columnMatchIndex","columns","useMeasure","debounce","scroll","polyfill","ref","heights","Array","fill","gridItems","column","xy","child","transitions","useTransition","item","from","opacity","enter","update","leave","config","mass","tension","friction","trail","getImageData","curry","find","propEq","head","split","detailsHover","label","excerpt","detailsLabel","classnames","rest","key","transform","fluid","alt","_concat","set1","set2","len1","len2","curryN","origFn","args","apply","MapShim","Map","getIndex","arr","class_1","__entries__","enumerable","configurable","delete","clear","ctx","isBrowser","global$1","self","Function","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","propertyName","getInstance","instance_","defineConfigurable","keys","writable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","styles","positions","reduce","position","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","getContentRect","bbox","getSVGContentRect","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","create","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","method","_interopRequireWildcard3","require","_interopRequireDefault","__esModule","_extends2","_objectWithoutPropertiesLoose2","_interopRequireWildcard2","_inheritsLoose2","_react","_propTypes","_index","ImageWithIEPolyfill","_Component","_len","_key","concat","imageRef","innerRef","createRef","placeholderRef","_proto","componentDidMount","_this2","createElement","objectFit","objectPosition","Promise","resolve","then","_ref","ObjectFitImages","current","render","_this$props","polyfillStyle","imgStyle","placeholderStyle","Component","propTypes","string","defaultProps","_default","forwardRef","_extends","assign","source","hasOwnProperty","preventDefaultTouchmoveEvent","delta","rotationAngle","trackMouse","trackTouch","initialState","swiping","eventData","undefined","rotateXYByAngle","pos","angle","angleInRadians","PI","cos","sin","getHandlers","handlerProps","onStart","touches","onMove","onUp","clientX","clientY","initial","first","_ref2","_rotateXYByAngle","deltaX","deltaY","absX","absY","velocity","sqrt","dir","getDirection","onSwiping","cancelablePageSwipe","onSwiped","cancelable","preventDefault","onEnd","cleanUpMouse","attachTouch","tls","_ref3","h","_ref4","output","addState","cleanUpTouch","onMouseDown","updateTransientState","useSwipeable","transientState","useRef","transientProps","_React$useMemo","handlers","_React$PureComponent","subClass","superClass","Swipeable","_set","constructor","__proto__","_this$props$nodeName","nodeName","children","_getHandlers","PureComponent","useMedia_1","camelString","toLowerCase"],"mappings":"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","file":"dda3117e6b77b3a79ba47e9ae20598953a06efd2-0b93abc914f1c26d4b2a.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nvar utilities_1 = require(\"./utilities\");\n\nexports.mockMediaQueryList = {\n media: '',\n matches: false,\n onchange: utilities_1.noop,\n addListener: utilities_1.noop,\n removeListener: utilities_1.noop,\n addEventListener: utilities_1.noop,\n removeEventListener: utilities_1.noop,\n dispatchEvent: function dispatchEvent(_) {\n return true;\n }\n};\n\nvar createUseMedia = function createUseMedia(effect) {\n return function (rawQuery, defaultState) {\n if (defaultState === void 0) {\n defaultState = false;\n }\n\n var _a = react_1.useState(defaultState),\n state = _a[0],\n setState = _a[1];\n\n var query = utilities_1.queryObjectToString(rawQuery);\n effect(function () {\n var mounted = true;\n var mediaQueryList = typeof window === 'undefined' ? exports.mockMediaQueryList : window.matchMedia(query);\n\n var onChange = function onChange() {\n if (!mounted) {\n return;\n }\n\n setState(Boolean(mediaQueryList.matches));\n };\n\n mediaQueryList.addListener(onChange);\n setState(mediaQueryList.matches);\n return function () {\n mounted = false;\n mediaQueryList.removeListener(onChange);\n };\n }, [query]);\n return state;\n };\n};\n\nexports.useMedia = createUseMedia(react_1.useEffect);\nexports.useMediaLayout = createUseMedia(react_1.useLayoutEffect);\nexports.default = exports.useMedia;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar camelToHyphen_1 = require(\"./camelToHyphen\");\n\nvar QUERY_COMBINATOR = ' and ';\n\nfunction queryObjectToString(query) {\n if (typeof query === 'string') {\n return query;\n }\n\n return Object.entries(query).map(function (_a) {\n var feature = _a[0],\n value = _a[1];\n var convertedFeature = camelToHyphen_1.default(feature);\n var convertedValue = value;\n\n if (typeof convertedValue === 'boolean') {\n return convertedValue ? convertedFeature : \"not \" + convertedFeature;\n }\n\n if (typeof convertedValue === 'number' && /[height|width]$/.test(convertedFeature)) {\n convertedValue = convertedValue + \"px\";\n }\n\n return \"(\" + convertedFeature + \": \" + convertedValue + \")\";\n }).join(QUERY_COMBINATOR);\n}\n\nexports.default = queryObjectToString;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindIndex = /*#__PURE__*/function () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex = /*#__PURE__*/_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\nexport default _xfindIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\nexport default findIndex;","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {\n style: {\n 'object-position': 1\n }\n} : new Image();\nvar supportsObjectFit = ('object-fit' in testImg.style);\nvar supportsObjectPosition = ('object-position' in testImg.style);\nvar supportsOFI = ('background-size' in testImg.style);\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\";\n}\n\nfunction polyfillCurrentSrc(el) {\n if (el.srcset && !supportsCurrentSrc && window.picturefill) {\n var pf = window.picturefill._; // parse srcset with picturefill where currentSrc isn't available\n\n if (!el[pf.ns] || !el[pf.ns].evaled) {\n // force synchronous srcset parsing\n pf.fillImg(el, {\n reselect: true\n });\n }\n\n if (!el[pf.ns].curSrc) {\n // force picturefill to parse srcset\n el[pf.ns].supported = false;\n pf.fillImg(el, {\n reselect: true\n });\n } // retrieve parsed currentSrc, if any\n\n\n el.currentSrc = el[pf.ns].curSrc || el.src;\n }\n}\n\nfunction getStyle(el) {\n var style = getComputedStyle(el).fontFamily;\n var parsed;\n var props = {};\n\n while ((parsed = propRegex.exec(style)) !== null) {\n props[parsed[1]] = parsed[2];\n }\n\n return props;\n}\n\nfunction setPlaceholder(img, width, height) {\n // Default: fill width, no height\n var placeholder = createPlaceholder(width || 1, height || 0); // Only set placeholder if it's different\n\n if (nativeGetAttribute.call(img, 'src') !== placeholder) {\n nativeSetAttribute.call(img, 'src', placeholder);\n }\n}\n\nfunction onImageReady(img, callback) {\n // naturalWidth is only available when the image headers are loaded,\n // this loop will poll it every 100ms.\n if (img.naturalWidth) {\n callback(img);\n } else {\n setTimeout(onImageReady, 100, img, callback);\n }\n}\n\nfunction fixOne(el) {\n var style = getStyle(el);\n var ofi = el[OFI];\n style['object-fit'] = style['object-fit'] || 'fill'; // default value\n // Avoid running where unnecessary, unless OFI had already done its deed\n\n if (!ofi.img) {\n // fill is the default behavior so no action is necessary\n if (style['object-fit'] === 'fill') {\n return;\n } // Where object-fit is supported and object-position isn't (Safari < 10)\n\n\n if (!ofi.skipTest && // unless user wants to apply regardless of browser support\n supportsObjectFit && // if browser already supports object-fit\n !style['object-position'] // unless object-position is used\n ) {\n return;\n }\n } // keep a clone in memory while resetting the original to a blank\n\n\n if (!ofi.img) {\n ofi.img = new Image(el.width, el.height);\n ofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n ofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src; // preserve for any future cloneNode calls\n // https://github.com/bfred-it/object-fit-images/issues/53\n\n nativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\n if (el.srcset) {\n nativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n }\n\n setPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height); // remove srcset because it overrides src\n\n if (el.srcset) {\n el.srcset = '';\n }\n\n try {\n keepSrcUsable(el);\n } catch (err) {\n if (window.console) {\n console.warn('https://bit.ly/ofi-old-browser');\n }\n }\n }\n\n polyfillCurrentSrc(ofi.img);\n el.style.backgroundImage = \"url(\\\"\" + (ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"') + \"\\\")\";\n el.style.backgroundPosition = style['object-position'] || 'center';\n el.style.backgroundRepeat = 'no-repeat';\n el.style.backgroundOrigin = 'content-box';\n\n if (/scale-down/.test(style['object-fit'])) {\n onImageReady(ofi.img, function () {\n if (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n el.style.backgroundSize = 'contain';\n } else {\n el.style.backgroundSize = 'auto';\n }\n });\n } else {\n el.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n }\n\n onImageReady(ofi.img, function (img) {\n setPlaceholder(el, img.naturalWidth, img.naturalHeight);\n });\n}\n\nfunction keepSrcUsable(el) {\n var descriptors = {\n get: function get(prop) {\n return el[OFI].img[prop ? prop : 'src'];\n },\n set: function set(value, prop) {\n el[OFI].img[prop ? prop : 'src'] = value;\n nativeSetAttribute.call(el, \"data-ofi-\" + prop, value); // preserve for any future cloneNode\n\n fixOne(el);\n return value;\n }\n };\n Object.defineProperty(el, 'src', descriptors);\n Object.defineProperty(el, 'currentSrc', {\n get: function get() {\n return descriptors.get('currentSrc');\n }\n });\n Object.defineProperty(el, 'srcset', {\n get: function get() {\n return descriptors.get('srcset');\n },\n set: function set(ss) {\n return descriptors.set(ss, 'srcset');\n }\n });\n}\n\nfunction hijackAttributes() {\n function getOfiImageMaybe(el, name) {\n return el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n }\n\n if (!supportsObjectPosition) {\n HTMLImageElement.prototype.getAttribute = function (name) {\n return nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n };\n\n HTMLImageElement.prototype.setAttribute = function (name, value) {\n return nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n };\n }\n}\n\nfunction fix(imgs, opts) {\n var startAutoMode = !autoModeEnabled && !imgs;\n opts = opts || {};\n imgs = imgs || 'img';\n\n if (supportsObjectPosition && !opts.skipTest || !supportsOFI) {\n return false;\n } // use imgs as a selector or just select all images\n\n\n if (imgs === 'img') {\n imgs = document.getElementsByTagName('img');\n } else if (typeof imgs === 'string') {\n imgs = document.querySelectorAll(imgs);\n } else if (!('length' in imgs)) {\n imgs = [imgs];\n } // apply fix to all\n\n\n for (var i = 0; i < imgs.length; i++) {\n imgs[i][OFI] = imgs[i][OFI] || {\n skipTest: opts.skipTest\n };\n fixOne(imgs[i]);\n }\n\n if (startAutoMode) {\n document.body.addEventListener('load', function (e) {\n if (e.target.tagName === 'IMG') {\n fix(e.target, {\n skipTest: opts.skipTest\n });\n }\n }, true);\n autoModeEnabled = true;\n imgs = 'img'; // reset to a generic selector for watchMQ\n } // if requested, watch media queries for object-fit change\n\n\n if (opts.watchMQ) {\n window.addEventListener('resize', fix.bind(null, imgs, {\n skipTest: opts.skipTest\n }));\n }\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\nhijackAttributes();\nmodule.exports = fix;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity = /*#__PURE__*/_curry1(_identity);\n\nexport default identity;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar camelToHyphen_1 = require(\"./camelToHyphen\");\n\nexports.camelToHyphen = camelToHyphen_1.default;\n\nvar queryObjectToString_1 = require(\"./queryObjectToString\");\n\nexports.queryObjectToString = queryObjectToString_1.default;\n\nvar noop_1 = require(\"./noop\");\n\nexports.noop = noop_1.default;","var ResizeObserverBoxOptions;\n\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\n\nexport { ResizeObserverBoxOptions };","var resizeObservers = [];\nexport { resizeObservers };","var msg = 'ResizeObserver loop completed with undelivered notifications.';\n\nvar deliverResizeLoopError = function deliverResizeLoopError() {\n var event;\n\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n } else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n\n window.dispatchEvent(event);\n};\n\nexport { deliverResizeLoopError };","var DOMRectReadOnly = function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return Object.freeze(this);\n }\n\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this,\n x = _a.x,\n y = _a.y,\n top = _a.top,\n right = _a.right,\n bottom = _a.bottom,\n left = _a.left,\n width = _a.width,\n height = _a.height;\n\n return {\n x: x,\n y: y,\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height\n };\n };\n\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n\n return DOMRectReadOnly;\n}();\n\nexport { DOMRectReadOnly };","var trigger;\nvar callbacks = [];\n\nvar notify = function notify() {\n return callbacks.splice(0).forEach(function (cb) {\n return cb();\n });\n};\n\nvar queueMicroTask = function queueMicroTask(callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = {\n characterData: true\n };\n new MutationObserver(function () {\n return notify();\n }).observe(el_1, config);\n\n trigger = function trigger() {\n el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++);\n };\n }\n\n callbacks.push(callback);\n trigger();\n};\n\nexport { queueMicroTask };","var isSVG = function isSVG(target) {\n return target instanceof SVGElement && 'getBBox' in target;\n};\n\nvar isHidden = function isHidden(target) {\n if (isSVG(target)) {\n var _a = target.getBBox(),\n width = _a.width,\n height = _a.height;\n\n return !width && !height;\n }\n\n var _b = target,\n offsetWidth = _b.offsetWidth,\n offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\n\nvar isElement = function isElement(obj) {\n var _a, _b;\n\n var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\n\nvar isReplacedElement = function isReplacedElement(target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n\n return false;\n};\n\nexport { isSVG, isHidden, isElement, isReplacedElement };","export var global = typeof window !== 'undefined' ? window : {};","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = /msie|trident/i.test(global.navigator && global.navigator.userAgent);\n\nvar parseDimension = function parseDimension(pixel) {\n return parseFloat(pixel || '0');\n};\n\nvar size = function size(inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) {\n inlineSize = 0;\n }\n\n if (blockSize === void 0) {\n blockSize = 0;\n }\n\n if (switchSizes === void 0) {\n switchSizes = false;\n }\n\n return Object.freeze({\n inlineSize: (switchSizes ? blockSize : inlineSize) || 0,\n blockSize: (switchSizes ? inlineSize : blockSize) || 0\n });\n};\n\nvar zeroBoxes = Object.freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\n\nvar calculateBoxSizes = function calculateBoxSizes(target, forceRecalculation) {\n if (forceRecalculation === void 0) {\n forceRecalculation = false;\n }\n\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = Object.freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\n\nvar calculateBoxSize = function calculateBoxSize(target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation),\n borderBoxSize = _a.borderBoxSize,\n contentBoxSize = _a.contentBoxSize,\n devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n\n default:\n return contentBoxSize;\n }\n};\n\nexport { calculateBoxSize, calculateBoxSizes };","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\n\nvar ResizeObserverEntry = function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = [boxes.borderBoxSize];\n this.contentBoxSize = [boxes.contentBoxSize];\n this.devicePixelContentBoxSize = [boxes.devicePixelContentBoxSize];\n }\n\n return ResizeObserverEntry;\n}();\n\nexport { ResizeObserverEntry };","import { isHidden } from '../utils/element';\n\nvar calculateDepthForNode = function calculateDepthForNode(node) {\n if (isHidden(node)) {\n return Infinity;\n }\n\n var depth = 0;\n var parent = node.parentNode;\n\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n\n return depth;\n};\n\nexport { calculateDepthForNode };","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\n\nvar broadcastActiveObservations = function broadcastActiveObservations() {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n\n return shallowestDepth;\n};\n\nexport { broadcastActiveObservations };","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\n\nvar gatherActiveObservationsAtDepth = function gatherActiveObservationsAtDepth(depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n } else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\n\nexport { gatherActiveObservationsAtDepth };","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\n\nvar process = function process() {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n\n return depth > 0;\n};\n\nexport { process };","import { resizeObservers } from '../utils/resizeObservers';\n\nvar hasActiveObservations = function hasActiveObservations() {\n return resizeObservers.some(function (ro) {\n return ro.activeTargets.length > 0;\n });\n};\n\nexport { hasActiveObservations };","import { resizeObservers } from '../utils/resizeObservers';\n\nvar hasSkippedObservations = function hasSkippedObservations() {\n return resizeObservers.some(function (ro) {\n return ro.skippedTargets.length > 0;\n });\n};\n\nexport { hasSkippedObservations };","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\n\nvar isWatching = function isWatching() {\n return !!watching;\n};\n\nvar CATCH_PERIOD = 250;\nvar observerConfig = {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true\n};\nvar events = ['resize', 'load', 'transitionend', 'animationend', 'animationstart', 'animationiteration', 'keyup', 'keydown', 'mouseup', 'mousedown', 'mouseover', 'mouseout', 'blur', 'focus'];\n\nvar time = function time(timeout) {\n if (timeout === void 0) {\n timeout = 0;\n }\n\n return Date.now() + timeout;\n};\n\nvar scheduled = false;\n\nvar Scheduler = function () {\n function Scheduler() {\n var _this = this;\n\n this.stopped = true;\n\n this.listener = function () {\n return _this.schedule();\n };\n }\n\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n\n if (timeout === void 0) {\n timeout = CATCH_PERIOD;\n }\n\n if (scheduled) {\n return;\n }\n\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n\n try {\n elementsHaveResized = process();\n } finally {\n scheduled = false;\n timeout = until - time();\n\n if (!isWatching()) {\n return;\n }\n\n if (elementsHaveResized) {\n _this.run(1000);\n } else if (timeout > 0) {\n _this.run(timeout);\n } else {\n _this.start();\n }\n }\n });\n };\n\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n\n Scheduler.prototype.observe = function () {\n var _this = this;\n\n var cb = function cb() {\n return _this.observer && _this.observer.observe(document.body, observerConfig);\n };\n\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n\n Scheduler.prototype.start = function () {\n var _this = this;\n\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) {\n return global.addEventListener(name, _this.listener, true);\n });\n }\n };\n\n Scheduler.prototype.stop = function () {\n var _this = this;\n\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) {\n return global.removeEventListener(name, _this.listener, true);\n });\n this.stopped = true;\n }\n };\n\n return Scheduler;\n}();\n\nvar scheduler = new Scheduler();\n\nvar updateCount = function updateCount(n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\n\nexport { scheduler, updateCount };","import { queueMicroTask } from './queueMicroTask';\n\nvar queueResizeObserver = function queueResizeObserver(cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\n\nexport { queueResizeObserver };","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\n\nvar skipNotifyOnElement = function skipNotifyOnElement(target) {\n return !isSVG(target) && !isReplacedElement(target) && getComputedStyle(target).display === 'inline';\n};\n\nvar ResizeObservation = function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n\n if (this.lastReportedSize.inlineSize !== size.inlineSize || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n\n return false;\n };\n\n return ResizeObservation;\n}();\n\nexport { ResizeObservation };","var ResizeObserverDetail = function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n\n return ResizeObserverDetail;\n}();\n\nexport { ResizeObserverDetail };","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\n\nvar getObservationIndex = function getObservationIndex(observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar ResizeObserverController = function () {\n function ResizeObserverController() {}\n\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) {\n return _this.unobserve(resizeObserver, ot.target);\n });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n\n return ResizeObserverController;\n}();\n\nexport { ResizeObserverController };","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\n\nvar ResizeObserver = function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n\n ResizeObserverController.connect(this, callback);\n }\n\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n\n ResizeObserverController.observe(this, target, options);\n };\n\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n\n ResizeObserverController.unobserve(this, target);\n };\n\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n\n return ResizeObserver;\n}();\n\nexport { ResizeObserver };","import { useCallback, useState } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nvar useMeasure = function useMeasure() {\n var _a = useState({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n }),\n rect = _a[0],\n set = _a[1];\n\n var observer = useState(function () {\n return new ResizeObserver(function (entries) {\n var entry = entries[0];\n\n if (entry) {\n set(entry.contentRect);\n }\n });\n })[0];\n var ref = useCallback(function (node) {\n observer.disconnect();\n\n if (node) {\n observer.observe(node);\n }\n }, [observer]);\n return [ref, rect];\n};\n\nexport default useMeasure;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and = /*#__PURE__*/_curry2(function and(a, b) {\n return a && b;\n});\n\nexport default and;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not = /*#__PURE__*/_curry1(function not(a) {\n return !a;\n});\n\nexport default not;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil = /*#__PURE__*/_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import \"./ImageGallery.scss\"\r\n\r\nimport React, { useEffect, useMemo } from \"react\"\r\nimport Image from \"gatsby-image/withIEPolyfill\"\r\nimport classnames from \"classnames\"\r\nimport { useTransition, a } from \"react-spring\"\r\nimport { ResizeObserver } from \"@juggle/resize-observer\"\r\nimport { useMeasure } from \"react-use\"\r\nimport { useMedia } from \"use-media\"\r\n\r\nimport {\r\n and,\r\n compose,\r\n curry,\r\n identity,\r\n find,\r\n findIndex,\r\n head,\r\n map,\r\n not,\r\n isNil,\r\n prop,\r\n propEq,\r\n split,\r\n} from \"ramda\"\r\n\r\nconst ImageGallery = React.memo(\r\n ({\r\n className,\r\n list,\r\n metadata = null,\r\n showHoverInfo,\r\n showLabelInfo,\r\n queries,\r\n values,\r\n defaultValue,\r\n }) => {\r\n useEffect(() => {\r\n if (document) {\r\n const contextMenuListener = document.addEventListener(\r\n \"contextmenu\",\r\n e => e.target.nodeName === \"IMG\" && e.preventDefault(),\r\n false\r\n )\r\n return () =>\r\n document.removeEventListener(\"contextmenu\", contextMenuListener)\r\n }\r\n return undefined\r\n })\r\n\r\n const hasActiveHover = useMemo(\r\n () => and(compose(not, isNil)(metadata), showHoverInfo),\r\n [metadata, showHoverInfo]\r\n )\r\n const hasActiveLabel = useMemo(\r\n () => and(compose(not, isNil)(metadata), showLabelInfo),\r\n [metadata, showLabelInfo]\r\n )\r\n\r\n const labelModifier = 70\r\n\r\n const defaultQueries = [\r\n \"(max-width: 576px)\",\r\n \"(max-width: 768px)\",\r\n \"(max-width: 992px)\",\r\n \"(min-width: 993px)\",\r\n ]\r\n const parsedQueries = queries ? queries : defaultQueries\r\n\r\n const defaultValues = [1, 1, 2, 2]\r\n const parsedValues = values ? values : defaultValues\r\n const parsedDefaultValue = defaultValue ? defaultValue : 3\r\n\r\n // Hook1: Tie media queries to the number of columns\r\n const columnMatchIndex = compose(\r\n index => parsedValues[index],\r\n findIndex(identity),\r\n map(useMedia)\r\n )(parsedQueries)\r\n const columns = parsedValues[columnMatchIndex] || parsedDefaultValue\r\n\r\n // Hook2: Measure the width of the container element\r\n const [ref, { width }] = useMeasure({\r\n debounce: 0,\r\n scroll: false,\r\n polyfill: ResizeObserver,\r\n })\r\n\r\n let heights = new Array(columns).fill(0) // Each column gets a height starting with zero\r\n let gridItems = list.map((child, i) => {\r\n const column = heights.indexOf(Math.min(...heights)) // Basic masonry-grid placing, puts tile into the smallest column using Math.min\r\n\r\n const xy = [\r\n (width / columns) * column,\r\n (heights[column] += hasActiveLabel\r\n ? child.presentationHeight + labelModifier\r\n : child.presentationHeight) - child.presentationHeight,\r\n ]\r\n return {\r\n ...child,\r\n xy,\r\n width: width / columns,\r\n height: hasActiveLabel\r\n ? child.presentationHeight / 2\r\n : child.presentationHeight / 2,\r\n }\r\n })\r\n\r\n // Hook4: Turn the static grid values into animated transitions, any addition, removal or change will be animated\r\n const transitions = useTransition(gridItems, item => item.src, {\r\n from: ({ xy, width, presentationHeight }) => ({\r\n xy,\r\n width,\r\n height: presentationHeight,\r\n opacity: 0,\r\n }),\r\n enter: ({ xy, width, presentationHeight }) => ({\r\n xy,\r\n width,\r\n height: presentationHeight,\r\n opacity: 1,\r\n }),\r\n update: ({ xy, width, presentationHeight }) => ({\r\n xy,\r\n width,\r\n height: presentationHeight,\r\n }),\r\n leave: { height: 0, opacity: 0 },\r\n config: { mass: 5, tension: 800, friction: 100 },\r\n trail: 25,\r\n })\r\n\r\n const getImageData = curry((metadata, item) =>\r\n find(\r\n propEq(\r\n \"originalName\",\r\n compose(head, split(\".\"), prop(\"originalName\"))(item)\r\n )\r\n )(metadata)\r\n )\r\n\r\n const detailsHover = ({ label, excerpt }) =>\r\n label && excerpt ? (\r\n
\r\n
{label}
\r\n {excerpt}\r\n
\r\n ) : null\r\n\r\n const detailsLabel = ({ label, excerpt }) =>\r\n label && excerpt ? (\r\n
\r\n
{label}
\r\n {excerpt}\r\n
\r\n ) : null\r\n\r\n return (\r\n \r\n {transitions.map(({ item, props: { xy, ...rest }, key }) => (\r\n \r\n `translate3d(${x}px,${\r\n hasActiveLabel ? y - labelModifier : y\r\n }px,0)`\r\n ),\r\n ...rest,\r\n }}\r\n >\r\n \"Galleriebild\"\r\n {hasActiveHover\r\n ? compose(detailsHover, getImageData)(metadata, item)\r\n : null}\r\n {hasActiveLabel\r\n ? compose(detailsLabel, getImageData)(metadata, item)\r\n : null}\r\n \r\n ))}\r\n \r\n )\r\n }\r\n)\r\n\r\nexport default ImageGallery\r\n","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}","import _concat from \"./internal/_concat.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex = /*#__PURE__*/_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\nexport default addIndex;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction noop() {}\n\nexports.default = noop;","import \"core-js/modules/es.array.reduce\";\n\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }();\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController = function () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation = function () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry = function () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI = function () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver = function () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","\"use strict\";\n\nvar _interopRequireWildcard3 = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _interopRequireWildcard2 = _interopRequireDefault(require(\"@babel/runtime/helpers/interopRequireWildcard\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = _interopRequireWildcard3(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _index = _interopRequireDefault(require(\"../index\"));\n\nvar ImageWithIEPolyfill = /*#__PURE__*/function (_Component) {\n (0, _inheritsLoose2.default)(ImageWithIEPolyfill, _Component);\n\n function ImageWithIEPolyfill() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.imageRef = _this.props.innerRef || /*#__PURE__*/(0, _react.createRef)();\n _this.placeholderRef = /*#__PURE__*/(0, _react.createRef)();\n return _this;\n }\n\n var _proto = ImageWithIEPolyfill.prototype;\n\n // Load object-fit/position polyfill if required (e.g. in IE)\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var testImg = document.createElement(\"img\");\n\n if (typeof testImg.style.objectFit === \"undefined\" || typeof testImg.style.objectPosition === \"undefined\") {\n Promise.resolve().then(function () {\n return (0, _interopRequireWildcard2.default)(require(\"object-fit-images\"));\n }).then(function (_ref) {\n var ObjectFitImages = _ref.default;\n ObjectFitImages(_this2.imageRef.current.imageRef.current);\n ObjectFitImages(_this2.placeholderRef.current);\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n objectFit = _this$props.objectFit,\n objectPosition = _this$props.objectPosition,\n props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"objectFit\", \"objectPosition\"]);\n var polyfillStyle = {\n objectFit: objectFit,\n objectPosition: objectPosition,\n fontFamily: \"\\\"object-fit: \" + objectFit + \"; object-position: \" + objectPosition + \"\\\"\"\n };\n return /*#__PURE__*/_react.default.createElement(_index.default, (0, _extends2.default)({\n ref: this.imageRef,\n placeholderRef: this.placeholderRef\n }, props, {\n imgStyle: (0, _extends2.default)({}, props.imgStyle, polyfillStyle),\n placeholderStyle: (0, _extends2.default)({}, props.placeholderStyle, polyfillStyle)\n }));\n };\n\n return ImageWithIEPolyfill;\n}(_react.Component); // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/withIEPolyfill/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImageWithIEPolyfill.propTypes = {\n objectFit: _propTypes.default.string,\n objectPosition: _propTypes.default.string\n};\nImageWithIEPolyfill.defaultProps = {\n objectFit: \"cover\",\n objectPosition: \"50% 50%\"\n};\n\nvar _default = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(ImageWithIEPolyfill, (0, _extends2.default)({}, props, {\n innerRef: ref\n }));\n});\n\nexports.default = _default;","import React from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar defaultProps = {\n preventDefaultTouchmoveEvent: false,\n delta: 10,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true\n};\nvar initialState = {\n xy: [0, 0],\n swiping: false,\n eventData: undefined,\n start: undefined\n};\nvar LEFT = 'Left';\nvar RIGHT = 'Right';\nvar UP = 'Up';\nvar DOWN = 'Down';\nvar touchStart = 'touchstart';\nvar touchMove = 'touchmove';\nvar touchEnd = 'touchend';\nvar mouseMove = 'mousemove';\nvar mouseUp = 'mouseup';\n\nfunction getDirection(absX, absY, deltaX, deltaY) {\n if (absX > absY) {\n if (deltaX > 0) {\n return LEFT;\n }\n\n return RIGHT;\n } else if (deltaY > 0) {\n return UP;\n }\n\n return DOWN;\n}\n\nfunction rotateXYByAngle(pos, angle) {\n if (angle === 0) return pos;\n var angleInRadians = Math.PI / 180 * angle;\n var x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n var y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n}\n\nfunction getHandlers(set, handlerProps) {\n var onStart = function onStart(event) {\n // if more than a single touch don't track, for now...\n if (event.touches && event.touches.length > 1) return;\n set(function (state, props) {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n var xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n return _extends({}, state, initialState, {\n eventData: {\n initial: [].concat(xy),\n first: true\n },\n xy: xy,\n start: event.timeStamp || 0\n });\n });\n };\n\n var onMove = function onMove(event) {\n set(function (state, props) {\n if (!state.xy[0] || !state.xy[1] || event.touches && event.touches.length > 1) {\n return state;\n }\n\n var _ref2 = event.touches ? event.touches[0] : event,\n clientX = _ref2.clientX,\n clientY = _ref2.clientY;\n\n var _rotateXYByAngle = rotateXYByAngle([clientX, clientY], props.rotationAngle),\n x = _rotateXYByAngle[0],\n y = _rotateXYByAngle[1];\n\n var deltaX = state.xy[0] - x;\n var deltaY = state.xy[1] - y;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n var time = (event.timeStamp || 0) - state.start;\n var velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1); // if swipe is under delta and we have not started to track a swipe: skip update\n\n if (absX < props.delta && absY < props.delta && !state.swiping) return state;\n var dir = getDirection(absX, absY, deltaX, deltaY);\n\n var eventData = _extends({}, state.eventData, {\n event: event,\n absX: absX,\n absY: absY,\n deltaX: deltaX,\n deltaY: deltaY,\n velocity: velocity,\n dir: dir\n });\n\n props.onSwiping && props.onSwiping(eventData); // track if a swipe is cancelable(handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n\n var cancelablePageSwipe = false;\n\n if (props.onSwiping || props.onSwiped || props[\"onSwiped\" + dir]) {\n cancelablePageSwipe = true;\n }\n\n if (cancelablePageSwipe && props.preventDefaultTouchmoveEvent && props.trackTouch && event.cancelable) event.preventDefault(); // first is now always false\n\n return _extends({}, state, {\n eventData: _extends({}, eventData, {\n first: false\n }),\n swiping: true\n });\n });\n };\n\n var onEnd = function onEnd(event) {\n set(function (state, props) {\n var eventData;\n\n if (state.swiping) {\n eventData = _extends({}, state.eventData, {\n event: event\n });\n props.onSwiped && props.onSwiped(eventData);\n props[\"onSwiped\" + eventData.dir] && props[\"onSwiped\" + eventData.dir](eventData);\n }\n\n return _extends({}, state, initialState, {\n eventData: eventData\n });\n });\n };\n\n var cleanUpMouse = function cleanUpMouse() {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n\n var onUp = function onUp(e) {\n cleanUpMouse();\n onEnd(e);\n };\n\n var attachTouch = function attachTouch(el) {\n if (el && el.addEventListener) {\n // attach touch event listeners and handlers\n var tls = [[touchStart, onStart], [touchMove, onMove], [touchEnd, onEnd]];\n tls.forEach(function (_ref3) {\n var e = _ref3[0],\n h = _ref3[1];\n return el.addEventListener(e, h);\n }); // return properly scoped cleanup method for removing listeners\n\n return function () {\n return tls.forEach(function (_ref4) {\n var e = _ref4[0],\n h = _ref4[1];\n return el.removeEventListener(e, h);\n });\n };\n }\n };\n\n var onRef = function onRef(el) {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null) return;\n set(function (state, props) {\n // if the same DOM el as previous just return state\n if (state.el === el) return state;\n var addState = {}; // if new DOM el clean up old DOM and reset cleanUpTouch\n\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = null;\n } // only attach if we want to track touch\n\n\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el);\n } // store event attached DOM el for comparison, clean up, and re-attachment\n\n\n return _extends({}, state, {\n el: el\n }, addState);\n });\n }; // set ref callback to attach touch event listeners\n\n\n var output = {\n ref: onRef // if track mouse attach mouse down listener\n\n };\n\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n\n return [output, attachTouch];\n}\n\nfunction updateTransientState(state, props, attachTouch) {\n var addState = {}; // clean up touch handlers if no longer tracking touches\n\n if (!props.trackTouch && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = null;\n } else if (props.trackTouch && !state.cleanUpTouch) {\n // attach/re-attach touch handlers\n if (state.el) {\n addState.cleanUpTouch = attachTouch(state.el);\n }\n }\n\n return _extends({}, state, addState);\n}\n\nfunction useSwipeable(props) {\n var trackMouse = props.trackMouse;\n var transientState = React.useRef(_extends({}, initialState, {\n type: 'hook'\n }));\n var transientProps = React.useRef();\n transientProps.current = _extends({}, defaultProps, props);\n\n var _React$useMemo = React.useMemo(function () {\n return getHandlers(function (cb) {\n return transientState.current = cb(transientState.current, transientProps.current);\n }, {\n trackMouse: trackMouse\n });\n }, [trackMouse]),\n handlers = _React$useMemo[0],\n attachTouch = _React$useMemo[1];\n\n transientState.current = updateTransientState(transientState.current, transientProps.current, attachTouch);\n return handlers;\n}\n\nvar Swipeable = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(Swipeable, _React$PureComponent);\n\n function Swipeable(props) {\n var _this;\n\n _this = _React$PureComponent.call(this, props) || this;\n\n _this._set = function (cb) {\n _this.transientState = cb(_this.transientState, _this.props);\n };\n\n _this.transientState = _extends({}, initialState, {\n type: 'class'\n });\n return _this;\n }\n\n var _proto = Swipeable.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n style = _this$props.style,\n _this$props$nodeName = _this$props.nodeName,\n nodeName = _this$props$nodeName === void 0 ? 'div' : _this$props$nodeName,\n innerRef = _this$props.innerRef,\n children = _this$props.children,\n trackMouse = _this$props.trackMouse;\n\n var _getHandlers = getHandlers(this._set, {\n trackMouse: trackMouse\n }),\n handlers = _getHandlers[0],\n attachTouch = _getHandlers[1];\n\n this.transientState = updateTransientState(this.transientState, this.props, attachTouch);\n var ref = innerRef ? function (el) {\n return innerRef(el), handlers.ref(el);\n } : handlers.ref;\n return React.createElement(nodeName, _extends({}, handlers, {\n className: className,\n style: style,\n ref: ref\n }), children);\n };\n\n return Swipeable;\n}(React.PureComponent);\n\nSwipeable.defaultProps = defaultProps;\nexport { DOWN, LEFT, RIGHT, Swipeable, UP, useSwipeable };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar useMedia_1 = require(\"./useMedia\");\n\nexports.default = useMedia_1.default;\nexports.useMedia = useMedia_1.useMedia;\nexports.useMediaLayout = useMedia_1.useMediaLayout;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction camelToHyphen(camelString) {\n return camelString.replace(/[A-Z]/g, function (string) {\n return \"-\" + string.toLowerCase();\n }).toLowerCase();\n}\n\nexports.default = camelToHyphen;"],"sourceRoot":""}