{"version":3,"file":"static/js/411.bc9fe25f.chunk.js","mappings":"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","sources":["../node_modules/can-use-dom/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash.memoize/index.js","../node_modules/lodash.throttle/index.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/simplebar/src/helpers.js","../node_modules/simplebar/src/scrollbar-width.js","../node_modules/simplebar/src/simplebar.js","../node_modules/simplebar-react/dist/simplebar-react.esm.js"],"sourcesContent":["var canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nmodule.exports = canUseDOM;","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = debounce;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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 objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\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 && (type == 'object' || type == 'function');\n}\n\nmodule.exports = memoize;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = throttle;\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","var resizeObservers = [];\nexport { resizeObservers };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a, _b;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","// Helper function to retrieve options from element attributes\nexport const getOptions = function(obj) {\n const options = Array.prototype.reduce.call(\n obj,\n (acc, attribute) => {\n const option = attribute.name.match(/data-simplebar-(.+)/);\n if (option) {\n const key = option[1].replace(/\\W+(.)/g, (x, chr) => chr.toUpperCase());\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n case 'false':\n acc[key] = false;\n break;\n case undefined:\n acc[key] = true;\n break;\n default:\n acc[key] = attribute.value;\n }\n }\n return acc;\n },\n {}\n );\n return options;\n};\n\nexport function getElementWindow(element) {\n if (\n !element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView\n ) {\n return window;\n }\n return element.ownerDocument.defaultView;\n}\n\nexport function getElementDocument(element) {\n if (!element || !element.ownerDocument) {\n return document;\n }\n return element.ownerDocument;\n}\n","import canUseDOM from 'can-use-dom';\nimport { getElementDocument } from \"./helpers\";\n\nlet cachedScrollbarWidth = null;\nlet cachedDevicePixelRatio = null;\n\nif (canUseDOM) {\n window.addEventListener('resize', () => {\n if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n cachedDevicePixelRatio = window.devicePixelRatio;\n cachedScrollbarWidth = null;\n }\n });\n}\n\nexport default function scrollbarWidth(el) {\n if (cachedScrollbarWidth === null) {\n \n const document = getElementDocument(el);\n \n if (typeof document === 'undefined') {\n cachedScrollbarWidth = 0;\n return cachedScrollbarWidth;\n }\n const body = document.body;\n const box = document.createElement('div');\n\n box.classList.add('simplebar-hide-scrollbar');\n\n body.appendChild(box);\n\n const width = box.getBoundingClientRect().right;\n\n body.removeChild(box);\n\n cachedScrollbarWidth = width;\n }\n\n return cachedScrollbarWidth;\n}\n","import throttle from 'lodash.throttle';\nimport debounce from 'lodash.debounce';\nimport memoize from 'lodash.memoize';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport canUseDOM from 'can-use-dom';\nimport scrollbarWidth from './scrollbar-width';\nimport { getElementWindow, getElementDocument } from './helpers';\n\nexport default class SimpleBar {\n constructor(element, options) {\n this.el = element;\n this.minScrollbarWidth = 20;\n this.options = { ...SimpleBar.defaultOptions, ...options };\n this.classNames = {\n ...SimpleBar.defaultOptions.classNames,\n ...this.options.classNames\n };\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetSizeAttr: 'offsetWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetSizeAttr: 'offsetHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n }\n };\n this.removePreventClickId = null;\n\n // Don't re-instantiate over an existing one\n if (SimpleBar.instances.has(this.el)) {\n return;\n }\n\n this.recalculate = throttle(this.recalculate.bind(this), 64);\n this.onMouseMove = throttle(this.onMouseMove.bind(this), 64);\n this.hideScrollbars = debounce(\n this.hideScrollbars.bind(this),\n this.options.timeout\n );\n this.onWindowResize = debounce(this.onWindowResize.bind(this), 64, {\n leading: true\n });\n\n SimpleBar.getRtlHelpers = memoize(SimpleBar.getRtlHelpers);\n\n this.init();\n }\n\n /**\n * Static properties\n */\n\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n static getRtlHelpers() {\n const dummyDiv = document.createElement('div');\n dummyDiv.innerHTML =\n '<div class=\"hs-dummy-scrollbar-size\"><div style=\"height: 200%; width: 200%; margin: 10px 0;\"></div></div>';\n const scrollbarDummyEl = dummyDiv.firstElementChild;\n document.body.appendChild(scrollbarDummyEl);\n const dummyContainerChild = scrollbarDummyEl.firstElementChild;\n scrollbarDummyEl.scrollLeft = 0;\n const dummyContainerOffset = SimpleBar.getOffset(scrollbarDummyEl);\n const dummyContainerChildOffset = SimpleBar.getOffset(dummyContainerChild);\n scrollbarDummyEl.scrollLeft = 999;\n const dummyContainerScrollOffsetAfterScroll = SimpleBar.getOffset(\n dummyContainerChild\n );\n\n return {\n // determines if the scrolling is responding with negative values\n isRtlScrollingInverted:\n dummyContainerOffset.left !== dummyContainerChildOffset.left &&\n dummyContainerChildOffset.left -\n dummyContainerScrollOffsetAfterScroll.left !==\n 0,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isRtlScrollbarInverted:\n dummyContainerOffset.left !== dummyContainerChildOffset.left\n };\n }\n\n static defaultOptions = {\n autoHide: true,\n forceVisible: false,\n clickOnTrack: true,\n clickOnTrackSpeed: 40,\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging'\n },\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n timeout: 1000\n };\n\n static getOffset(el) {\n const rect = el.getBoundingClientRect();\n const elDocument = getElementDocument(el);\n const elWindow = getElementWindow(el);\n\n return {\n top:\n rect.top +\n (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n left:\n rect.left +\n (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n };\n }\n\n static instances = new WeakMap();\n\n init() {\n // Save a reference to the instance, so we know this DOM node has already been instancied\n SimpleBar.instances.set(this.el, this);\n\n // We stop here on server-side\n if (canUseDOM) {\n this.initDOM();\n\n this.setAccessibilityAttributes();\n\n this.scrollbarWidth = this.getScrollbarWidth();\n\n this.recalculate();\n\n this.initListeners();\n }\n }\n\n initDOM() {\n // make sure this element doesn't have the elements yet\n if (\n Array.prototype.filter.call(this.el.children, child =>\n child.classList.contains(this.classNames.wrapper)\n ).length\n ) {\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(`.${this.classNames.wrapper}`);\n this.contentWrapperEl =\n this.options.scrollableNode ||\n this.el.querySelector(`.${this.classNames.contentWrapper}`);\n this.contentEl =\n this.options.contentNode ||\n this.el.querySelector(`.${this.classNames.contentEl}`);\n\n this.offsetEl = this.el.querySelector(`.${this.classNames.offset}`);\n this.maskEl = this.el.querySelector(`.${this.classNames.mask}`);\n\n this.placeholderEl = this.findChild(\n this.wrapperEl,\n `.${this.classNames.placeholder}`\n );\n this.heightAutoObserverWrapperEl = this.el.querySelector(\n `.${this.classNames.heightAutoObserverWrapperEl}`\n );\n this.heightAutoObserverEl = this.el.querySelector(\n `.${this.classNames.heightAutoObserverEl}`\n );\n this.axis.x.track.el = this.findChild(\n this.el,\n `.${this.classNames.track}.${this.classNames.horizontal}`\n );\n this.axis.y.track.el = this.findChild(\n this.el,\n `.${this.classNames.track}.${this.classNames.vertical}`\n );\n } else {\n // Prepare DOM\n this.wrapperEl = document.createElement('div');\n this.contentWrapperEl = document.createElement('div');\n this.offsetEl = document.createElement('div');\n this.maskEl = document.createElement('div');\n this.contentEl = document.createElement('div');\n this.placeholderEl = document.createElement('div');\n this.heightAutoObserverWrapperEl = document.createElement('div');\n this.heightAutoObserverEl = document.createElement('div');\n\n this.wrapperEl.classList.add(this.classNames.wrapper);\n this.contentWrapperEl.classList.add(this.classNames.contentWrapper);\n this.offsetEl.classList.add(this.classNames.offset);\n this.maskEl.classList.add(this.classNames.mask);\n this.contentEl.classList.add(this.classNames.contentEl);\n this.placeholderEl.classList.add(this.classNames.placeholder);\n this.heightAutoObserverWrapperEl.classList.add(\n this.classNames.heightAutoObserverWrapperEl\n );\n this.heightAutoObserverEl.classList.add(\n this.classNames.heightAutoObserverEl\n );\n\n while (this.el.firstChild) {\n this.contentEl.appendChild(this.el.firstChild);\n }\n\n this.contentWrapperEl.appendChild(this.contentEl);\n this.offsetEl.appendChild(this.contentWrapperEl);\n this.maskEl.appendChild(this.offsetEl);\n this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n this.wrapperEl.appendChild(this.maskEl);\n this.wrapperEl.appendChild(this.placeholderEl);\n this.el.appendChild(this.wrapperEl);\n }\n\n if (!this.axis.x.track.el || !this.axis.y.track.el) {\n const track = document.createElement('div');\n const scrollbar = document.createElement('div');\n\n track.classList.add(this.classNames.track);\n scrollbar.classList.add(this.classNames.scrollbar);\n\n track.appendChild(scrollbar);\n\n this.axis.x.track.el = track.cloneNode(true);\n this.axis.x.track.el.classList.add(this.classNames.horizontal);\n\n this.axis.y.track.el = track.cloneNode(true);\n this.axis.y.track.el.classList.add(this.classNames.vertical);\n\n this.el.appendChild(this.axis.x.track.el);\n this.el.appendChild(this.axis.y.track.el);\n }\n\n this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector(\n `.${this.classNames.scrollbar}`\n );\n this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector(\n `.${this.classNames.scrollbar}`\n );\n\n if (!this.options.autoHide) {\n this.axis.x.scrollbar.el.classList.add(this.classNames.visible);\n this.axis.y.scrollbar.el.classList.add(this.classNames.visible);\n }\n\n this.el.setAttribute('data-simplebar', 'init');\n }\n\n setAccessibilityAttributes() {\n const ariaLabel = this.options.ariaLabel || 'scrollable content';\n\n this.contentWrapperEl.setAttribute('tabindex', '0');\n this.contentWrapperEl.setAttribute('role', 'region');\n this.contentWrapperEl.setAttribute('aria-label', ariaLabel);\n }\n\n initListeners() {\n const elWindow = getElementWindow(this.el);\n // Event listeners\n if (this.options.autoHide) {\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(e => {\n this.el.addEventListener(e, this.onPointerEvent, true);\n });\n\n ['touchstart', 'touchend', 'touchmove'].forEach(e => {\n this.el.addEventListener(e, this.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n\n this.contentWrapperEl.addEventListener('scroll', this.onScroll);\n\n // Browser zoom triggers a window resize\n elWindow.addEventListener('resize', this.onWindowResize);\n\n // Hack for https://github.com/WICG/ResizeObserver/issues/38\n let resizeObserverStarted = false;\n const resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n this.resizeObserver = new resizeObserver(() => {\n if (!resizeObserverStarted) return;\n this.recalculate();\n });\n\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n\n elWindow.requestAnimationFrame(() => {\n resizeObserverStarted = true;\n });\n\n // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n this.mutationObserver = new elWindow.MutationObserver(this.recalculate);\n\n this.mutationObserver.observe(this.contentEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n }\n\n recalculate() {\n const elWindow = getElementWindow(this.el);\n this.elStyles = elWindow.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n\n const isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n const isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1;\n const contentElOffsetWidth = this.contentEl.offsetWidth;\n\n const contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n\n const elOverflowX = this.elStyles.overflowX;\n const elOverflowY = this.elStyles.overflowY;\n\n this.contentEl.style.padding = `${this.elStyles.paddingTop} ${this.elStyles.paddingRight} ${this.elStyles.paddingBottom} ${this.elStyles.paddingLeft}`;\n this.wrapperEl.style.margin = `-${this.elStyles.paddingTop} -${this.elStyles.paddingRight} -${this.elStyles.paddingBottom} -${this.elStyles.paddingLeft}`;\n\n const contentElScrollHeight = this.contentEl.scrollHeight;\n const contentElScrollWidth = this.contentEl.scrollWidth;\n\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n\n // Determine placeholder size\n this.placeholderEl.style.width = isWidthAuto\n ? `${contentElOffsetWidth}px`\n : 'auto';\n this.placeholderEl.style.height = `${contentElScrollHeight}px`;\n\n const contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n\n this.axis.x.isOverflowing = contentElScrollWidth > contentElOffsetWidth;\n this.axis.y.isOverflowing =\n contentElScrollHeight > contentWrapperElOffsetHeight;\n\n // Set isOverflowing to false if user explicitely set hidden overflow\n this.axis.x.isOverflowing =\n elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing =\n elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n\n this.axis.x.forceVisible =\n this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible =\n this.options.forceVisible === 'y' || this.options.forceVisible === true;\n\n this.hideNativeScrollbar();\n\n // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n let offsetForXScrollbar = this.axis.x.isOverflowing\n ? this.scrollbarWidth\n : 0;\n let offsetForYScrollbar = this.axis.y.isOverflowing\n ? this.scrollbarWidth\n : 0;\n\n this.axis.x.isOverflowing =\n this.axis.x.isOverflowing &&\n contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n this.axis.y.isOverflowing =\n this.axis.y.isOverflowing &&\n contentElScrollHeight >\n contentWrapperElOffsetHeight - offsetForXScrollbar;\n\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n\n this.axis.x.scrollbar.el.style.width = `${this.axis.x.scrollbar.size}px`;\n this.axis.y.scrollbar.el.style.height = `${this.axis.y.scrollbar.size}px`;\n\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n }\n\n /**\n * Calculate scrollbar size\n */\n getScrollbarSize(axis = 'y') {\n if (!this.axis[axis].isOverflowing) {\n return 0;\n }\n\n const contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n const trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];\n let scrollbarSize;\n\n let scrollbarRatio = trackSize / contentSize;\n\n // Calculate new height/position of drag handle.\n scrollbarSize = Math.max(\n ~~(scrollbarRatio * trackSize),\n this.options.scrollbarMinSize\n );\n\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n\n return scrollbarSize;\n }\n\n positionScrollbar(axis = 'y') {\n if (!this.axis[axis].isOverflowing) {\n return;\n }\n\n const contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n const trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];\n const hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n const scrollbar = this.axis[axis].scrollbar;\n\n let scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset =\n axis === 'x' &&\n this.isRtl &&\n SimpleBar.getRtlHelpers().isRtlScrollingInverted\n ? -scrollOffset\n : scrollOffset;\n let scrollPourcent = scrollOffset / (contentSize - hostSize);\n\n let handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset =\n axis === 'x' &&\n this.isRtl &&\n SimpleBar.getRtlHelpers().isRtlScrollbarInverted\n ? handleOffset + (trackSize - scrollbar.size)\n : handleOffset;\n\n scrollbar.el.style.transform =\n axis === 'x'\n ? `translate3d(${handleOffset}px, 0, 0)`\n : `translate3d(0, ${handleOffset}px, 0)`;\n }\n\n toggleTrackVisibility(axis = 'y') {\n const track = this.axis[axis].track.el;\n const scrollbar = this.axis[axis].scrollbar.el;\n\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n } else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n }\n\n // Even if forceVisible is enabled, scrollbar itself should be hidden\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n } else {\n scrollbar.style.display = 'none';\n }\n }\n\n hideNativeScrollbar() {\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? `-${this.scrollbarWidth}px`\n : 0;\n this.offsetEl.style.bottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? `-${this.scrollbarWidth}px`\n : 0;\n }\n\n /**\n * On scroll event handling\n */\n onScroll = () => {\n const elWindow = getElementWindow(this.el);\n if (!this.scrollXTicking) {\n elWindow.requestAnimationFrame(this.scrollX);\n this.scrollXTicking = true;\n }\n\n if (!this.scrollYTicking) {\n elWindow.requestAnimationFrame(this.scrollY);\n this.scrollYTicking = true;\n }\n };\n\n scrollX = () => {\n if (this.axis.x.isOverflowing) {\n this.showScrollbar('x');\n this.positionScrollbar('x');\n }\n\n this.scrollXTicking = false;\n };\n\n scrollY = () => {\n if (this.axis.y.isOverflowing) {\n this.showScrollbar('y');\n this.positionScrollbar('y');\n }\n\n this.scrollYTicking = false;\n };\n\n onMouseEnter = () => {\n this.showScrollbar('x');\n this.showScrollbar('y');\n };\n\n onMouseMove = e => {\n this.mouseX = e.clientX;\n this.mouseY = e.clientY;\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n this.onMouseMoveForAxis('x');\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n this.onMouseMoveForAxis('y');\n }\n };\n\n onMouseMoveForAxis(axis = 'y') {\n this.axis[axis].track.rect = this.axis[\n axis\n ].track.el.getBoundingClientRect();\n this.axis[axis].scrollbar.rect = this.axis[\n axis\n ].scrollbar.el.getBoundingClientRect();\n\n const isWithinScrollbarBoundsX = this.isWithinBounds(\n this.axis[axis].scrollbar.rect\n );\n\n if (isWithinScrollbarBoundsX) {\n this.axis[axis].scrollbar.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n if (this.isWithinBounds(this.axis[axis].track.rect)) {\n this.showScrollbar(axis);\n this.axis[axis].track.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n }\n }\n\n onMouseLeave = () => {\n this.onMouseMove.cancel();\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n this.onMouseLeaveForAxis('x');\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n this.onMouseLeaveForAxis('y');\n }\n\n this.mouseX = -1;\n this.mouseY = -1;\n };\n\n onMouseLeaveForAxis(axis = 'y') {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n onWindowResize = () => {\n // Recalculate scrollbarWidth in case it's a zoom\n this.scrollbarWidth = this.getScrollbarWidth();\n\n this.hideNativeScrollbar();\n };\n\n /**\n * Show scrollbar\n */\n showScrollbar(axis = 'y') {\n let scrollbar = this.axis[axis].scrollbar.el;\n\n if (!this.axis[axis].isVisible) {\n scrollbar.classList.add(this.classNames.visible);\n this.axis[axis].isVisible = true;\n }\n\n if (this.options.autoHide) {\n this.hideScrollbars();\n }\n }\n\n /**\n * Hide Scrollbar\n */\n hideScrollbars = () => {\n this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();\n this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect();\n\n if (!this.isWithinBounds(this.axis.y.track.rect)) {\n this.axis.y.scrollbar.el.classList.remove(this.classNames.visible);\n this.axis.y.isVisible = false;\n }\n\n if (!this.isWithinBounds(this.axis.x.track.rect)) {\n this.axis.x.scrollbar.el.classList.remove(this.classNames.visible);\n this.axis.x.isVisible = false;\n }\n };\n\n onPointerEvent = e => {\n let isWithinTrackXBounds, isWithinTrackYBounds;\n\n this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();\n this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect();\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n isWithinTrackXBounds = this.isWithinBounds(this.axis.x.track.rect);\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n isWithinTrackYBounds = this.isWithinBounds(this.axis.y.track.rect);\n }\n\n // If any pointer event is called on the scrollbar\n if (isWithinTrackXBounds || isWithinTrackYBounds) {\n // Preventing the event's default action stops text being\n // selectable during the drag.\n e.preventDefault();\n // Prevent event leaking\n e.stopPropagation();\n\n if (e.type === 'mousedown') {\n if (isWithinTrackXBounds) {\n this.axis.x.scrollbar.rect = this.axis.x.scrollbar.el.getBoundingClientRect();\n\n if (this.isWithinBounds(this.axis.x.scrollbar.rect)) {\n this.onDragStart(e, 'x');\n } else {\n this.onTrackClick(e, 'x');\n }\n }\n\n if (isWithinTrackYBounds) {\n this.axis.y.scrollbar.rect = this.axis.y.scrollbar.el.getBoundingClientRect();\n\n if (this.isWithinBounds(this.axis.y.scrollbar.rect)) {\n this.onDragStart(e, 'y');\n } else {\n this.onTrackClick(e, 'y');\n }\n }\n }\n }\n };\n\n /**\n * on scrollbar handle drag movement starts\n */\n onDragStart(e, axis = 'y') {\n const elDocument = getElementDocument(this.el);\n const elWindow = getElementWindow(this.el);\n const scrollbar = this.axis[axis].scrollbar;\n\n // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n const eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset =\n eventOffset - scrollbar.rect[this.axis[axis].offsetAttr];\n this.draggedAxis = axis;\n\n this.el.classList.add(this.classNames.dragging);\n\n elDocument.addEventListener('mousemove', this.drag, true);\n elDocument.addEventListener('mouseup', this.onEndDrag, true);\n if (this.removePreventClickId === null) {\n elDocument.addEventListener('click', this.preventClick, true);\n elDocument.addEventListener('dblclick', this.preventClick, true);\n } else {\n elWindow.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n }\n\n /**\n * Drag scrollbar handle\n */\n drag = e => {\n let eventOffset;\n const track = this.axis[this.draggedAxis].track;\n const trackSize = track.rect[this.axis[this.draggedAxis].sizeAttr];\n const scrollbar = this.axis[this.draggedAxis].scrollbar;\n const contentSize = this.contentWrapperEl[\n this.axis[this.draggedAxis].scrollSizeAttr\n ];\n const hostSize = parseInt(\n this.elStyles[this.axis[this.draggedAxis].sizeAttr],\n 10\n );\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n } else {\n eventOffset = e.pageX;\n }\n\n // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n let dragPos =\n eventOffset -\n track.rect[this.axis[this.draggedAxis].offsetAttr] -\n this.axis[this.draggedAxis].dragOffset;\n // Convert the mouse position into a percentage of the scrollbar height/width.\n let dragPerc = dragPos / (trackSize - scrollbar.size);\n\n // Scroll the content by the same percentage.\n let scrollPos = dragPerc * (contentSize - hostSize);\n\n // Fix browsers inconsistency on RTL\n if (this.draggedAxis === 'x') {\n scrollPos =\n this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted\n ? scrollPos - (trackSize + scrollbar.size)\n : scrollPos;\n scrollPos =\n this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted\n ? -scrollPos\n : scrollPos;\n }\n\n this.contentWrapperEl[\n this.axis[this.draggedAxis].scrollOffsetAttr\n ] = scrollPos;\n };\n\n /**\n * End scroll handle drag\n */\n onEndDrag = e => {\n const elDocument = getElementDocument(this.el);\n const elWindow = getElementWindow(this.el);\n e.preventDefault();\n e.stopPropagation();\n\n this.el.classList.remove(this.classNames.dragging);\n\n elDocument.removeEventListener('mousemove', this.drag, true);\n elDocument.removeEventListener('mouseup', this.onEndDrag, true);\n this.removePreventClickId = elWindow.setTimeout(() => {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n elDocument.removeEventListener('click', this.preventClick, true);\n elDocument.removeEventListener('dblclick', this.preventClick, true);\n this.removePreventClickId = null;\n });\n };\n\n /**\n * Handler to ignore click events during drag\n */\n preventClick = e => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n onTrackClick(e, axis = 'y') {\n if (!this.options.clickOnTrack) return;\n\n const elWindow = getElementWindow(this.el);\n this.axis[axis].scrollbar.rect = this.axis[\n axis\n ].scrollbar.el.getBoundingClientRect();\n const scrollbar = this.axis[axis].scrollbar;\n const scrollbarOffset = scrollbar.rect[this.axis[axis].offsetAttr];\n const hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n let scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n const t =\n axis === 'y'\n ? this.mouseY - scrollbarOffset\n : this.mouseX - scrollbarOffset;\n const dir = t < 0 ? -1 : 1;\n const scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n\n const scrollTo = () => {\n if (dir === -1) {\n if (scrolled > scrollSize) {\n scrolled -= this.options.clickOnTrackSpeed;\n this.contentWrapperEl.scrollTo({\n [this.axis[axis].offsetAttr]: scrolled\n });\n elWindow.requestAnimationFrame(scrollTo);\n }\n } else {\n if (scrolled < scrollSize) {\n scrolled += this.options.clickOnTrackSpeed;\n this.contentWrapperEl.scrollTo({\n [this.axis[axis].offsetAttr]: scrolled\n });\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n };\n\n scrollTo();\n }\n\n /**\n * Getter for content element\n */\n getContentElement() {\n return this.contentEl;\n }\n\n /**\n * Getter for original scrolling element\n */\n getScrollElement() {\n return this.contentWrapperEl;\n }\n\n getScrollbarWidth() {\n // Try/catch for FF 56 throwing on undefined computedStyles\n try {\n // Detect browsers supporting CSS scrollbar styling and do not calculate\n if (\n getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar')\n .display === 'none' ||\n 'scrollbarWidth' in document.documentElement.style ||\n '-ms-overflow-style' in document.documentElement.style\n ) {\n return 0;\n } else {\n return scrollbarWidth(this.el);\n }\n } catch (e) {\n return scrollbarWidth(this.el);\n }\n }\n\n removeListeners() {\n const elWindow = getElementWindow(this.el);\n // Event listeners\n if (this.options.autoHide) {\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(e => {\n this.el.removeEventListener(e, this.onPointerEvent, true);\n });\n\n ['touchstart', 'touchend', 'touchmove'].forEach(e => {\n this.el.removeEventListener(e, this.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n\n if (this.contentWrapperEl) {\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n }\n\n elWindow.removeEventListener('resize', this.onWindowResize);\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n // Cancel all debounced functions\n this.recalculate.cancel();\n this.onMouseMove.cancel();\n this.hideScrollbars.cancel();\n this.onWindowResize.cancel();\n }\n\n /**\n * UnMount mutation observer and delete SimpleBar instance from DOM element\n */\n unMount() {\n this.removeListeners();\n SimpleBar.instances.delete(this.el);\n }\n\n /**\n * Check if mouse is within bounds\n */\n isWithinBounds(bbox) {\n return (\n this.mouseX >= bbox.left &&\n this.mouseX <= bbox.left + bbox.width &&\n this.mouseY >= bbox.top &&\n this.mouseY <= bbox.top + bbox.height\n );\n }\n\n /**\n * Find element children matches query\n */\n findChild(el, query) {\n const matches =\n el.matches ||\n el.webkitMatchesSelector ||\n el.mozMatchesSelector ||\n el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, child =>\n matches.call(child, query)\n )[0];\n }\n}\n","/**\n * simplebar-react - v2.3.6\n * React component for SimpleBar\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat\n * Under MIT License\n */\n\nimport React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport SimpleBarJS from 'simplebar/dist/simplebar-core.esm';\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 _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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n/* Deprecated\n * Hardcore this here until we can safely deprecated it.\n * Helper function to retrieve options from element attributes\n */\n\nvar getOptions = function getOptions(obj) {\n var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (x, chr) {\n return chr.toUpperCase();\n });\n\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n\n case 'false':\n acc[key] = false;\n break;\n\n case undefined:\n acc[key] = true;\n break;\n\n default:\n acc[key] = attribute.value;\n }\n }\n\n return acc;\n }, {});\n return options;\n};\n\nvar SimpleBar = React.forwardRef(function (_ref, ref) {\n var children = _ref.children,\n _ref$scrollableNodePr = _ref.scrollableNodeProps,\n scrollableNodeProps = _ref$scrollableNodePr === void 0 ? {} : _ref$scrollableNodePr,\n otherProps = _objectWithoutProperties(_ref, [\"children\", \"scrollableNodeProps\"]);\n\n var instance;\n var scrollableNodeRef = useRef();\n var elRef = useRef();\n var contentNodeRef = useRef();\n var options = {};\n var rest = {};\n var deprecatedOptions = [];\n Object.keys(otherProps).forEach(function (key) {\n if (Object.prototype.hasOwnProperty.call(SimpleBarJS.defaultOptions, key)) {\n options[key] = otherProps[key];\n } else if (key.match(/data-simplebar-(.+)/) && key !== 'data-simplebar-direction') {\n deprecatedOptions.push({\n name: key,\n value: otherProps[key]\n });\n } else {\n rest[key] = otherProps[key];\n }\n });\n\n if (deprecatedOptions.length) {\n console.warn(\"simplebar-react: this way of passing options is deprecated. Pass it like normal props instead:\\n 'data-simplebar-auto-hide=\\\"false\\\"' \\u2014> 'autoHide=\\\"false\\\"'\\n \");\n }\n\n useEffect(function () {\n scrollableNodeRef = scrollableNodeProps.ref || scrollableNodeRef;\n\n if (elRef.current) {\n instance = new SimpleBarJS(elRef.current, _objectSpread2({}, getOptions(deprecatedOptions), {}, options, {}, scrollableNodeRef && {\n scrollableNode: scrollableNodeRef.current\n }, {}, contentNodeRef.current && {\n contentNode: contentNodeRef.current\n }));\n\n if (ref) {\n ref.current = instance;\n }\n }\n\n return function () {\n instance.unMount();\n instance = null;\n };\n }, []);\n return React.createElement(\"div\", _extends({\n ref: elRef,\n \"data-simplebar\": true\n }, rest), React.createElement(\"div\", {\n className: \"simplebar-wrapper\"\n }, React.createElement(\"div\", {\n className: \"simplebar-height-auto-observer-wrapper\"\n }, React.createElement(\"div\", {\n className: \"simplebar-height-auto-observer\"\n })), React.createElement(\"div\", {\n className: \"simplebar-mask\"\n }, React.createElement(\"div\", {\n className: \"simplebar-offset\"\n }, typeof children === 'function' ? children({\n scrollableNodeRef: scrollableNodeRef,\n contentNodeRef: contentNodeRef\n }) : React.createElement(\"div\", _extends({}, scrollableNodeProps, {\n className: \"simplebar-content-wrapper\".concat(scrollableNodeProps.className ? \" \".concat(scrollableNodeProps.className) : '')\n }), React.createElement(\"div\", {\n className: \"simplebar-content\"\n }, children)))), React.createElement(\"div\", {\n className: \"simplebar-placeholder\"\n })), React.createElement(\"div\", {\n className: \"simplebar-track simplebar-horizontal\"\n }, React.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })), React.createElement(\"div\", {\n className: \"simplebar-track simplebar-vertical\"\n }, React.createElement(\"div\", {\n className: \"simplebar-scrollbar\"\n })));\n});\nSimpleBar.displayName = 'SimpleBar';\nSimpleBar.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n scrollableNodeProps: PropTypes.object\n};\n\nexport default SimpleBar;\n"],"names":["canUseDOM","window","document","createElement","module","exports","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","value","type","toNumber","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","cancel","clearTimeout","flush","HASH_UNDEFINED","funcTag","genTag","reIsHostCtor","arrayProto","Array","funcProto","objectProto","coreJsData","maskSrcKey","uid","exec","keys","IE_PROTO","funcToString","hasOwnProperty","reIsNative","RegExp","splice","Map","getNative","nativeCreate","Hash","entries","index","length","clear","entry","set","ListCache","MapCache","assocIndexOf","array","key","baseIsNative","pattern","tag","isFunction","e","isHostObject","toSource","getMapData","map","data","__data__","isKeyable","object","getValue","memoize","resolver","memoized","cache","has","get","Cache","pop","push","FUNC_ERROR_TEXT","debounce","ResizeObserverBoxOptions","resizeObservers","msg","trigger","freeze","obj","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","height","top","left","bottom","right","toJSON","_a","fromRect","rectangle","isSVG","target","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","WeakMap","scrollRegexp","verticalRegexp","IE","navigator","userAgent","parseDimension","pixel","parseFloat","size","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","ro","activeTargets","ot","targetDepth","lastReportedSize","callback","observer","_i","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","isActive","process","some","event","ErrorEvent","message","createEvent","initEvent","dispatchEvent","deliverResizeLoopError","queueMicroTask","toggle_1","el_1","createTextNode","MutationObserver","cb","observe","characterData","textContent","watching","observerConfig","attributes","childList","subtree","events","timeout","scheduled","scheduler","Scheduler","_this","stopped","listener","schedule","run","until","elementsHaveResized","start","requestAnimationFrame","stop","body","addEventListener","name","disconnect","removeEventListener","updateCount","n","ResizeObservation","CONTENT_BOX","tagName","isReplacedElement","display","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","firstObservation","box","unobserve","lastObservation","indexOf","ResizeObserver","getElementWindow","element","getElementDocument","cachedScrollbarWidth","cachedDevicePixelRatio","scrollbarWidth","el","classList","add","appendChild","getBoundingClientRect","removeChild","SimpleBar","onScroll","elWindow","scrollXTicking","scrollX","scrollYTicking","scrollY","axis","isOverflowing","showScrollbar","positionScrollbar","onMouseEnter","onMouseMove","mouseX","clientX","mouseY","clientY","forceVisible","onMouseMoveForAxis","onMouseLeave","onMouseLeaveForAxis","onWindowResize","getScrollbarWidth","hideNativeScrollbar","hideScrollbars","track","rect","isWithinBounds","scrollbar","remove","classNames","visible","isVisible","onPointerEvent","isWithinTrackXBounds","isWithinTrackYBounds","preventDefault","stopPropagation","onDragStart","onTrackClick","drag","draggedAxis","trackSize","sizeAttr","contentSize","contentWrapperEl","scrollSizeAttr","hostSize","elStyles","scrollPos","pageY","pageX","offsetAttr","dragOffset","isRtl","getRtlHelpers","isRtlScrollbarInverted","isRtlScrollingInverted","scrollOffsetAttr","onEndDrag","elDocument","dragging","removePreventClickId","preventClick","minScrollbarWidth","defaultOptions","offsetSizeAttr","overflowAttr","instances","recalculate","throttle","bind","init","dummyDiv","innerHTML","scrollbarDummyEl","firstElementChild","dummyContainerChild","scrollLeft","dummyContainerOffset","getOffset","dummyContainerChildOffset","dummyContainerScrollOffsetAfterScroll","pageYOffset","documentElement","scrollTop","pageXOffset","initDOM","setAccessibilityAttributes","initListeners","filter","children","child","contains","_this2","wrapper","wrapperEl","querySelector","scrollableNode","contentWrapper","contentEl","contentNode","offsetEl","offset","maskEl","mask","placeholderEl","findChild","placeholder","heightAutoObserverWrapperEl","heightAutoObserverEl","horizontal","vertical","firstChild","cloneNode","autoHide","setAttribute","ariaLabel","_this3","capture","passive","resizeObserverStarted","mutationObserver","direction","isHeightAuto","isWidthAuto","contentElOffsetWidth","contentWrapperElOffsetWidth","elOverflowX","elOverflowY","style","padding","margin","contentElScrollHeight","scrollHeight","contentElScrollWidth","scrollWidth","contentWrapperElOffsetHeight","offsetForXScrollbar","offsetForYScrollbar","getScrollbarSize","toggleTrackVisibility","scrollbarSize","scrollbarRatio","scrollbarMinSize","scrollbarMaxSize","scrollOffset","scrollPourcent","handleOffset","transform","visibility","hover","eventOffset","clickOnTrack","scrollbarOffset","scrolled","dir","scrollSize","scrollTo","_this4","clickOnTrackSpeed","getContentElement","getScrollElement","removeListeners","_this5","unMount","delete","bbox","query","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","source","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","React","_ref","ref","instance","_ref$scrollableNodePr","scrollableNodeProps","otherProps","scrollableNodeRef","useRef","elRef","contentNodeRef","rest","deprecatedOptions","SimpleBarJS","match","console","warn","useEffect","current","getOwnPropertyDescriptors","defineProperties","_objectSpread2","reduce","acc","attribute","option","chr","toUpperCase","className","concat","displayName","propTypes","PropTypes"],"sourceRoot":""}