{"version":3,"file":"commons-1b8d068f2fb49358c825.js","mappings":"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","sources":["webpack://imf-2021/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/createClass.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/inherits.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://imf-2021/./node_modules/@babel/runtime/helpers/typeof.js","webpack://imf-2021/./node_modules/clsx/dist/clsx.m.js","webpack://imf-2021/./node_modules/html-tags/index.js","webpack://imf-2021/./node_modules/object-fit-images/dist/ofi.common-js.js","webpack://imf-2021/./node_modules/react-fast-compare/index.js","webpack://imf-2021/./node_modules/react-helmet/es/Helmet.js","webpack://imf-2021/./node_modules/react-safe/index.js","webpack://imf-2021/./node_modules/react-side-effect/lib/index.js","webpack://imf-2021/./node_modules/react-toastify/dist/react-toastify.esm.js","webpack://imf-2021/./node_modules/gatsby-image/index.js","webpack://imf-2021/./node_modules/gatsby-image/withIEPolyfill/index.js","webpack://imf-2021/./src/components/download-full-report.js","webpack://imf-2021/./src/components/image.js","webpack://imf-2021/./src/components/homepage-logo-link.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/constants.js","webpack://imf-2021/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://imf-2021/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://imf-2021/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://imf-2021/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://imf-2021/./node_modules/tslib/tslib.es6.js","webpack://imf-2021/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://imf-2021/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://imf-2021/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://imf-2021/./node_modules/react-clientside-effect/lib/index.es.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/solver.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/setFocus.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/index.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://imf-2021/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://imf-2021/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://imf-2021/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://imf-2021/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://imf-2021/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://imf-2021/./node_modules/react-use-scroll-direction/dist/react-use-scroll-direction.esm.js","webpack://imf-2021/./src/components/sub-navigation.js","webpack://imf-2021/./src/components/mobile-sub-navigation.js","webpack://imf-2021/./src/components/site-header.js","webpack://imf-2021/./src/components/page-metadata.js","webpack://imf-2021/./src/hooks/use-site-metadata.js","webpack://imf-2021/./src/components/cta.js","webpack://imf-2021/./src/helpers/arrays.js","webpack://imf-2021/./src/components/site-footer-twitter.js","webpack://imf-2021/./src/components/site-footer-instagram.js","webpack://imf-2021/./src/components/site-footer.js","webpack://imf-2021/./src/components/layout.js","webpack://imf-2021/./src/components/svg/logo.js","webpack://imf-2021/./src/helpers/find-object.js","webpack://imf-2021/./src/helpers/strings.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _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}","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function toVal(mix) {\n var k,\n y,\n str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n}\n\nexport default function () {\n var i = 0,\n tmp,\n x,\n str = '';\n\n while (i < arguments.length) {\n if (tmp = arguments[i++]) {\n if (x = toVal(tmp)) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n\n return str;\n}","'use strict';\n\nmodule.exports = require('./html-tags.json');","/*! 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;","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","\"use strict\";\n\nvar _classCallCheck = require(\"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/createClass\");\n\nvar _inherits = require(\"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/inherits\");\n\nvar _possibleConstructorReturn = require(\"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/possibleConstructorReturn\");\n\nvar _getPrototypeOf = require(\"/home/forge/imf-2021.cantilever.co/node_modules/@babel/runtime/helpers/getPrototypeOf\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _htmlTags = _interopRequireDefault(require(\"html-tags\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar omit = function omit(keys, obj) {\n var obj2 = {};\n\n for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!keys.includes(key)) {\n obj2[key] = obj[key];\n }\n }\n\n return obj2;\n};\n\nvar Safe = _htmlTags.default.reduce(function (tags, tag) {\n tags[tag] = /*#__PURE__*/function (_react$default$Compon) {\n _inherits(Tag, _react$default$Compon);\n\n var _super = _createSuper(Tag);\n\n function Tag() {\n _classCallCheck(this, Tag);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Tag, [{\n key: \"render\",\n value: function render() {\n var props = this.props;\n return _react.default.createElement(tag, Object.assign(omit([\"children\"], props), {\n dangerouslySetInnerHTML: {\n __html: props.children\n }\n }));\n }\n }]);\n\n return Tag;\n }(_react.default.Component);\n\n return tags;\n}, {});\n\nvar _default = Safe;\nexports.default = _default;","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\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 canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","import React__default, { isValidElement, useRef, useLayoutEffect, useEffect, useReducer, cloneElement, useState, createElement } from 'react';\nimport cx from 'clsx';\nimport { render } from 'react-dom';\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 _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction isNum(v) {\n return typeof v === 'number' && !isNaN(v);\n}\n\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\n\nfunction isStr(v) {\n return typeof v === 'string';\n}\n\nfunction isFn(v) {\n return typeof v === 'function';\n}\n\nfunction parseClassName(v) {\n return isStr(v) || isFn(v) ? v : null;\n}\n\nfunction isToastIdValid(toastId) {\n return toastId === 0 || toastId;\n}\n\nfunction getAutoCloseDelay(toastAutoClose, containerAutoClose) {\n return toastAutoClose === false || isNum(toastAutoClose) && toastAutoClose > 0 ? toastAutoClose : containerAutoClose;\n}\n\nvar canUseDom = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction canBeRendered(content) {\n return isValidElement(content) || isStr(content) || isFn(content) || isNum(content);\n}\n\nvar POSITION = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\nvar TYPE = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default',\n DARK: 'dark'\n};\n/**\r\n * Used to collapse toast after exit animation\r\n */\n\nfunction collapseToast(node, done, duration\n/* COLLAPSE_DURATION */\n) {\n if (duration === void 0) {\n duration = 300;\n }\n\n var height = node.scrollHeight;\n var style = node.style;\n requestAnimationFrame(function () {\n style.minHeight = 'initial';\n style.height = height + 'px';\n style.transition = \"all \" + duration + \"ms\";\n requestAnimationFrame(function () {\n style.height = '0';\n style.padding = '0';\n style.margin = '0';\n setTimeout(done, duration);\n });\n });\n}\n/**\r\n * Css animation that just work.\r\n * You could use animate.css for instance\r\n *\r\n *\r\n * ```\r\n * cssTransition({\r\n * enter: \"animate__animated animate__bounceIn\",\r\n * exit: \"animate__animated animate__bounceOut\"\r\n * })\r\n * ```\r\n *\r\n */\n\n\nfunction cssTransition(_ref) {\n var enter = _ref.enter,\n exit = _ref.exit,\n _ref$appendPosition = _ref.appendPosition,\n appendPosition = _ref$appendPosition === void 0 ? false : _ref$appendPosition,\n _ref$collapse = _ref.collapse,\n collapse = _ref$collapse === void 0 ? true : _ref$collapse,\n _ref$collapseDuration = _ref.collapseDuration,\n collapseDuration = _ref$collapseDuration === void 0 ? 300 : _ref$collapseDuration;\n return function ToastTransition(_ref2) {\n var children = _ref2.children,\n position = _ref2.position,\n preventExitTransition = _ref2.preventExitTransition,\n done = _ref2.done,\n nodeRef = _ref2.nodeRef,\n isIn = _ref2.isIn;\n var enterClassName = appendPosition ? enter + \"--\" + position : enter;\n var exitClassName = appendPosition ? exit + \"--\" + position : exit;\n var baseClassName = useRef();\n var animationStep = useRef(0\n /* Enter */\n );\n useLayoutEffect(function () {\n onEnter();\n }, []);\n useEffect(function () {\n if (!isIn) preventExitTransition ? onExited() : onExit();\n }, [isIn]);\n\n function onEnter() {\n var node = nodeRef.current;\n baseClassName.current = node.className;\n node.className += \" \" + enterClassName;\n node.addEventListener('animationend', onEntered);\n }\n\n function onEntered() {\n var node = nodeRef.current;\n node.removeEventListener('animationend', onEntered);\n\n if (animationStep.current === 0\n /* Enter */\n ) {\n node.className = baseClassName.current;\n }\n }\n\n function onExit() {\n animationStep.current = 1\n /* Exit */\n ;\n var node = nodeRef.current;\n node.className += \" \" + exitClassName;\n node.addEventListener('animationend', onExited);\n }\n\n function onExited() {\n var node = nodeRef.current;\n node.removeEventListener('animationend', onExited);\n collapse ? collapseToast(node, done, collapseDuration) : done();\n }\n\n return React__default.createElement(React__default.Fragment, null, children);\n };\n}\n\nvar eventManager = {\n list: /*#__PURE__*/new Map(),\n emitQueue: /*#__PURE__*/new Map(),\n on: function on(event, callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event).push(callback);\n return this;\n },\n off: function off(event, callback) {\n if (callback) {\n var cb = this.list.get(event).filter(function (cb) {\n return cb !== callback;\n });\n this.list.set(event, cb);\n return this;\n }\n\n this.list[\"delete\"](event);\n return this;\n },\n cancelEmit: function cancelEmit(event) {\n var timers = this.emitQueue.get(event);\n\n if (timers) {\n timers.forEach(clearTimeout);\n this.emitQueue[\"delete\"](event);\n }\n\n return this;\n },\n\n /**\r\n * Enqueue the event at the end of the call stack\r\n * Doing so let the user call toast as follow:\r\n * toast('1')\r\n * toast('2')\r\n * toast('3')\r\n * Without setTimemout the code above will not work\r\n */\n emit: function emit(event) {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n this.list.has(event) && this.list.get(event).forEach(function (callback) {\n var timer = setTimeout(function () {\n // @ts-ignore\n callback.apply(void 0, args);\n }, 0);\n _this.emitQueue.has(event) || _this.emitQueue.set(event, []);\n\n _this.emitQueue.get(event).push(timer);\n });\n }\n};\n/**\r\n * `useKeeper` is a helper around `useRef`.\r\n *\r\n * You don't need to access the `.current`property to get the value\r\n * If refresh is set to true. The ref will be updated every render\r\n */\n\nfunction useKeeper(arg, refresh) {\n if (refresh === void 0) {\n refresh = false;\n }\n\n var ref = useRef(arg);\n useEffect(function () {\n if (refresh) ref.current = arg;\n });\n return ref.current;\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 0\n /* ADD */\n :\n return [].concat(state, [action.toastId]).filter(function (id) {\n return id !== action.staleId;\n });\n\n case 1\n /* REMOVE */\n :\n return isToastIdValid(action.toastId) ? state.filter(function (id) {\n return id !== action.toastId;\n }) : [];\n }\n}\n\nfunction useToastContainer(props) {\n var _useReducer = useReducer(function (x) {\n return x + 1;\n }, 0),\n forceUpdate = _useReducer[1];\n\n var _useReducer2 = useReducer(reducer, []),\n toast = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var containerRef = useRef(null);\n var toastCount = useKeeper(0);\n var queue = useKeeper([]);\n var collection = useKeeper({});\n var instance = useKeeper({\n toastKey: 1,\n displayedToast: 0,\n props: props,\n containerId: null,\n isToastActive: isToastActive,\n getToast: function getToast(id) {\n return collection[id] || null;\n }\n });\n useEffect(function () {\n instance.containerId = props.containerId;\n eventManager.cancelEmit(3\n /* WillUnmount */\n ).on(0\n /* Show */\n , buildToast).on(1\n /* Clear */\n , function (toastId) {\n return containerRef.current && removeToast(toastId);\n }).on(5\n /* ClearWaitingQueue */\n , clearWaitingQueue).emit(2\n /* DidMount */\n , instance);\n return function () {\n return eventManager.emit(3\n /* WillUnmount */\n , instance);\n };\n }, []);\n useEffect(function () {\n instance.isToastActive = isToastActive;\n instance.displayedToast = toast.length;\n eventManager.emit(4\n /* Change */\n , toast.length, props.containerId);\n }, [toast]);\n useEffect(function () {\n instance.props = props;\n });\n\n function isToastActive(id) {\n return toast.indexOf(id) !== -1;\n }\n\n function clearWaitingQueue(_ref) {\n var containerId = _ref.containerId;\n var limit = instance.props.limit;\n\n if (limit && (!containerId || instance.containerId === containerId)) {\n toastCount -= queue.length;\n queue = [];\n }\n }\n\n function removeToast(toastId) {\n dispatch({\n type: 1\n /* REMOVE */\n ,\n toastId: toastId\n });\n }\n\n function dequeueToast() {\n var _queue$shift = queue.shift(),\n toastContent = _queue$shift.toastContent,\n toastProps = _queue$shift.toastProps,\n staleId = _queue$shift.staleId;\n\n appendToast(toastContent, toastProps, staleId);\n }\n /**\r\n * check if a container is attached to the dom\r\n * check for multi-container, build only if associated\r\n * check for duplicate toastId if no update\r\n */\n\n\n function isNotValid(_ref2) {\n var containerId = _ref2.containerId,\n toastId = _ref2.toastId,\n updateId = _ref2.updateId;\n return !containerRef.current || instance.props.enableMultiContainer && containerId !== instance.props.containerId || collection[toastId] && updateId == null ? true : false;\n } // this function and all the function called inside needs to rely on ref(`useKeeper`)\n\n\n function buildToast(content, _ref3) {\n var delay = _ref3.delay,\n staleId = _ref3.staleId,\n options = _objectWithoutPropertiesLoose(_ref3, [\"delay\", \"staleId\"]);\n\n if (!canBeRendered(content) || isNotValid(options)) return;\n var toastId = options.toastId,\n updateId = options.updateId;\n var props = instance.props;\n\n var closeToast = function closeToast() {\n return removeToast(toastId);\n };\n\n var isNotAnUpdate = options.updateId == null;\n if (isNotAnUpdate) toastCount++;\n var toastProps = {\n toastId: toastId,\n updateId: updateId,\n isIn: false,\n key: options.key || instance.toastKey++,\n type: options.type,\n closeToast: closeToast,\n closeButton: options.closeButton,\n rtl: props.rtl,\n position: options.position || props.position,\n transition: options.transition || props.transition,\n className: parseClassName(options.className || props.toastClassName),\n bodyClassName: parseClassName(options.bodyClassName || props.bodyClassName),\n style: options.style || props.toastStyle,\n bodyStyle: options.bodyStyle || props.bodyStyle,\n onClick: options.onClick || props.onClick,\n pauseOnHover: isBool(options.pauseOnHover) ? options.pauseOnHover : props.pauseOnHover,\n pauseOnFocusLoss: isBool(options.pauseOnFocusLoss) ? options.pauseOnFocusLoss : props.pauseOnFocusLoss,\n draggable: isBool(options.draggable) ? options.draggable : props.draggable,\n draggablePercent: isNum(options.draggablePercent) ? options.draggablePercent : props.draggablePercent,\n draggableDirection: options.draggableDirection || props.draggableDirection,\n closeOnClick: isBool(options.closeOnClick) ? options.closeOnClick : props.closeOnClick,\n progressClassName: parseClassName(options.progressClassName || props.progressClassName),\n progressStyle: options.progressStyle || props.progressStyle,\n autoClose: getAutoCloseDelay(options.autoClose, props.autoClose),\n hideProgressBar: isBool(options.hideProgressBar) ? options.hideProgressBar : props.hideProgressBar,\n progress: options.progress,\n role: isStr(options.role) ? options.role : props.role,\n deleteToast: function deleteToast() {\n removeFromCollection(toastId);\n }\n };\n if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;\n if (isFn(options.onClose)) toastProps.onClose = options.onClose; // tweak for vertical dragging\n\n if (toastProps.draggableDirection === \"y\"\n /* Y */\n && toastProps.draggablePercent === 80\n /* DRAGGABLE_PERCENT */\n ) {\n toastProps.draggablePercent *= 1.5;\n }\n\n var closeButton = props.closeButton;\n\n if (options.closeButton === false || canBeRendered(options.closeButton)) {\n closeButton = options.closeButton;\n } else if (options.closeButton === true) {\n closeButton = canBeRendered(props.closeButton) ? props.closeButton : true;\n }\n\n toastProps.closeButton = closeButton;\n var toastContent = content;\n\n if (isValidElement(content) && !isStr(content.type)) {\n toastContent = cloneElement(content, {\n closeToast: closeToast,\n toastProps: toastProps\n });\n } else if (isFn(content)) {\n toastContent = content({\n closeToast: closeToast,\n toastProps: toastProps\n });\n } // not handling limit + delay by design. Waiting for user feedback first\n\n\n if (props.limit && props.limit > 0 && toastCount > props.limit && isNotAnUpdate) {\n queue.push({\n toastContent: toastContent,\n toastProps: toastProps,\n staleId: staleId\n });\n } else if (isNum(delay) && delay > 0) {\n setTimeout(function () {\n appendToast(toastContent, toastProps, staleId);\n }, delay);\n } else {\n appendToast(toastContent, toastProps, staleId);\n }\n }\n\n function appendToast(content, toastProps, staleId) {\n var toastId = toastProps.toastId;\n if (staleId) delete collection[staleId];\n collection[toastId] = {\n content: content,\n props: toastProps\n };\n dispatch({\n type: 0\n /* ADD */\n ,\n toastId: toastId,\n staleId: staleId\n });\n }\n\n function removeFromCollection(toastId) {\n delete collection[toastId];\n var queueLen = queue.length;\n toastCount = isToastIdValid(toastId) ? toastCount - 1 : toastCount - instance.displayedToast;\n if (toastCount < 0) toastCount = 0;\n\n if (queueLen > 0) {\n var freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit;\n\n if (queueLen === 1 || freeSlot === 1) {\n instance.displayedToast++;\n dequeueToast();\n } else {\n var toDequeue = freeSlot > queueLen ? queueLen : freeSlot;\n instance.displayedToast = toDequeue;\n\n for (var i = 0; i < toDequeue; i++) {\n dequeueToast();\n }\n }\n } else {\n forceUpdate();\n }\n }\n\n function getToastToRender(cb) {\n var toastToRender = {};\n var toastList = props.newestOnTop ? Object.keys(collection).reverse() : Object.keys(collection);\n\n for (var i = 0; i < toastList.length; i++) {\n var _toast = collection[toastList[i]];\n var position = _toast.props.position;\n toastToRender[position] || (toastToRender[position] = []);\n toastToRender[position].push(_toast);\n }\n\n return Object.keys(toastToRender).map(function (p) {\n return cb(p, toastToRender[p]);\n });\n }\n\n return {\n getToastToRender: getToastToRender,\n collection: collection,\n containerRef: containerRef,\n isToastActive: isToastActive\n };\n}\n\nfunction getX(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX;\n}\n\nfunction getY(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY;\n}\n\nfunction useToast(props) {\n var _useState = useState(true),\n isRunning = _useState[0],\n setIsRunning = _useState[1];\n\n var _useState2 = useState(false),\n preventExitTransition = _useState2[0],\n setPreventExitTransition = _useState2[1];\n\n var toastRef = useRef(null);\n var drag = useKeeper({\n start: 0,\n x: 0,\n y: 0,\n delta: 0,\n removalDistance: 0,\n canCloseOnClick: true,\n canDrag: false,\n boundingRect: null\n });\n var syncProps = useKeeper(props, true);\n var autoClose = props.autoClose,\n pauseOnHover = props.pauseOnHover,\n closeToast = props.closeToast,\n onClick = props.onClick,\n closeOnClick = props.closeOnClick;\n useEffect(function () {\n if (isFn(props.onOpen)) props.onOpen(isValidElement(props.children) && props.children.props);\n return function () {\n if (isFn(syncProps.onClose)) syncProps.onClose(isValidElement(syncProps.children) && syncProps.children.props);\n };\n }, []);\n useEffect(function () {\n props.draggable && bindDragEvents();\n return function () {\n props.draggable && unbindDragEvents();\n };\n }, [props.draggable]);\n useEffect(function () {\n props.pauseOnFocusLoss && bindFocusEvents();\n return function () {\n props.pauseOnFocusLoss && unbindFocusEvents();\n };\n }, [props.pauseOnFocusLoss]);\n\n function onDragStart(e) {\n if (props.draggable) {\n var toast = toastRef.current;\n drag.canCloseOnClick = true;\n drag.canDrag = true;\n drag.boundingRect = toast.getBoundingClientRect();\n toast.style.transition = '';\n drag.x = getX(e.nativeEvent);\n drag.y = getY(e.nativeEvent);\n\n if (props.draggableDirection === \"x\"\n /* X */\n ) {\n drag.start = drag.x;\n drag.removalDistance = toast.offsetWidth * (props.draggablePercent / 100);\n } else {\n drag.start = drag.y;\n drag.removalDistance = toast.offsetHeight * (props.draggablePercent / 100);\n }\n }\n }\n\n function onDragTransitionEnd() {\n if (drag.boundingRect) {\n var _drag$boundingRect = drag.boundingRect,\n top = _drag$boundingRect.top,\n bottom = _drag$boundingRect.bottom,\n left = _drag$boundingRect.left,\n right = _drag$boundingRect.right;\n\n if (props.pauseOnHover && drag.x >= left && drag.x <= right && drag.y >= top && drag.y <= bottom) {\n pauseToast();\n } else {\n playToast();\n }\n }\n }\n\n function playToast() {\n setIsRunning(true);\n }\n\n function pauseToast() {\n setIsRunning(false);\n }\n\n function bindFocusEvents() {\n if (!document.hasFocus()) pauseToast();\n window.addEventListener('focus', playToast);\n window.addEventListener('blur', pauseToast);\n }\n\n function unbindFocusEvents() {\n window.removeEventListener('focus', playToast);\n window.removeEventListener('blur', pauseToast);\n }\n\n function bindDragEvents() {\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragEnd);\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragEnd);\n }\n\n function unbindDragEvents() {\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('mouseup', onDragEnd);\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n }\n\n function onDragMove(e) {\n if (drag.canDrag) {\n e.preventDefault();\n var toast = toastRef.current;\n if (isRunning) pauseToast();\n drag.x = getX(e);\n drag.y = getY(e);\n\n if (props.draggableDirection === \"x\"\n /* X */\n ) {\n drag.delta = drag.x - drag.start;\n } else {\n drag.delta = drag.y - drag.start;\n } // prevent false positif during a toast click\n\n\n if (drag.start !== drag.x) drag.canCloseOnClick = false;\n toast.style.transform = \"translate\" + props.draggableDirection + \"(\" + drag.delta + \"px)\";\n toast.style.opacity = \"\" + (1 - Math.abs(drag.delta / drag.removalDistance));\n }\n }\n\n function onDragEnd() {\n var toast = toastRef.current;\n\n if (drag.canDrag) {\n drag.canDrag = false;\n\n if (Math.abs(drag.delta) > drag.removalDistance) {\n setPreventExitTransition(true);\n props.closeToast();\n return;\n }\n\n toast.style.transition = 'transform 0.2s, opacity 0.2s';\n toast.style.transform = \"translate\" + props.draggableDirection + \"(0)\";\n toast.style.opacity = '1';\n }\n }\n\n var eventHandlers = {\n onMouseDown: onDragStart,\n onTouchStart: onDragStart,\n onMouseUp: onDragTransitionEnd,\n onTouchEnd: onDragTransitionEnd\n };\n\n if (autoClose && pauseOnHover) {\n eventHandlers.onMouseEnter = pauseToast;\n eventHandlers.onMouseLeave = playToast;\n } // prevent toast from closing when user drags the toast\n\n\n if (closeOnClick) {\n eventHandlers.onClick = function (e) {\n onClick && onClick(e);\n drag.canCloseOnClick && closeToast();\n };\n }\n\n return {\n playToast: playToast,\n pauseToast: pauseToast,\n isRunning: isRunning,\n preventExitTransition: preventExitTransition,\n toastRef: toastRef,\n eventHandlers: eventHandlers\n };\n}\n\nfunction CloseButton(_ref) {\n var closeToast = _ref.closeToast,\n type = _ref.type,\n _ref$ariaLabel = _ref.ariaLabel,\n ariaLabel = _ref$ariaLabel === void 0 ? 'close' : _ref$ariaLabel;\n return createElement(\"button\", {\n className: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__close-button \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__close-button--\" + type,\n type: \"button\",\n onClick: function onClick(e) {\n e.stopPropagation();\n closeToast(e);\n },\n \"aria-label\": ariaLabel\n }, createElement(\"svg\", {\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 16\"\n }, createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"\n })));\n}\n\nfunction ProgressBar(_ref) {\n var _cx, _animationEvent;\n\n var delay = _ref.delay,\n isRunning = _ref.isRunning,\n closeToast = _ref.closeToast,\n type = _ref.type,\n hide = _ref.hide,\n className = _ref.className,\n userStyle = _ref.style,\n controlledProgress = _ref.controlledProgress,\n progress = _ref.progress,\n rtl = _ref.rtl,\n isIn = _ref.isIn;\n\n var style = _extends({}, userStyle, {\n animationDuration: delay + \"ms\",\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1\n });\n\n if (controlledProgress) style.transform = \"scaleX(\" + progress + \")\";\n var defaultClassName = cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar\", controlledProgress ? \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--controlled\" : \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--animated\", \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--\" + type, (_cx = {}, _cx[\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--rtl\"] = rtl, _cx));\n var classNames = isFn(className) ? className({\n rtl: rtl,\n type: type,\n defaultClassName: defaultClassName\n }) : cx(defaultClassName, className); // 🧐 controlledProgress is derived from progress\n // so if controlledProgress is set\n // it means that this is also the case for progress\n\n var animationEvent = (_animationEvent = {}, _animationEvent[controlledProgress && progress >= 1 ? 'onTransitionEnd' : 'onAnimationEnd'] = controlledProgress && progress < 1 ? null : function () {\n isIn && closeToast();\n }, _animationEvent); // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n return createElement(\"div\", Object.assign({\n role: \"progressbar\",\n \"aria-hidden\": hide ? 'true' : 'false',\n \"aria-label\": \"notification timer\",\n className: classNames,\n style: style\n }, animationEvent));\n}\n\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n\nvar Toast = function Toast(props) {\n var _cx;\n\n var _useToast = useToast(props),\n isRunning = _useToast.isRunning,\n preventExitTransition = _useToast.preventExitTransition,\n toastRef = _useToast.toastRef,\n eventHandlers = _useToast.eventHandlers;\n\n var closeButton = props.closeButton,\n children = props.children,\n autoClose = props.autoClose,\n onClick = props.onClick,\n type = props.type,\n hideProgressBar = props.hideProgressBar,\n closeToast = props.closeToast,\n Transition = props.transition,\n position = props.position,\n className = props.className,\n style = props.style,\n bodyClassName = props.bodyClassName,\n bodyStyle = props.bodyStyle,\n progressClassName = props.progressClassName,\n progressStyle = props.progressStyle,\n updateId = props.updateId,\n role = props.role,\n progress = props.progress,\n rtl = props.rtl,\n toastId = props.toastId,\n deleteToast = props.deleteToast,\n isIn = props.isIn;\n var defaultClassName = cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast\", \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast--\" + type, (_cx = {}, _cx[\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast--rtl\"] = rtl, _cx));\n var cssClasses = isFn(className) ? className({\n rtl: rtl,\n position: position,\n type: type,\n defaultClassName: defaultClassName\n }) : cx(defaultClassName, className);\n var isProgressControlled = !!progress;\n\n function renderCloseButton(closeButton) {\n if (!closeButton) return;\n var props = {\n closeToast: closeToast,\n type: type\n };\n if (isFn(closeButton)) return closeButton(props);\n if (isValidElement(closeButton)) return cloneElement(closeButton, props);\n }\n\n return createElement(Transition, {\n isIn: isIn,\n done: deleteToast,\n position: position,\n preventExitTransition: preventExitTransition,\n nodeRef: toastRef\n }, createElement(\"div\", Object.assign({\n id: toastId,\n onClick: onClick,\n className: cssClasses\n }, eventHandlers, {\n style: style,\n ref: toastRef\n }), createElement(\"div\", Object.assign({}, isIn && {\n role: role\n }, {\n className: isFn(bodyClassName) ? bodyClassName({\n type: type\n }) : cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-body\", bodyClassName),\n style: bodyStyle\n }), children), renderCloseButton(closeButton), (autoClose || isProgressControlled) && createElement(ProgressBar, Object.assign({}, updateId && !isProgressControlled ? {\n key: \"pb-\" + updateId\n } : {}, {\n rtl: rtl,\n delay: autoClose,\n isRunning: isRunning,\n isIn: isIn,\n closeToast: closeToast,\n hide: hideProgressBar,\n type: type,\n style: progressStyle,\n className: progressClassName,\n controlledProgress: isProgressControlled,\n progress: progress\n }))));\n};\n\nvar Bounce = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__bounce-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__bounce-exit\",\n appendPosition: true\n});\nvar Slide = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__slide-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__slide-exit\",\n appendPosition: true\n});\nvar Zoom = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__zoom-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__zoom-exit\"\n});\nvar Flip = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__flip-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__flip-exit\"\n});\n\nvar ToastContainer = function ToastContainer(props) {\n var _useToastContainer = useToastContainer(props),\n getToastToRender = _useToastContainer.getToastToRender,\n containerRef = _useToastContainer.containerRef,\n isToastActive = _useToastContainer.isToastActive;\n\n var className = props.className,\n style = props.style,\n rtl = props.rtl,\n containerId = props.containerId;\n\n function getClassName(position) {\n var _cx;\n\n var defaultClassName = cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-container\", \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-container--\" + position, (_cx = {}, _cx[\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-container--rtl\"] = rtl, _cx));\n return isFn(className) ? className({\n position: position,\n rtl: rtl,\n defaultClassName: defaultClassName\n }) : cx(defaultClassName, parseClassName(className));\n }\n\n return createElement(\"div\", {\n ref: containerRef,\n className: \"Toastify\"\n /* CSS_NAMESPACE */\n ,\n id: containerId\n }, getToastToRender(function (position, toastList) {\n var containerStyle = toastList.length === 0 ? _extends({}, style, {\n pointerEvents: 'none'\n }) : _extends({}, style);\n return createElement(\"div\", {\n className: getClassName(position),\n style: containerStyle,\n key: \"container-\" + position\n }, toastList.map(function (_ref) {\n var content = _ref.content,\n toastProps = _ref.props;\n return createElement(Toast, Object.assign({}, toastProps, {\n isIn: isToastActive(toastProps.toastId),\n key: \"toast-\" + toastProps.key,\n closeButton: toastProps.closeButton === true ? CloseButton : toastProps.closeButton\n }), content);\n }));\n }));\n};\n\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: CloseButton,\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: 80\n /* DRAGGABLE_PERCENT */\n ,\n draggableDirection: \"x\"\n /* X */\n ,\n role: 'alert'\n};\nvar containers = /*#__PURE__*/new Map();\nvar latestInstance;\nvar containerDomNode;\nvar containerConfig;\nvar queue = [];\nvar lazy = false;\n/**\r\n * Check whether any container is currently mounted in the DOM\r\n */\n\nfunction isAnyContainerMounted() {\n return containers.size > 0;\n}\n/**\r\n * Get the toast by id, given it's in the DOM, otherwise returns null\r\n */\n\n\nfunction getToast(toastId, _ref) {\n var containerId = _ref.containerId;\n var container = containers.get(containerId || latestInstance);\n if (!container) return null;\n return container.getToast(toastId);\n}\n/**\r\n * Generate a random toastId\r\n */\n\n\nfunction generateToastId() {\n return Math.random().toString(36).substr(2, 9);\n}\n/**\r\n * Generate a toastId or use the one provided\r\n */\n\n\nfunction getToastId(options) {\n if (options && (isStr(options.toastId) || isNum(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n/**\r\n * If the container is not mounted, the toast is enqueued and\r\n * the container lazy mounted\r\n */\n\n\nfunction dispatchToast(content, options) {\n if (isAnyContainerMounted()) {\n eventManager.emit(0\n /* Show */\n , content, options);\n } else {\n queue.push({\n content: content,\n options: options\n });\n\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(createElement(ToastContainer, Object.assign({}, containerConfig)), containerDomNode);\n }\n }\n\n return options.toastId;\n}\n/**\r\n * Merge provided options with the defaults settings and generate the toastId\r\n */\n\n\nfunction mergeOptions(type, options) {\n return _extends({}, options, {\n type: options && options.type || type,\n toastId: getToastId(options)\n });\n}\n\nvar createToastByType = function createToastByType(type) {\n return function (content, options) {\n return dispatchToast(content, mergeOptions(type, options));\n };\n};\n\nvar toast = function toast(content, options) {\n return dispatchToast(content, mergeOptions(TYPE.DEFAULT, options));\n};\n\ntoast.success = /*#__PURE__*/createToastByType(TYPE.SUCCESS);\ntoast.info = /*#__PURE__*/createToastByType(TYPE.INFO);\ntoast.error = /*#__PURE__*/createToastByType(TYPE.ERROR);\ntoast.warning = /*#__PURE__*/createToastByType(TYPE.WARNING);\ntoast.dark = /*#__PURE__*/createToastByType(TYPE.DARK);\ntoast.warn = toast.warning;\n/**\r\n * Remove toast programmaticaly\r\n */\n\ntoast.dismiss = function (id) {\n return eventManager.emit(1\n /* Clear */\n , id);\n};\n/**\r\n * Clear waiting queue when limit is used\r\n */\n\n\ntoast.clearWaitingQueue = function (params) {\n if (params === void 0) {\n params = {};\n }\n\n return eventManager.emit(5\n /* ClearWaitingQueue */\n , params);\n};\n/**\r\n * return true if one container is displaying the toast\r\n */\n\n\ntoast.isActive = function (id) {\n var isToastActive = false;\n containers.forEach(function (container) {\n if (container.isToastActive && container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n return isToastActive;\n};\n\ntoast.update = function (toastId, options) {\n if (options === void 0) {\n options = {};\n } // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n\n\n setTimeout(function () {\n var toast = getToast(toastId, options);\n\n if (toast) {\n var oldOptions = toast.props,\n oldContent = toast.content;\n\n var nextOptions = _extends({}, oldOptions, options, {\n toastId: options.toastId || toastId,\n updateId: generateToastId()\n });\n\n if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n var content = nextOptions.render || oldContent;\n delete nextOptions.render;\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n/**\r\n * Used for controlled progress bar.\r\n */\n\n\ntoast.done = function (id) {\n toast.update(id, {\n progress: 1\n });\n};\n/**\r\n * Track changes. The callback get the number of toast displayed\r\n *\r\n */\n\n\ntoast.onChange = function (callback) {\n if (isFn(callback)) {\n eventManager.on(4\n /* Change */\n , callback);\n }\n\n return function () {\n isFn(callback) && eventManager.off(4\n /* Change */\n , callback);\n };\n};\n/**\r\n * Configure the ToastContainer when lazy mounted\r\n */\n\n\ntoast.configure = function (config) {\n if (config === void 0) {\n config = {};\n }\n\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n/**\r\n * Wait until the ToastContainer is mounted to dispatch the toast\r\n * and attach isActive method\r\n */\n\neventManager.on(2\n/* DidMount */\n, function (containerInstance) {\n latestInstance = containerInstance.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n queue.forEach(function (item) {\n eventManager.emit(0\n /* Show */\n , item.content, item.options);\n });\n queue = [];\n}).on(3\n/* WillUnmount */\n, function (containerInstance) {\n containers[\"delete\"](containerInstance.containerId || containerInstance);\n\n if (containers.size === 0) {\n eventManager.off(0\n /* Show */\n ).off(1\n /* Clear */\n ).off(5\n /* ClearWaitingQueue */\n );\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n});\nexport { Bounce, Flip, Slide, ToastContainer, Zoom, collapseToast, cssTransition, toast, useToast, useToastContainer };","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _excluded = [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"];\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // 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/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\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","\"use strict\";\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 _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _index = _interopRequireDefault(require(\"../index\"));\n\nvar _excluded = [\"objectFit\", \"objectPosition\"];\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\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 _interopRequireWildcard(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, _excluded);\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\"\nimport menu from \"../data/menu.json\"\nimport { withPrefix } from \"gatsby\"\n\nexport default function DownloadFullReport({ location, title }) {\n const downloads = menu.find(item => {\n return item.name === \"Downloads\"\n }).children\n const downloadLink = downloads.find(item => {\n return item.name === \"Download Full Report\"\n })\n const reports = downloads.find(item => {\n return item.name === \"Download Full Report\"\n }).children\n\n return reports ? (\n \n

{title ? title : \"Download the PDF Report\"}

\n
    \n {reports.map((item, index) => (\n
  • \n {item.name}\n
  • \n ))}\n
\n \n ) : (\n \n {downloadLink.name}\n \n )\n}\n","import React from \"react\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport Img from \"gatsby-image/withIEPolyfill\"\n\nexport default function Image({ path, className, caption, alt, imgStyle }) {\n const data = useStaticQuery(\n graphql`\n query {\n images: allFile {\n edges {\n node {\n relativePath\n name\n childImageSharp {\n fluid(maxWidth: 3000, quality: 100) {\n ...GatsbyImageSharpFluid\n ...GatsbyImageSharpFluid_withWebp\n }\n }\n }\n }\n }\n }\n `\n )\n const image = data.images.edges.find(item =>\n item.node.relativePath.includes(path)\n )\n if (!image) {\n return null\n }\n const fluid = image.node.childImageSharp.fluid\n return (\n <>\n \n {caption ?

{caption}

: null}\n \n )\n}\n","import React from \"react\"\nimport Logo from \"../components/svg/logo\"\nimport { Link } from \"gatsby\"\n\nexport default function HomepageLogoLink({ passedRef, path, classes }) {\n return (\n \n \n
\n
\n Build Forward Better\n
\n
\n IMF Annual Report 2021\n
\n
\n \n )\n}\n","export var FOCUS_GROUP = 'data-focus-lock';\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\nexport var FOCUS_AUTO = 'data-autofocus-inside';","import { useCallbackRef } from './useRef';\nimport { assignRef } from './assignRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\n\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue, function (newValue) {\n return refs.forEach(function (ref) {\n return assignRef(ref, newValue);\n });\n });\n}","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\n\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () {\n return {\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n\n set current(value) {\n var last = ref.value;\n\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n }\n\n }\n };\n })[0]; // update callback\n\n ref.callback = callback;\n return ref.facade;\n}","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n\n return ref;\n}","import * as React from 'react';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import * as tslib_1 from \"tslib\";\n\nfunction ItoI(a) {\n return a;\n}\n\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function read() {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n\n return defaults;\n },\n useMedium: function useMedium(data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) {\n return x !== item;\n });\n };\n },\n assignSyncMedium: function assignSyncMedium(cb) {\n assigned = true;\n\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n\n buffer = {\n push: function push(x) {\n return cb(x);\n },\n filter: function filter() {\n return buffer;\n }\n };\n },\n assignMedium: function assignMedium(cb) {\n assigned = true;\n var pendingQueue = [];\n\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n\n var executeQueue = function executeQueue() {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n\n var cycle = function cycle() {\n return Promise.resolve().then(executeQueue);\n };\n\n cycle();\n buffer = {\n push: function push(x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function filter(_filter) {\n pendingQueue = pendingQueue.filter(_filter);\n return buffer;\n }\n };\n }\n };\n return medium;\n}\n\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) {\n middleware = ItoI;\n }\n\n return innerCreateMedium(defaults, middleware);\n}\nexport function createSidecarMedium(options) {\n if (options === void 0) {\n options = {};\n }\n\n var medium = innerCreateMedium(null);\n medium.options = tslib_1.__assign({\n async: true,\n ssr: false\n }, options);\n return medium;\n}","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n var returnFocus = React.useCallback(function (allowDefer) {\n var current = originalFocusedElement.current;\n\n if (Boolean(shouldReturnFocus) && current && current.focus) {\n var focusOptions = typeof shouldReturnFocus === 'object' ? shouldReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return current.focus(focusOptions);\n });\n } else {\n current.focus(focusOptions);\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n if (!observed.current) {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [/*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }),\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) // first tabbed element guard\n ], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;","var isRadio = function isRadio(node) {\n return node.tagName === 'INPUT' && node.type === 'radio';\n};\n\nvar findSelectedRadio = function findSelectedRadio(node, nodes) {\n return nodes.filter(isRadio).filter(function (el) {\n return el.name === node.name;\n }).filter(function (el) {\n return el.checked;\n })[0] || node;\n};\n\nexport var correctNode = function correctNode(node, nodes) {\n if (isRadio(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n\n return node;\n};\nexport var correctNodes = function correctNodes(nodes) {\n var resultSet = new Set();\n nodes.forEach(function (node) {\n return resultSet.add(correctNode(node, nodes));\n });\n return nodes.filter(function (node) {\n return resultSet.has(node);\n });\n};","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function pickFirstFocus(nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n\n return nodes[0];\n};\nexport var pickFocusable = function pickFocusable(nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n\n return index;\n};","var isElementHidden = function isElementHidden(computedStyle) {\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n\n return computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden';\n};\n\nvar isVisibleUncached = function isVisibleUncached(node, checkParent) {\n return !node || node === document || node && node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(window.getComputedStyle(node, null)) && checkParent(node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? node.parentNode.host : node.parentNode);\n};\n\nexport var isVisibleCached = function isVisibleCached(visibilityCache, node) {\n var cached = visibilityCache.get(node);\n\n if (cached !== undefined) {\n return cached;\n }\n\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nexport var notHiddenInput = function notHiddenInput(node) {\n return !((node.tagName === 'INPUT' || node.tagName === 'BUTTON') && (node.type === 'hidden' || node.disabled));\n};\nexport var isGuard = function isGuard(node) {\n return Boolean(node && node.dataset && node.dataset.focusGuard);\n};\nexport var isNotAGuard = function isNotAGuard(node) {\n return !isGuard(node);\n};\nexport var isDefined = function isDefined(x) {\n return Boolean(x);\n};","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\nexport var newFocus = function newFocus(innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n\n if (innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n\n var activeIndex = outerNodes.indexOf(activeElement);\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndexDiff = correctedNodes.indexOf(activeElement) - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n }\n\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n\n return undefined;\n};","export var toArray = function toArray(a) {\n var ret = Array(a.length);\n\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n\n return ret;\n};\nexport var asArray = function asArray(a) {\n return Array.isArray(a) ? a : [a];\n};","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n\nvar filterNested = function filterNested(nodes) {\n var contained = new Set();\n var l = nodes.length;\n\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n }\n }\n\n return nodes.filter(function (_, index) {\n return !contained.has(index);\n });\n};\n\nvar getTopParent = function getTopParent(node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n\nexport var getAllAffectedNodes = function getAllAffectedNodes(node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, group ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\" + FOCUS_GROUP + \"=\\\"\" + group + \"\\\"]:not([\" + FOCUS_DISABLED + \"=\\\"disabled\\\"])\"))) : [currentNode]);\n return acc;\n }, []);\n};","import { toArray } from './array';\nexport var tabSort = function tabSort(a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n\n if (tabDiff) {\n if (!a.tabIndex) {\n return 1;\n }\n\n if (!b.tabIndex) {\n return -1;\n }\n }\n\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function orderByTabIndex(nodes, filterNegative, keepGuards) {\n return toArray(nodes).map(function (node, index) {\n return {\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? (node.dataset || {}).focusGuard ? 0 : -1 : node.tabIndex\n };\n }).filter(function (data) {\n return !filterNegative || data.tabIndex >= 0;\n }).sort(tabSort);\n};","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = queryTabbables + \", [data-focus-guard]\";\nexport var getFocusables = function getFocusables(parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n return acc.concat(toArray(parent.querySelectorAll(withGuards ? queryGuardTabbables : queryTabbables)), parent.parentNode ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) {\n return node === parent;\n }) : []);\n }, []);\n};\nexport var getParentAutofocusables = function getParentAutofocusables(parent) {\n var parentFocus = parent.querySelectorAll(\"[\" + FOCUS_AUTO + \"]\");\n return toArray(parentFocus).map(function (node) {\n return getFocusables([node]);\n }).reduce(function (acc, nodes) {\n return acc.concat(nodes);\n }, []);\n};","export var tabbables = ['button:enabled', 'select:enabled', 'textarea:enabled', 'input:enabled', 'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[tabindex]', '[contenteditable]', '[autofocus]'];","import { toArray } from './array';\nimport { isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\nexport var filterFocusable = function filterFocusable(nodes, visibilityCache) {\n return toArray(nodes).filter(function (node) {\n return isVisibleCached(visibilityCache, node);\n }).filter(function (node) {\n return notHiddenInput(node);\n });\n};\nexport var getTabbableNodes = function getTabbableNodes(topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\nexport var getAllTabbableNodes = function getAllTabbableNodes(topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\nexport var parentAutofocusables = function parentAutofocusables(topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};","import { asArray } from './array';\nimport { parentAutofocusables } from './DOMutils';\n\nvar getParents = function getParents(node, parents) {\n if (parents === void 0) {\n parents = [];\n }\n\n parents.push(node);\n\n if (node.parentNode) {\n getParents(node.parentNode, parents);\n }\n\n return parents;\n};\n\nexport var getCommonParent = function getCommonParent(nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n\n return false;\n};\nexport var getTopCommonParent = function getTopCommonParent(baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n\n if (common) {\n if (!topCommon || common.contains(topCommon)) {\n topCommon = common;\n } else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n return topCommon;\n};\nexport var allParentAutofocusables = function allParentAutofocusables(entries, visibilityCache) {\n return entries.reduce(function (acc, node) {\n return acc.concat(parentAutofocusables(node, visibilityCache));\n }, []);\n};","import { NEW_FOCUS, newFocus } from './solver';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { pickFirstFocus } from './utils/firstFocus';\nimport { isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\n\nvar findAutoFocused = function findAutoFocused(autoFocusables) {\n return function (node) {\n return node.autofocus || node.dataset && !!node.dataset.autofocus || autoFocusables.indexOf(node) >= 0;\n };\n};\n\nvar reorderNodes = function reorderNodes(srcNodes, dstNodes) {\n var remap = new Map();\n dstNodes.forEach(function (entity) {\n return remap.set(entity.node, entity);\n });\n return srcNodes.map(function (node) {\n return remap.get(node);\n }).filter(isDefined);\n};\n\nexport var getFocusMerge = function getFocusMerge(topNode, lastNode) {\n var activeElement = document && document.activeElement;\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getAllTabbableNodes(entries, visibilityCache);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n\n if (!innerElements[0]) {\n return undefined;\n }\n }\n\n var outerNodes = getAllTabbableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n\n if (newId === NEW_FOCUS) {\n var autoFocusable = anyFocusable.map(function (_a) {\n var node = _a.node;\n return node;\n }).filter(findAutoFocused(allParentAutofocusables(entries, visibilityCache)));\n return {\n node: autoFocusable && autoFocusable.length ? pickFirstFocus(autoFocusable) : pickFirstFocus(innerNodes)\n };\n }\n\n if (newId === undefined) {\n return newId;\n }\n\n return orderedInnerElements[newId];\n};","import { getFocusMerge } from './focusMerge';\nexport var focusOn = function focusOn(target) {\n target.focus();\n\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\nexport var setFocus = function setFocus(topNode, lastNode) {\n var focusable = getFocusMerge(topNode, lastNode);\n\n if (lockDisabled) {\n return;\n }\n\n if (focusable) {\n if (guardCount > 2) {\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n\n guardCount++;\n focusOn(focusable.node);\n guardCount--;\n }\n};","import * as constants from './constants';\nimport { getFocusabledIn } from './focusables';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement };\nexport default setFocus;","import { getAllAffectedNodes } from './utils/all-affected';\nimport { toArray } from './utils/array';\n\nvar focusInFrame = function focusInFrame(frame) {\n return frame === document.activeElement;\n};\n\nvar focusInsideIframe = function focusInsideIframe(topNode) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) {\n return focusInFrame(node);\n }));\n};\n\nexport var focusInside = function focusInside(topNode) {\n var activeElement = document && document.activeElement;\n\n if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {\n return false;\n }\n\n return getAllAffectedNodes(topNode).reduce(function (result, node) {\n return result || node.contains(activeElement) || focusInsideIframe(node);\n }, false);\n};","export function deferAction(action) {\n // Hidding setImmediate from Webpack to avoid inserting polyfill\n var _window = window,\n setImmediate = _window.setImmediate;\n\n if (typeof setImmediate !== 'undefined') {\n setImmediate(action);\n } else {\n setTimeout(action, 1);\n }\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","import * as React from 'react';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !(focusInside(workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus);\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n setTimeout(function () {\n focusWasOutsideWindow = 'meanwhile';\n }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap, true);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap, true);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import { FOCUS_ALLOW } from './constants';\nimport { toArray } from './utils/array';\nexport var focusIsHidden = function focusIsHidden() {\n return document && toArray(document.querySelectorAll(\"[\" + FOCUS_ALLOW + \"]\")).some(function (node) {\n return node.contains(document.activeElement);\n });\n};","import { getAllAffectedNodes } from './utils/all-affected';\nimport { getTabbableNodes } from './utils/DOMutils';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\nexport var getFocusabledIn = function getFocusabledIn(topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var visibilityCache = new Map();\n var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n }).map(function (_a) {\n var node = _a.node;\n return node;\n });\n return outerNodes.map(function (_a) {\n var node = _a.node,\n index = _a.index;\n return {\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node)\n };\n });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return ;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar;\n\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","import { useState, useCallback, useEffect } from 'react';\n\nfunction getScrollTop(target) {\n if (target) return target.scrollTop;\n return window.scrollY || window.pageYOffset || document.body.scrollTop || document.documentElement && document.documentElement.scrollTop || 0;\n}\n\nfunction getScrollLeft(target) {\n if (target) return target.scrollLeft;\n return window.scrollX || window.pageXOffset || document.body.scrollLeft || document.documentElement && document.documentElement.scrollLeft || 0;\n}\n\nfunction isBrowser() {\n return typeof window === 'object';\n}\n\nfunction addScrollListener(listener, target) {\n if (target === void 0) {\n target = document;\n }\n\n return target.addEventListener('scroll', listener);\n}\n\nfunction removeScrollListener(listener, target) {\n if (target === void 0) {\n target = document;\n }\n\n return target.removeEventListener('scroll', listener);\n}\n\nfunction useScrollDirection(target) {\n var _useState = useState(),\n targetFromApi = _useState[0],\n setTargetFromApi = _useState[1];\n\n var _useState2 = useState(),\n targetFromProps = _useState2[0],\n setTargetFromProps = _useState2[1];\n\n var _useState3 = useState(null),\n scrollDirection = _useState3[0],\n setScrollDirection = _useState3[1];\n\n var targetToUse = targetFromProps || targetFromApi;\n var isScrolling = scrollDirection !== null;\n var isScrollingX = scrollDirection === 'LEFT' || scrollDirection === 'RIGHT';\n var isScrollingY = scrollDirection === 'UP' || scrollDirection === 'DOWN';\n var isScrollingUp = scrollDirection === 'UP';\n var isScrollingDown = scrollDirection === 'DOWN';\n var isScrollingLeft = scrollDirection === 'LEFT';\n var isScrollingRight = scrollDirection === 'RIGHT';\n var scrollTargetRef = useCallback(function (node) {\n setTargetFromApi(node);\n }, []);\n useEffect(function () {\n setTargetFromProps(target);\n }, [target]);\n useEffect(function () {\n if (isBrowser()) {\n var scrollTimeout;\n var lastScrollTop = getScrollTop(targetToUse);\n var lastScrollLeft = getScrollLeft(targetToUse);\n\n var handleScroll = function handleScroll() {\n // Reset scroll direction when scrolling stops\n window.clearTimeout(scrollTimeout);\n scrollTimeout = window.setTimeout(function () {\n setScrollDirection(null);\n }, 66); // Set vertical direction while scrolling\n\n var scrollTop = getScrollTop(targetToUse);\n\n if (scrollTop > lastScrollTop) {\n setScrollDirection('DOWN');\n } else if (scrollTop < lastScrollTop) {\n setScrollDirection('UP');\n }\n\n lastScrollTop = scrollTop; // Set horizontal scroll direction\n\n var scrollLeft = getScrollLeft(targetToUse);\n\n if (scrollLeft > lastScrollLeft) {\n setScrollDirection('RIGHT');\n } else if (scrollLeft < lastScrollLeft) {\n setScrollDirection('LEFT');\n }\n\n lastScrollLeft = scrollLeft;\n };\n\n addScrollListener(handleScroll, targetToUse);\n return function () {\n return removeScrollListener(handleScroll, targetToUse);\n };\n }\n }, [targetToUse]);\n return {\n isScrolling: isScrolling,\n isScrollingX: isScrollingX,\n isScrollingY: isScrollingY,\n isScrollingUp: isScrollingUp,\n isScrollingDown: isScrollingDown,\n isScrollingLeft: isScrollingLeft,\n isScrollingRight: isScrollingRight,\n scrollDirection: scrollDirection,\n scrollTargetRef: scrollTargetRef\n };\n}\n\nexport { useScrollDirection };","import React, { useEffect, useRef } from \"react\"\nimport menuData from \"../data/menu.json\"\nimport findObject from \"../helpers/find-object\"\nimport { Link } from \"gatsby\"\nimport Image from \"../components/image\"\n\nexport default function SubNavigation({ current, id }) {\n const activeItem = useRef()\n\n const handleScroll = () => {\n var height = document.documentElement.scrollHeight - window.innerHeight\n var scrollY = window.pageYOffset\n var progress = Math.round((scrollY / height) * 100)\n if (activeItem.current) {\n activeItem.current.style.width = progress + \"%\"\n }\n }\n\n const setActive = name => {\n if (current === name) {\n return \"sub-navigation--active\"\n } else if (!current) {\n return \"sub-navigation--active\"\n } else {\n return null\n }\n }\n\n useEffect(() => {\n window.addEventListener(\"scroll\", handleScroll)\n })\n\n const renderChildren = () => {\n const parentMenu = findObject(menuData, \"id\", id)\n if (parentMenu === undefined) {\n return null\n }\n const menu = parentMenu.children\n const location = menu.findIndex(item => item.id.includes(current))\n\n let children = menu.map((item, index) => {\n return (\n \n
\n \n
\n\n \n {item.thumbnail && (\n
\n \n
\n )}\n
\n
\n {item.name}\n
\n {item.deck && (\n

{item.deck}

\n )}\n
\n \n \n )\n })\n\n return children\n }\n\n const menuLength = () => {\n const parentMenu = findObject(menuData, \"id\", id)\n if (parentMenu === undefined) {\n return null\n }\n const menu = parentMenu.children\n return menu.length\n }\n\n return (\n \n
    {renderChildren()}
\n \n )\n}\n","import React, { useEffect, useRef, useState } from \"react\"\nimport menuData from \"../data/menu.json\"\nimport findObject from \"../helpers/find-object\"\nimport { Link } from \"gatsby\"\nimport Image from \"./image\"\n\nexport default function MobileSubNavigation({ current, id }) {\n const activeItem = useRef()\n const [expanded, setExpanded] = useState(false)\n\n const handleScroll = () => {\n var height = document.documentElement.scrollHeight - window.innerHeight\n var scrollY = window.pageYOffset\n var progress = Math.round((scrollY / height) * 100)\n if (activeItem.current) {\n activeItem.current.style.width = progress + \"%\"\n }\n }\n\n const setActive = name => {\n if (current === name) {\n return \"sub-navigation--active\"\n } else if (!current) {\n return \"sub-navigation--active\"\n } else {\n return null\n }\n }\n\n useEffect(() => {\n window.addEventListener(\"scroll\", handleScroll)\n })\n\n const renderChildren = () => {\n const parentMenu = findObject(menuData, \"id\", id)\n if (parentMenu === undefined) {\n return null\n }\n const menu = parentMenu.children\n const location = menu.findIndex(item => item.id.includes(current))\n const currentItem = location !== -1 ? menu[location] : parentMenu\n\n const items = menu.map((item, index) => {\n return item.id !== current ? (\n \n \n {item.thumbnail && (\n
\n \n
\n )}\n
\n
\n {item.name}\n
\n
\n \n \n ) : null\n })\n\n return (\n <>\n
  • \n setExpanded(!expanded)}\n className=\"icon--chevron\"\n aria-controls=\"sub-navigation__menu\"\n >\n
    \n
    \n
    \n\n
    \n {currentItem.thumbnail && (\n
    \n \n
    \n )}\n
    \n
    \n {currentItem.name}\n
    \n
    \n
    \n \n
  • \n {items}\n \n )\n }\n\n return (\n \n )\n}\n","import React, { useState, useEffect, useRef } from \"react\"\nimport HomepageLogoLink from \"../components/homepage-logo-link\"\nimport { Link, withPrefix } from \"gatsby\"\nimport { slugify } from \"../helpers/strings\"\nimport menu from \"../data/menu.json\"\nimport FocusLock from \"react-focus-lock\"\nimport { useScrollDirection } from \"react-use-scroll-direction\"\nimport SubNavigation from \"../components/sub-navigation\"\nimport MobileSubNavigation from \"../components/mobile-sub-navigation\"\n\nexport default function SiteHeader({ path, hash }) {\n const homepageLogoLink = useRef()\n const mobileNavButton = useRef()\n const [mobileNavIsActive, setMobileNavIsActive] = useState(false)\n const [isScrollingDown, setIsScrollingDown] = useState(false)\n const { scrollDirection } = useScrollDirection()\n\n useEffect(() => {\n if (scrollDirection === \"DOWN\") {\n setIsScrollingDown(true)\n } else if (scrollDirection === \"UP\") {\n setIsScrollingDown(false)\n }\n }, [scrollDirection])\n\n const paths = path\n .split(\"/\")\n .filter(function (el) {\n return el !== \"\"\n })\n .slice(0)\n .slice(-2)\n\n const getPageParent = () => {\n let parent\n if (\n paths[0] === \"2021\" ||\n !paths.length ||\n paths[1] === \"message-from-the-md\"\n ) {\n parent = \"intro\"\n } else if (paths[1] === \"what-we-do\") {\n parent = \"what-we-do\"\n } else {\n parent = paths[0]\n }\n return parent\n }\n\n const getPageSlug = () => {\n let slug\n if (paths[0] === \"2021\") {\n slug = \"opening-statement\"\n } else {\n slug = paths[1]\n }\n\n return slug\n }\n\n // Helper for normalizing paths for correct mobile nav active page underlining, regardless of env\n function normalizePath(path) {\n return path.replace(\"/external/pubs/ft/ar/2021/eng/\", \"/\")\n }\n\n function toggleMobileNav() {\n const BODY_LOCK = \"util__body-lock\"\n\n if (mobileNavIsActive) {\n setMobileNavIsActive(false)\n document.body.classList.remove(BODY_LOCK)\n } else {\n setMobileNavIsActive(true)\n document.body.classList.add(BODY_LOCK)\n }\n }\n\n function isNavItemActive(item) {\n if (path.includes(\"spotlight\") && item.name === \"No Time to Let Up\") {\n return true\n } else if (path.includes(\"what-we-do\") && item.name === \"What We Do\") {\n return true\n } else if (path.includes(\"who-we-are\") && item.name === \"Who We Are\") {\n return true\n } else if (path.includes(\"downloads\") && item.name === \"Downloads\") {\n return true\n } else if (\n path.includes(\"message-from-the-md\") &&\n item === \"Message from the Managing Director\"\n ) {\n return true\n } else {\n return false\n }\n }\n\n function toggleNavItemOnFocus(e) {\n // If the user is clicking, ignore this focus/blur toggle behavior and allow hover behavior to persist\n if (!document.body.classList.contains(\"user-is-tabbing\")) {\n return\n }\n\n const focusClass = \"site-header__nav__main__item--focus\"\n\n let focusedItemParent = e.target.closest(\"li.site-header__nav__main__item\")\n\n focusedItemParent.classList.contains(focusClass)\n ? focusedItemParent.classList.remove(focusClass)\n : focusedItemParent.classList.add(focusClass)\n }\n\n // Simple listener to close overlay on escape key hit\n function handleKeydown(e) {\n if (mobileNavIsActive && e.keyCode === 27) {\n toggleMobileNav()\n }\n }\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeydown)\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n })\n\n return (\n \n
    \n \n \n \n \n
      \n {menu.map((item, index) => {\n return (\n
    • \n {item.href ? (\n \n {item.name}\n \n ) : (\n
      {item.name}
      \n )}\n
        \n {item.children.map((child, index) => (\n
      • \n {child.href.includes(\".pdf\") ? (\n \n {child.name}\n \n ) : (\n \n {child.name}\n \n )}\n {child.children ? (\n
          \n {child.children.map((subchild, index) => (\n
        • \n {subchild.href.includes(\".pdf\") ? (\n \n {subchild.name}\n \n ) : (\n \n {subchild.name}\n \n )}\n
        • \n ))}\n
        \n ) : null}\n
      • \n ))}\n
      \n
    • \n )\n })}\n
    \n \n \n \n \n \n
    \n {getPageParent() !== \"intro\" &&\n getPageParent() !== \"downloads\" &&\n getPageParent() !== \"message-from-the-md\" &&\n getPageParent() !== \"eng\" ? (\n <>\n \n \n \n ) : null}\n \n )\n}\n","import React from \"react\"\nimport { Helmet } from \"react-helmet\"\nimport useSiteMetadata from \"../hooks/use-site-metadata\"\nimport menu from \"../data/menu.json\"\nimport { useStaticQuery, graphql } from \"gatsby\"\n\n/**\n * Component representing common metadata of a page.\n *\n * Different crawlers such as Twitter Cards and Facebook's Open Graph Protocol (OGP)\n * use different meta tags to annotate web pages for things like smart previews.\n * This component abstracts out the specific meta tags and attributes necessary and defines\n * valid properties that can be attached to metadata for Gatsby site pages.\n *\n * Props:\n *\n * @param title The title of the page used in the `` tag.\n * @param description A longer description of the page, used in the \"description\" tag\n * as well as OGP.\n *\n * @param type The type of the page, used by OGP: https://ogp.me/#types\n *\n * @param image An image to be attached to the Facebook preview and Twitter Card. Consists of:\n *\n * - `src` the source the image\n * - `width` the width of the image\n * - `height` the height of the image\n *\n * @param twitterCard The Twitter card type, which will be one of\n * “summary”, “summary_large_image”, “app”, or “player”.\n *\n * @param timeToRead The amount of time it takes to read the article, in minutes.\n * Used by Slack rich previews:\n * https://api.slack.com/legacy/message-link-unfurling#classic_unfurling\n *\n * @param children You can specify additional meta properties or override them by\n * adding children to this component. For example:\n *\n * ```\n * <PageMetadata>\n * <meta name=\"author\" content={author.id} />\n * </PageMetadata>\n * ```\n *\n * Additional References:\n *\n * - Open Graph Protocol: https://ogp.me/\n * - Facebook Sharing Debugger: https://developers.facebook.com/tools/debug/\n * - Twitter Card Docs: https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup\n * - Twitter Card validator: https://cards-dev.twitter.com/validator\n */\nexport default function PageMetadata({\n template,\n type,\n twitterCard,\n timeToRead,\n children,\n}) {\n const { siteUrl, title, description } = useSiteMetadata()\n // <Helmet> doesn't support JSX fragments so we can't bundle the tags based on\n // the property they match up with\n\n // title is read-only, so instantiate a new var for the page title (and page featured image)\n var pageTitle = \"\"\n var pageFeaturedImagePath = \"\"\n\n menu.forEach(item => {\n if (template === item.id) {\n pageTitle = item.name\n\n pageFeaturedImagePath = item.featured_image && item.featured_image\n } else if (item.children) {\n item.children.forEach(child => {\n if (template === child.id) {\n pageTitle = `${item.id === \"spotlights\" ? \"\" : `${child.name} | `}${\n item.name\n }`\n pageFeaturedImagePath = child.featured_image && child.featured_image\n }\n })\n }\n })\n\n // Static image method modified from Image.js\n const data = useStaticQuery(\n graphql`\n query {\n images: allFile {\n edges {\n node {\n relativePath\n name\n childImageSharp {\n fluid(maxWidth: 3000, quality: 100) {\n ...GatsbyImageSharpFluid\n ...GatsbyImageSharpFluid_withWebp\n }\n }\n }\n }\n }\n }\n `\n )\n\n const pageFeaturedImage =\n pageFeaturedImagePath &&\n data.images.edges.find(item =>\n item.node.relativePath.includes(pageFeaturedImagePath)\n )?.node.childImageSharp.fluid.src\n\n return (\n <Helmet>\n <html lang=\"en\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1, maximum-scale=5, shrink-to-fit=no\"\n />\n {title && <title>{`${pageTitle && ` ${pageTitle} | ${title}`}`}}\n {title && (\n \n )}\n {description && }\n {description && }\n {type && }\n {twitterCard && }\n {timeToRead && }\n {timeToRead && (\n \n )}\n \n {children}\n
    \n )\n}\n","import { graphql, useStaticQuery } from \"gatsby\"\n\nexport default function useSiteMetadata() {\n const { site } = useStaticQuery(graphql`\n query SiteMetadata {\n site {\n siteMetadata {\n siteUrl\n title\n twitter\n description\n }\n }\n }\n `)\n return site.siteMetadata\n}\n","/* eslint-disable */\nimport React from \"react\"\n\nexport default function Cta({ href, text, type, targetBlank }) {\n return (\n \n {text}\n {type === \"secondary\" ? (\n \n \n \n ) : null}\n \n )\n}\n","function getRandom(array) {\n const randomIndex = Math.floor(Math.random() * array.length)\n const item = array[randomIndex]\n return item\n}\n\nfunction shuffle(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n\n [array[i], array[j]] = [array[j], array[i]]\n }\n return array\n}\n\nexport { getRandom, shuffle }\n","import React, { useRef, useEffect } from \"react\"\nimport Cta from \"../components/cta\"\nimport tweetData from \"../data/tweets.json\"\nimport { getRandom } from \"../helpers/arrays\"\n\nexport default function SiteFooterTwitter({ path }) {\n const tweets = tweetData.filter(obj => {\n return obj.path === path\n })\n\n const tweet = tweets.length >= 1 ? getRandom(tweets) : getRandom(tweetData)\n\n const contentRef = useRef()\n\n useEffect(() => {\n if (contentRef.current) {\n contentRef.current.innerHTML = urlify(tweet.content)\n }\n }, [contentRef])\n\n function urlify(text) {\n const urlRegex = /(https?:\\/\\/[^\\s]+)/g\n let link = text.replace(urlRegex, function (url) {\n return (\n '' +\n url.replace(/\\.$/, \"\") +\n \"\"\n )\n })\n\n const hashRegex = /(^|\\s)(#[a-z\\d-]+)/gi\n link = link.replace(hashRegex, function (hash) {\n return (\n '' +\n hash +\n \"\"\n )\n })\n return link\n }\n\n return (\n
  • \n
    \n

    Twitter Highlights

    \n \n
    \n

    \n \n

  • \n )\n}\n","import React from \"react\"\nimport Cta from \"../components/cta\"\nimport instagramData from \"../data/instagram.json\"\nimport { shuffle } from \"../helpers/arrays\"\nimport Image from \"../components/image\"\n\nexport default function SiteFooterInstagram({ path }) {\n const totalPosts = 3\n\n var pagePosts = shuffle(\n instagramData.filter(obj => {\n return obj.paths.includes(path)\n })\n )\n\n if (pagePosts.length < totalPosts) {\n var otherPosts = shuffle(\n instagramData.filter(obj => {\n return !obj.paths.includes(path)\n })\n )\n }\n\n const posts = pagePosts.concat(otherPosts).slice(0, totalPosts)\n\n return (\n
  • \n
    \n

    Instagram Highlights

    \n
    \n @the_imf\n
    \n
    \n
      \n {posts.map((post, index) => (\n
    • \n \n {post.alt}\n \n
    • \n ))}\n
    \n \n
  • \n )\n}\n","import React from \"react\"\nimport { withPrefix } from \"gatsby\"\nimport HomepageLogoLink from \"../components/homepage-logo-link\"\nimport SiteFooterTwitter from \"../components/site-footer-twitter\"\nimport SiteFooterInstagram from \"../components/site-footer-instagram\"\nimport Cta from \"../components/cta\"\nimport DownloadFullReport from \"../components/download-full-report\"\nimport Safe from \"react-safe\"\n\nexport default function SiteFooter({ path }) {\n const description =\n \"The International Monetary Fund (IMF) is a global organization of 190 member countries set up to promote the health of the world economy.\"\n const pathArray = path.split(\"/\")\n\n const lastPathSegment =\n (pathArray !== \"\" ? pathArray.pop() || pathArray.pop() : pathArray) ||\n \"home\"\n\n return (\n
    \n
    \n
      \n
    • \n
      \n \n
      \n

      {description}

      \n \n
    • \n \n \n
    \n
    \n
    \n
    \n \n

    \n Credits for images found in this website can be found{\" \"}\n \n \n here.\n \n \n

    \n
    \n
    \n\n {typeof _satellite !== \"undefined\" ? (\n \n _satellite.pageBottom();\n \n ) : null}\n
    \n )\n}\n","import React, { useEffect } from \"react\"\nimport SiteHeader from \"../components/site-header\"\nimport PageMetadata from \"../components/page-metadata\"\nimport { Location } from \"@reach/router\"\nimport SiteFooter from \"../components/site-footer\"\nimport { ToastContainer } from \"react-toastify\"\n\nconst Layout = ({ children }) => {\n const handleKeydown = event => {\n if (event.keyCode === 9 || event.keyCode === 13) {\n document.body.classList.add(\"user-is-tabbing\")\n }\n }\n\n const handleClick = e => {\n if (e.detail === 1) {\n document.body.classList.remove(\"user-is-tabbing\")\n }\n }\n\n const getPage = pathname => {\n let base = pathname.split(\"/\")\n let lastSegment = base.pop() || base.pop()\n if ((lastSegment === \"\") | (lastSegment === \"eng\")) {\n return \"home\"\n } else {\n return lastSegment\n }\n }\n\n useEffect(() => {\n window.addEventListener(\"click\", handleClick)\n return () => {\n window.removeEventListener(\"click\", handleClick)\n }\n })\n\n useEffect(() => {\n window.addEventListener(\"keydown\", handleKeydown)\n return () => {\n window.removeEventListener(\"keydown\", handleKeydown)\n }\n })\n\n return (\n \n {({ location }) => (\n <>\n \n \n Skip to main content\n \n \n \n
    {children}
    \n \n \n \n )}\n
    \n )\n}\n\nexport default Layout\n","import React from \"react\"\n\nexport default function Logo() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","export default function findObject(\n dataSource,\n dataSourceProperty,\n valueToMatch\n) {\n return dataSource.find(object => object[dataSourceProperty] === valueToMatch)\n}\n","// H/T https://gist.github.com/hagemann/382adfc57adbd5af078dc93feef01fe1\nfunction slugify(string) {\n const a =\n \"àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;\"\n const b =\n \"aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------\"\n const p = new RegExp(a.split(\"\").join(\"|\"), \"g\")\n\n return string\n .toString()\n .toLowerCase()\n .replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters\n .replace(/&/g, \"-and-\") // Replace & with 'and'\n .replace(/[^\\w-]+/g, \"\") // Remove all non-word characters\n .replace(/--+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\") // Trim - from end of text\n}\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n\nexport { slugify, capitalizeFirstLetter }\n"],"names":["module","exports","instance","Constructor","TypeError","__esModule","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","_defineProperty","obj","value","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","constructor","_typeof","assertThisInitialized","self","Symbol","iterator","toVal","mix","k","y","str","Array","isArray","tmp","x","OFI","propRegex","testImg","Image","style","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","setAttribute","autoModeEnabled","setPlaceholder","img","width","height","placeholder","onImageReady","callback","naturalWidth","setTimeout","fixOne","el","parsed","getComputedStyle","fontFamily","exec","getStyle","ofi","skipTest","srcset","src","naturalHeight","descriptors","get","prop","set","ss","keepSrcUsable","err","window","console","warn","picturefill","pf","_","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","replace","backgroundPosition","backgroundRepeat","backgroundOrigin","test","backgroundSize","fix","imgs","opts","startAutoMode","document","getElementsByTagName","querySelectorAll","body","addEventListener","e","tagName","watchMQ","bind","getOfiImageMaybe","name","HTMLImageElement","String","hijackAttributes","hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","keys","it","size","entries","next","done","has","RegExp","flags","valueOf","toString","$$typeof","error","message","match","clock","Component","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","map","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","defineProperties","objectWithoutProperties","indexOf","possibleConstructorReturn","ReferenceError","encodeSpecialCharacters","encode","undefined","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","join","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","concat","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","forEach","push","tagUnion","property","rafPolyfill","Date","now","currentTime","cafPolyfill","id","clearTimeout","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","g","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","cb","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","helmetAttributeString","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","indexToSave","splice","_i","removeAttribute","type","tags","headElement","head","querySelector","tagNodes","slice","indexToDelete","newElement","createElement","innerHTML","styleSheet","cssText","appendChild","createTextNode","some","existingTag","index","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","string","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref","_ref$title","base","link","meta","noscript","script","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","Error","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","children","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","render","_props","canUseDOM","propTypes","defaultTitle","titleTemplate","defaultProps","peek","rewind","mappedState","renderStatic","_classCallCheck","_createClass","_inherits","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","result","Super","NewTarget","_react","_interopRequireDefault","_htmlTags","default","_default","_react$default$Compon","Tag","_super","obj2","_Object$keys","includes","omit","ex","React","React__default","reducePropsToState","handleStateChangeOnClient","WrappedComponent","state","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","displayName","getDisplayName","isNum","v","isNaN","isBool","isStr","isFn","parseClassName","isToastIdValid","toastId","canUseDom","canBeRendered","isValidElement","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","WARNING","ERROR","DEFAULT","DARK","cssTransition","enter","exit","_ref$appendPosition","appendPosition","_ref$collapse","collapse","_ref$collapseDuration","collapseDuration","position","preventExitTransition","nodeRef","isIn","enterClassName","exitClassName","baseClassName","useRef","animationStep","onEntered","node","removeEventListener","className","onExited","duration","scrollHeight","minHeight","transition","padding","margin","collapseToast","useLayoutEffect","useEffect","onExit","eventManager","list","emitQueue","on","event","off","cancelEmit","timers","emit","_this","_len","args","_key","timer","useKeeper","arg","refresh","ref","reducer","action","staleId","useToastContainer","forceUpdate","useReducer","_useReducer2","toast","dispatch","containerRef","toastCount","queue","collection","toastKey","displayedToast","containerId","isToastActive","getToast","clearWaitingQueue","limit","removeToast","dequeueToast","_queue$shift","shift","appendToast","toastContent","toastProps","buildToast","_ref3","delay","options","excluded","sourceKeys","_objectWithoutPropertiesLoose","updateId","enableMultiContainer","isNotValid","closeToast","isNotAnUpdate","toastAutoClose","containerAutoClose","closeButton","rtl","toastClassName","bodyClassName","toastStyle","bodyStyle","onClick","pauseOnHover","pauseOnFocusLoss","draggable","draggablePercent","draggableDirection","closeOnClick","progressClassName","progressStyle","autoClose","hideProgressBar","progress","role","deleteToast","queueLen","freeSlot","toDequeue","removeFromCollection","onOpen","onClose","cloneElement","getToastToRender","toastToRender","toastList","newestOnTop","_toast","p","getX","targetTouches","clientX","getY","clientY","useToast","_useState","useState","isRunning","setIsRunning","_useState2","setPreventExitTransition","toastRef","drag","start","delta","removalDistance","canCloseOnClick","canDrag","boundingRect","syncProps","onDragStart","getBoundingClientRect","nativeEvent","offsetWidth","offsetHeight","onDragTransitionEnd","_drag$boundingRect","top","bottom","left","right","pauseToast","playToast","onDragMove","preventDefault","transform","opacity","Math","abs","onDragEnd","hasFocus","bindFocusEvents","eventHandlers","onMouseDown","onTouchStart","onMouseUp","onTouchEnd","onMouseEnter","onMouseLeave","CloseButton","_ref$ariaLabel","ariaLabel","stopPropagation","viewBox","fillRule","d","ProgressBar","_cx","_animationEvent","hide","userStyle","controlledProgress","animationDuration","animationPlayState","defaultClassName","classNames","animationEvent","Toast","_useToast","Transition","cssClasses","isProgressControlled","renderCloseButton","Bounce","ToastContainer","_useToastContainer","getClassName","containerStyle","pointerEvents","latestInstance","containerDomNode","containerConfig","containers","lazy","generateToastId","random","substr","getToastId","dispatchToast","mergeOptions","createToastByType","success","info","warning","dark","dismiss","params","isActive","container","update","oldOptions","oldContent","nextOptions","onChange","configure","config","containerInstance","item","require","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_propTypes","_excluded","convertProps","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","matchesMedia","media","isBrowser","matchMedia","matches","getImageCacheKey","srcData","getCurrentSrcData","currentData","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","inImageCache","cacheKey","hasNativeLazyLoadSupport","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","srcSet","srcSetWebp","Fragment","withMedia","without","variant","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","observer","entry","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","noscriptImg","alt","crossOrigin","Placeholder","forwardRef","generateSources","spreadProps","ariaHidden","baseImage","Img","onLoad","onError","otherProps","objectFit","objectPosition","object","func","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","handleRef","componentDidMount","setState","onStartLoad","wasCached","complete","cleanUpListeners","imageInCache","_convertProps","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","itemProp","shouldReveal","shouldFadeIn","imageStyle","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","divStyle","display","fixedObject","shape","number","isRequired","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_interopRequireWildcard","_index","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","ImageWithIEPolyfill","_Component","innerRef","Promise","resolve","then","ObjectFitImages","_this$props","polyfillStyle","DownloadFullReport","location","downloads","menu","downloadLink","find","reports","lang","href","withPrefix","path","caption","useStaticQuery","images","edges","relativePath","childImageSharp","HomepageLogoLink","passedRef","classes","Link","to","FOCUS_GROUP","FOCUS_DISABLED","useMergeRefs","refs","defaultValue","initialValue","newValue","assignRef","facade","last","hiddenGuard","InFocusGuard","_assign","t","s","n","ItoI","innerCreateMedium","defaults","middleware","buffer","assigned","read","useMedium","data","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cycle","_filter","createMedium","mediumFocus","currentTarget","mediumBlur","mediumEffect","mediumSidecar","medium","async","ssr","createSidecarMedium","emptyArray","FocusLock","parentRef","_React$useState","realObserved","setObserved","observed","originalFocusedElement","disabled","noFocusGuards","persistentFocus","crossFrame","autoFocus","group","allowTextSelection","whiteList","_props$shards","shards","_props$as","as","Container","_props$lockProps","lockProps","containerProps","SideCar","sideCar","shouldReturnFocus","returnFocus","onActivationCallback","onActivation","onDeactivationCallback","onDeactivation","activeElement","allowDefer","focus","focusOptions","onFocus","onBlur","setObserveNode","newObserved","hasLeadingGuards","hasTailingGuards","mergedRef","tabIndex","isRadio","correctNode","nodes","checked","findSelectedRadio","pickFirstFocus","pickFocusable","isVisibleCached","visibilityCache","cached","checkParent","nodeType","Node","DOCUMENT_NODE","computedStyle","getPropertyValue","DOCUMENT_FRAGMENT_NODE","host","isVisibleUncached","isGuard","dataset","focusGuard","isNotAGuard","isDefined","NEW_FOCUS","newFocus","innerNodes","outerNodes","lastNode","cnt","firstFocus","lastFocus","isOnGuard","resultSet","activeIndex","lastIndex","lastNodeInside","indexDiff","firstNodeIndex","lastNodeIndex","correctedNodes","add","correctedIndexDiff","returnFirstNode","returnLastNode","toArray","ret","asArray","getTopParent","getAllAffectedNodes","acc","currentNode","contained","l","j","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","filterNested","tabSort","tabDiff","orderByTabIndex","filterNegative","keepGuards","sort","queryTabbables","queryGuardTabbables","getFocusables","parents","withGuards","parent","filterFocusable","notHiddenInput","getTabbableNodes","topNodes","getAllTabbableNodes","parentAutofocusables","topNode","parentFocus","getParents","getCommonParent","nodeA","nodeB","parentsA","parentsB","currentParent","getTopCommonParent","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","subEntry","common","contains","getFocusMerge","commonParent","anyFocusable","innerElements","_a","srcNodes","dstNodes","remap","autoFocusables","orderedInnerElements","entity","newId","autoFocusable","allParentAutofocusables","autofocus","guardCount","lockDisabled","focusable","contentWindow","focusInsideIframe","focusInside","deferAction","setImmediate","isFreeFocus","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","autoGuard","startIndex","end","step","allNodes","lastGuard","guard","focusAutoGuard","lockItem","extractRef","activateTrap","element","_lastActiveTrap","workingNode","portaledElement","workingArea","focusWhitelisted","blur","newActiveElement","focusedIndex","onTrap","observerNode","onWindowBlur","moveFocusInside","traps","trap","lastTrap","sameTrap","FocusLockCombination","getScrollTop","scrollTop","scrollY","pageYOffset","documentElement","getScrollLeft","scrollLeft","scrollX","pageXOffset","useScrollDirection","targetFromApi","setTargetFromApi","targetFromProps","setTargetFromProps","_useState3","scrollDirection","setScrollDirection","targetToUse","isScrolling","isScrollingX","isScrollingY","isScrollingUp","isScrollingDown","isScrollingLeft","isScrollingRight","scrollTargetRef","useCallback","scrollTimeout","lastScrollTop","lastScrollLeft","handleScroll","listener","addScrollListener","removeScrollListener","SubNavigation","activeItem","innerHeight","round","parentMenu","findObject","menuData","flex","thumbnail","deck","renderChildren","MobileSubNavigation","expanded","setExpanded","currentItem","items","SiteHeader","hash","homepageLogoLink","mobileNavButton","mobileNavIsActive","setMobileNavIsActive","setIsScrollingDown","paths","getPageParent","getPageSlug","normalizePath","toggleMobileNav","BODY_LOCK","classList","remove","isNavItemActive","toggleNavItemOnFocus","focusClass","focusedItemParent","closest","handleKeydown","keyCode","itemSlug","slugify","hideDesktop","subchild","PageMetadata","template","twitterCard","timeToRead","site","siteMetadata","siteUrl","description","pageTitle","pageFeaturedImagePath","featured_image","pageFeaturedImage","Helmet","Cta","text","targetBlank","rel","fill","xmlns","getRandom","array","floor","shuffle","SiteFooterTwitter","tweets","tweetData","tweet","contentRef","urlRegex","hashRegex","url","trim","account","date","SiteFooterInstagram","pagePosts","instagramData","otherPosts","posts","post","image_path","SiteFooter","pathArray","lastPathSegment","pop","_satellite","handleClick","detail","Location","pathname","lastSegment","Logo","dataSource","dataSourceProperty","valueToMatch","c","charAt"],"sourceRoot":""}