{"version":3,"file":"static/components/1394-35306e9cfe1cd36f.mjs?cv=7","sources":["webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_Symbol.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_baseGetTag.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_baseTrim.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_freeGlobal.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_getRawTag.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_objectToString.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_root.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/_trimmedEndIndex.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/debounce.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/isObject.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/isObjectLike.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/isSymbol.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/now.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/throttle.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/lodash/toNumber.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/prop-types/index.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/react-use/esm/useIntersection.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js"],"sourcesContent":["function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n  var passiveTestOptions = {\n    get passive() {\n      hasPassiveEvents = true;\n      return undefined;\n    }\n  };\n  window.addEventListener('testPassive', null, passiveTestOptions);\n  window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n  return locks.some(function (lock) {\n    if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n      return true;\n    }\n\n    return false;\n  });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n  var e = rawEvent || window.event;\n\n  // For the case whereby consumers adds a touchmove event listener to document.\n  // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n  // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n  // the touchmove event on document will break.\n  if (allowTouchMove(e.target)) {\n    return true;\n  }\n\n  // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n  if (e.touches.length > 1) return true;\n\n  if (e.preventDefault) e.preventDefault();\n\n  return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n  // If previousBodyPaddingRight is already set, don't set it again.\n  if (previousBodyPaddingRight === undefined) {\n    var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n    var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n    if (_reserveScrollBarGap && scrollBarGap > 0) {\n      previousBodyPaddingRight = document.body.style.paddingRight;\n      document.body.style.paddingRight = scrollBarGap + 'px';\n    }\n  }\n\n  // If previousBodyOverflowSetting is already set, don't set it again.\n  if (previousBodyOverflowSetting === undefined) {\n    previousBodyOverflowSetting = document.body.style.overflow;\n    document.body.style.overflow = 'hidden';\n  }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n  if (previousBodyPaddingRight !== undefined) {\n    document.body.style.paddingRight = previousBodyPaddingRight;\n\n    // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n    // can be set again.\n    previousBodyPaddingRight = undefined;\n  }\n\n  if (previousBodyOverflowSetting !== undefined) {\n    document.body.style.overflow = previousBodyOverflowSetting;\n\n    // Restore previousBodyOverflowSetting to undefined\n    // so setOverflowHidden knows it can be set again.\n    previousBodyOverflowSetting = undefined;\n  }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n  return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n  var clientY = event.targetTouches[0].clientY - initialClientY;\n\n  if (allowTouchMove(event.target)) {\n    return false;\n  }\n\n  if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n    // element is at the top of its scroll.\n    return preventDefault(event);\n  }\n\n  if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n    // element is at the bottom of its scroll.\n    return preventDefault(event);\n  }\n\n  event.stopPropagation();\n  return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n  // targetElement must be provided\n  if (!targetElement) {\n    // eslint-disable-next-line no-console\n    console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n    return;\n  }\n\n  // disableBodyScroll must not have been called on this targetElement before\n  if (locks.some(function (lock) {\n    return lock.targetElement === targetElement;\n  })) {\n    return;\n  }\n\n  var lock = {\n    targetElement: targetElement,\n    options: options || {}\n  };\n\n  locks = [].concat(_toConsumableArray(locks), [lock]);\n\n  if (isIosDevice) {\n    targetElement.ontouchstart = function (event) {\n      if (event.targetTouches.length === 1) {\n        // detect single touch.\n        initialClientY = event.targetTouches[0].clientY;\n      }\n    };\n    targetElement.ontouchmove = function (event) {\n      if (event.targetTouches.length === 1) {\n        // detect single touch.\n        handleScroll(event, targetElement);\n      }\n    };\n\n    if (!documentListenerAdded) {\n      document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n      documentListenerAdded = true;\n    }\n  } else {\n    setOverflowHidden(options);\n  }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n  if (isIosDevice) {\n    // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n    locks.forEach(function (lock) {\n      lock.targetElement.ontouchstart = null;\n      lock.targetElement.ontouchmove = null;\n    });\n\n    if (documentListenerAdded) {\n      document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n      documentListenerAdded = false;\n    }\n\n    // Reset initial clientY.\n    initialClientY = -1;\n  } else {\n    restoreOverflowSetting();\n  }\n\n  locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n  if (!targetElement) {\n    // eslint-disable-next-line no-console\n    console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n    return;\n  }\n\n  locks = locks.filter(function (lock) {\n    return lock.targetElement !== targetElement;\n  });\n\n  if (isIosDevice) {\n    targetElement.ontouchstart = null;\n    targetElement.ontouchmove = null;\n\n    if (documentListenerAdded && locks.length === 0) {\n      document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n      documentListenerAdded = false;\n    }\n  } else if (!locks.length) {\n    restoreOverflowSetting();\n  }\n};\n\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","var debounce = require('./debounce'),\n    isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nmodule.exports = throttle;\n","var baseTrim = require('./_baseTrim'),\n    isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import { useEffect, useState } from 'react';\nvar useIntersection = function (ref, options) {\n    var _a = useState(null), intersectionObserverEntry = _a[0], setIntersectionObserverEntry = _a[1];\n    useEffect(function () {\n        if (ref.current && typeof IntersectionObserver === 'function') {\n            var handler = function (entries) {\n                setIntersectionObserverEntry(entries[0]);\n            };\n            var observer_1 = new IntersectionObserver(handler, options);\n            observer_1.observe(ref.current);\n            return function () {\n                setIntersectionObserverEntry(null);\n                observer_1.disconnect();\n            };\n        }\n        return function () { };\n    }, [ref.current, options.threshold, options.root, options.rootMargin]);\n    return intersectionObserverEntry;\n};\nexport default useIntersection;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n"],"names":["window","i","e","document","t","Array","console","s","Object","o","self","Function","Math","TypeError","setTimeout","arguments","clearTimeout","r","parseInt","Error","IntersectionObserver","Map","requestAnimationFrame","Date","MutationObserver","parseFloat","SVGGraphicsElement","c","DOMRectReadOnly","Element","WeakMap"],"mappings":"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"}