{
  "version": 3,
  "sources": ["../../../../node_modules/compute-scroll-into-view/src/index.ts", "../../../../node_modules/scroll-into-view-if-needed/es/index.js", "../../../../node_modules/smooth-scroll-into-view-if-needed/es/index.js"],
  "sourcesContent": ["// 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\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 {\n    scrollMode,\n    block,\n    inline,\n    boundary,\n    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 = cursor.parentElement\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 {\n      height,\n      width,\n      top,\n      right,\n      bottom,\n      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    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,\n          frame.scrollHeight - height + scrollbarHeight\n        )\n      )\n      inlineScroll = Math.max(\n        0,\n        Math.min(\n          scrollLeft + inlineScroll,\n          frame.scrollWidth - width + 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", "import compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n  return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n  if (behavior === void 0) {\n    behavior = 'auto';\n  }\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\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}\n\nfunction getOptions(options) {\n  if (options === false) {\n    return {\n      block: 'end',\n      inline: 'nearest'\n    };\n  }\n\n  if (isOptionsObject(options)) {\n    return options;\n  }\n\n  return {\n    block: 'start',\n    inline: 'nearest'\n  };\n}\n\nfunction scrollIntoView(target, options) {\n  var isTargetAttached = target.isConnected || target.ownerDocument.documentElement.contains(target);\n\n  if (isOptionsObject(options) && typeof options.behavior === 'function') {\n    return options.behavior(isTargetAttached ? compute(target, options) : []);\n  }\n\n  if (!isTargetAttached) {\n    return;\n  }\n\n  var computeOptions = getOptions(options);\n  return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;", "import scrollIntoView from 'scroll-into-view-if-needed';\nvar memoizedNow;\n\nvar now = function now() {\n  if (!memoizedNow) {\n    memoizedNow = 'performance' in window ? performance.now.bind(performance) : Date.now;\n  }\n\n  return memoizedNow();\n};\n\nfunction step(context) {\n  var time = now();\n  var elapsed = Math.min((time - context.startTime) / context.duration, 1);\n  var value = context.ease(elapsed);\n  var currentX = context.startX + (context.x - context.startX) * value;\n  var currentY = context.startY + (context.y - context.startY) * value;\n  context.method(currentX, currentY);\n\n  if (currentX !== context.x || currentY !== context.y) {\n    requestAnimationFrame(function () {\n      return step(context);\n    });\n  } else {\n    context.cb();\n  }\n}\n\nfunction smoothScroll(el, x, y, duration, ease, cb) {\n  if (duration === void 0) {\n    duration = 600;\n  }\n\n  if (ease === void 0) {\n    ease = function ease(t) {\n      return 1 + --t * t * t * t * t;\n    };\n  }\n\n  var scrollable;\n  var startX;\n  var startY;\n  var method;\n  scrollable = el;\n  startX = el.scrollLeft;\n  startY = el.scrollTop;\n\n  method = function method(x, y) {\n    el.scrollLeft = Math.ceil(x);\n    el.scrollTop = Math.ceil(y);\n  };\n\n  step({\n    scrollable: scrollable,\n    method: method,\n    startTime: now(),\n    startX: startX,\n    startY: startY,\n    x: x,\n    y: y,\n    duration: duration,\n    ease: ease,\n    cb: cb\n  });\n}\n\nvar shouldSmoothScroll = function shouldSmoothScroll(options) {\n  return options && !options.behavior || options.behavior === 'smooth';\n};\n\nfunction scroll(target, options) {\n  var overrides = options || {};\n\n  if (shouldSmoothScroll(overrides)) {\n    return scrollIntoView(target, {\n      block: overrides.block,\n      inline: overrides.inline,\n      scrollMode: overrides.scrollMode,\n      boundary: overrides.boundary,\n      behavior: function behavior(actions) {\n        return Promise.all(actions.reduce(function (results, _ref) {\n          var el = _ref.el,\n              left = _ref.left,\n              top = _ref.top;\n          var startLeft = el.scrollLeft;\n          var startTop = el.scrollTop;\n\n          if (startLeft === left && startTop === top) {\n            return results;\n          }\n\n          return [].concat(results, [new Promise(function (resolve) {\n            return smoothScroll(el, left, top, overrides.duration, overrides.ease, function () {\n              return resolve({\n                el: el,\n                left: [startLeft, left],\n                top: [startTop, top]\n              });\n            });\n          })]);\n        }, []));\n      }\n    });\n  }\n\n  return Promise.resolve(scrollIntoView(target, options));\n}\n\nvar smoothScrollIntoView = scroll;\nexport default smoothScrollIntoView;"],
  "mappings": "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",
  "names": ["isElement", "el", "nodeType", "canOverflow", "overflow", "skipOverflowHiddenElements", "isScrollable", "clientHeight", "scrollHeight", "clientWidth", "scrollWidth", "style", "getComputedStyle", "overflowY", "overflowX", "frame", "ownerDocument", "defaultView", "frameElement", "e", "alignNearest", "scrollingEdgeStart", "scrollingEdgeEnd", "scrollingSize", "scrollingBorderStart", "scrollingBorderEnd", "elementEdgeStart", "elementEdgeEnd", "elementSize", "target", "options", "windowWithViewport", "window", "scrollMode", "block", "inline", "boundary", "checkBoundary", "node", "TypeError", "scrollingElement", "document", "documentElement", "frames", "cursor", "parentElement", "push", "body", "viewportWidth", "visualViewport", "width", "innerWidth", "viewportHeight", "height", "innerHeight", "viewportX", "scrollX", "pageXOffset", "viewportY", "scrollY", "pageYOffset", "getBoundingClientRect", "targetHeight", "targetWidth", "targetTop", "top", "targetRight", "right", "targetBottom", "bottom", "targetLeft", "left", "targetBlock", "targetInline", "computations", "index", "length", "frameStyle", "borderLeft", "parseInt", "borderLeftWidth", "borderTop", "borderTopWidth", "borderRight", "borderRightWidth", "borderBottom", "borderBottomWidth", "blockScroll", "inlineScroll", "scrollbarWidth", "offsetWidth", "scrollbarHeight", "offsetHeight", "Math", "max", "scrollLeft", "scrollTop", "min", "isOptionsObject", "options", "__name", "defaultBehavior", "actions", "behavior", "canSmoothScroll", "_ref", "el", "top", "left", "getOptions", "scrollIntoView", "target", "isTargetAttached", "index_module_default", "computeOptions", "es_default", "memoizedNow", "now", "__name", "step", "context", "time", "elapsed", "value", "currentX", "currentY", "smoothScroll", "el", "x", "y", "duration", "ease", "cb", "t", "scrollable", "startX", "startY", "method", "shouldSmoothScroll", "options", "scroll", "target", "overrides", "es_default", "actions", "results", "_ref", "left", "top", "startLeft", "startTop", "resolve", "smoothScrollIntoView"]
}