{"version":3,"file":"static/js/69478.c1205924.chunk.js","mappings":"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","sources":["../node_modules/@ant-design/icons-svg/lib/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/QuestionCircleOutlined.js","../node_modules/compute-scroll-into-view/src/index.ts","../node_modules/scroll-into-view-if-needed/index.js"],"sourcesContent":["\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexports.default = QuestionCircleOutlined;\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _QuestionCircleOutlined = _interopRequireDefault(require('./lib/icons/QuestionCircleOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _QuestionCircleOutlined;\n exports.default = _default;\n module.exports = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _QuestionCircleOutlined = _interopRequireDefault(require(\"@ant-design/icons-svg/lib/asn/QuestionCircleOutlined\"));\nvar _AntdIcon = _interopRequireDefault(require(\"../components/AntdIcon\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _QuestionCircleOutlined.default\n }));\n};\nvar RefIcon = /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'QuestionCircleOutlined';\n}\nvar _default = exports.default = RefIcon;","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n height: number\n width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n block?: ScrollLogicalPosition\n inline?: ScrollLogicalPosition\n scrollMode?: ScrollMode\n boundary?: CustomScrollBoundary\n skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any): el is Element {\n return typeof el === 'object' && el != null && el.nodeType === 1\n}\n\nfunction canOverflow(\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nfunction getParentElement(element: Node): Element | null {\n const parent = element.parentElement\n if (parent == null) {\n return (element.getRootNode() as ShadowRoot).host || null\n }\n return parent\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n //TODO: remove this hack when microbundle will support typescript >= 4.0\n const windowWithViewport = window as unknown as Window & {\n visualViewport: visualViewport\n }\n\n const { scrollMode, block, inline, boundary, skipOverflowHiddenElements } =\n options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = getParentElement(cursor)\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.width\n : innerWidth\n const viewportHeight = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.height\n : innerHeight\n\n // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n const viewportX = window.scrollX || pageXOffset\n const viewportY = window.scrollY || pageYOffset\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: CustomScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const { height, width, top, right, bottom, left } =\n frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n const scaleX =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth === 0\n ? 0\n : width / (frame as HTMLElement).offsetWidth\n : 0\n const scaleY =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight === 0\n ? 0\n : height / (frame as HTMLElement).offsetHeight\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n viewportY,\n viewportY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n viewportY + targetBlock,\n viewportY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n viewportX,\n viewportX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n viewportX + targetInline,\n viewportX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + viewportY)\n inlineScroll = Math.max(0, inlineScroll + viewportX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll / scaleY,\n frame.scrollHeight - height / scaleY + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll / scaleX,\n frame.scrollWidth - width / scaleX + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _computeScrollIntoView = _interopRequireDefault(require(\"compute-scroll-into-view\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n if (isOptionsObject(options)) {\n return options;\n }\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\nfunction scrollIntoView(target, options) {\n var isTargetAttached = target.isConnected || target.ownerDocument.documentElement.contains(target);\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(isTargetAttached ? (0, _computeScrollIntoView[\"default\"])(target, options) : []);\n }\n if (!isTargetAttached) {\n return;\n }\n var computeOptions = getOptions(options);\n return defaultBehavior((0, _computeScrollIntoView[\"default\"])(target, computeOptions), computeOptions.behavior);\n}\nvar _default = scrollIntoView;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;"],"names":["Object","defineProperty","exports","value","obj","_default","require","__esModule","module","_interopRequireDefault","_typeof","_objectSpread2","React","e","r","default","t","_getRequireWildcardCache","has","get","n","__proto__","a","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_interopRequireWildcard","_QuestionCircleOutlined","_AntdIcon","WeakMap","QuestionCircleOutlined","props","ref","createElement","icon","RefIcon","forwardRef","nodeType","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","o","l","d","window","scrollMode","block","f","inline","h","boundary","skipOverflowHiddenElements","s","TypeError","c","g","document","scrollingElement","documentElement","m","p","parentElement","getRootNode","host","push","body","w","visualViewport","width","innerWidth","v","height","innerHeight","W","scrollX","pageXOffset","H","scrollY","pageYOffset","b","getBoundingClientRect","y","E","M","top","V","right","x","bottom","I","left","C","R","T","k","length","B","D","O","X","Y","L","S","j","N","q","parseInt","borderLeftWidth","z","borderTopWidth","A","borderRightWidth","F","borderBottomWidth","G","J","K","offsetWidth","P","offsetHeight","Q","U","Math","max","Z","scrollLeft","$","scrollTop","min","el","_computeScrollIntoView","isOptionsObject","options","keys","target","isTargetAttached","isConnected","contains","behavior","computeOptions","getOptions","actions","canSmoothScroll","style","forEach","_ref","scroll","defaultBehavior"],"sourceRoot":""}