You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

react-scroll-to-bottom

Package Overview
Dependencies
Maintainers
1
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-scroll-to-bottom - npm Package Compare versions

Comparing version

to
2.0.1-master.e7d148e

lib/addVersionToMetaTag.js
# Changelog
All notable changes to this project will be documented in this file.

@@ -9,5 +10,42 @@

### Breaking changes
- `scrollToBottom`/`scrollToEnd`/`scrollToStart`/`scrollToTop` now accept an option `{ behavior: 'auto' | 'smooth' }`
- Without the option, it is by default to artificial smooth scrolling (`smooth`), to keep existing behavior
- This behavior may change in the future, by defaulting to discrete scrolling (`auto`), to better align with HTML `DOMElement.scrollIntoView` standard
- During the transition, please always pass `{ behavior: 'smooth' }` to keep existing behavior
### Changed
- Bump dependencies, in PR [#50](https://github.com/compulim/react-scroll-to-bottom/pull/50)
- [`@babel/cli@7.10.3`](https://www.npmjs.com/package/@babel/cli)
- [`@babel/core@7.10.3`](https://www.npmjs.com/package/@babel/core)
- [`@babel/plugin-proposal-object-rest-spread@7.10.3`](https://www.npmjs.com/package/@babel/plugin-proposal-object-rest-spread)
- [`@babel/preset-env@7.10.3`](https://www.npmjs.com/package/@babel/preset-env)
- [`@babel/preset-react@7.10.1`](https://www.npmjs.com/package/@babel/preset-react)
- [`eslint@7.3.0`](https://www.npmjs.com/package/eslint)
- [`eslint-plugin-prettier@3.1.4`](https://www.npmjs.com/package/eslint-plugin-prettier)
- [`eslint-plugin-react@7.20.0`](https://www.npmjs.com/package/eslint-plugin-react)
- [`eslint-plugin-react-hooks@4.0.4`](https://www.npmjs.com/package/eslint-plugin-react-hooks)
### Added
- Added version number to `<meta name="react-scroll-to-bottom:version">` for diagnostic purpose, in PR [#51](https://github.com/compulim/react-scroll-to-bottom/pull/51)
- Added `useAnimatingToEnd` getter to indicate if it is animating towards to the end, in PR [#49](https://github.com/compulim/react-scroll-to-bottom/pull/49)
- The existing `useAnimating` getter only indicate if it is animating to any scroll positions
- Added `scrollTo` function to scroll to a specific `scrollTop` value, this is similar to `DOMElement.scrollIntoView()`, in PR [#49](https://github.com/compulim/react-scroll-to-bottom/pull/49)
- The signature is `scrollTo(scrollTop: number, options: { behavior: 'auto' | 'smooth' })`
- Pass `{ behavior: 'smooth' }` for synthetic smooth scrolling
- Added `useObserveScrollTop` hook to observe scroll event, in PR [#49](https://github.com/compulim/react-scroll-to-bottom/pull/49)
- This effect function will be called rapidly on scroll, please avoid expensive code such as calling setter of `useState` and any code that would cause re-render
### Fixed
- Cancel scroll animation on mouse wheel or touch gesture, in PR [#49](https://github.com/compulim/react-scroll-to-bottom/pull/49)
- Calling `scrollTo` should cancel any existing scroll animation, in PR [#49](https://github.com/compulim/react-scroll-to-bottom/pull/49)
## [2.0.0] - 2020-05-07
### Breaking changes
- We moved to React Hooks and it requires React 16.8.6 or up

@@ -18,2 +56,3 @@ - Hooks will allow us to write simpler and more maintainable code

### Changed
- Moved all code to React functional components, in PR [#31](https://github.com/compulim/react-scroll-to-bottom/pull/31)

@@ -55,2 +94,3 @@ - `*`: bump dependencies, in PR [#47](https://github.com/compulim/react-scroll-to-bottom/pull/47)

### Added
- Added React Hooks, in PR [#31](https://github.com/compulim/react-scroll-to-bottom/pull/31)

@@ -60,2 +100,3 @@ - Added [ESLint](https://www.npmjs.com/package/eslint) and [Prettier](https://www.npmjs.com/package/prettier), in PR [#31](https://github.com/compulim/react-scroll-to-bottom/pull/31)

### Fixed
- Fix `atStart` was not reporting correctly, in PR [#31](https://github.com/compulim/react-scroll-to-bottom/pull/31)

@@ -65,10 +106,15 @@ - Chrome: Fix scroll to bottom button should hide when using <kbd>TAB</kbd> to scroll the bottommost button into view, in PR [#46](https://github.com/compulim/react-scroll-to-bottom/pull/46)

## [1.3.2] - 2019-06-20
### Changed
- `*`: bumped to `babel-jest@24.8.0`, `lerna@3.15.0`, and `jest@24.8.0`, in PR [#22](https://github.com/compulim/react-scroll-to-bottom/pull/22)
### Fixed
- `Composer`: fix [#22](https://github.com/compulim/react-scroll-to-bottom/issue/22), synthetic `scroll` events crafted by Chrome should not cause stickiness to lose, in PR [#23](https://github.com/compulim/react-scroll-to-bottom/issue/23)
## [1.3.1] - 2019-02-13
### Changed
- `Composer`: fix [#13](https://github.com/compulim/react-scroll-to-bottom/issue/13), user scrolling in Firefox may have the scroll position locked occasionally, in PR [#12](https://github.com/compulim/react-scroll-to-bottom/pull/12)

@@ -79,3 +125,5 @@ - `SpineTo`: fix [#10](https://github.com/compulim/react-scroll-to-bottom/issue/10), set stopping threshold from `0.5` to `1.5`, in PR [#14](https://github.com/compulim/react-scroll-to-bottom/pull/14)

## [1.3.0] - 2019-01-21
### Changed
- Playground: bumped to `react@16.6.0`, `react-dom@16.6.0`, and `react-scripts@2.1.6`

@@ -86,6 +134,9 @@ - `*`: Update algorithm, instead of using `componentDidUpdate`, we now use `setInterval` to check if the panel is sticky or not, this help to track content update that happen outside of React lifecycle, for example, `HTMLImageElement.onload` event

### Removed
- Removed `threshold` props because the algorithm is now more robust
## [1.2.0] - 2018-10-28
### Added
- `AutoHideFollowButton`: will now hide when it start animating scroll position

@@ -101,2 +152,3 @@ - `BasicScrollToBottom`: will now pass `debounce` and `threshold` to `Composer`, fix [#2](https://github.com/compulim/react-scroll-to-bottom/issues/2)

### Changed
- Performance improvements

@@ -112,7 +164,11 @@ - `Context` is now separated into `FunctionContext`, `InternalContext` and `StateContext` for better performance and reduce exposure

## [1.1.0] - 2018-06-22
### Added
- Container class name
## [1.0.0] - 2018-06-17
### Added
- Initial release

6

lib/BasicScrollToBottom.js

@@ -10,6 +10,6 @@ "use strict";

var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireDefault(require("react"));

@@ -70,2 +70,2 @@

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXNpY1Njcm9sbFRvQm90dG9tLmpzIl0sIm5hbWVzIjpbIlJPT1RfQ1NTIiwicG9zaXRpb24iLCJCYXNpY1Njcm9sbFRvQm90dG9tIiwiY2hlY2tJbnRlcnZhbCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGVib3VuY2UiLCJmb2xsb3dCdXR0b25DbGFzc05hbWUiLCJtb2RlIiwic2Nyb2xsVmlld0NsYXNzTmFtZSIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsImFueSIsInN0cmluZyIsIm9uZU9mIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxJQUFNQSxRQUFRLEdBQUcsaUJBQUk7QUFDbkJDLEVBQUFBLFFBQVEsRUFBRTtBQURTLENBQUosQ0FBakI7O0FBSUEsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQjtBQUFBLE1BQzFCQyxhQUQwQixRQUMxQkEsYUFEMEI7QUFBQSxNQUUxQkMsUUFGMEIsUUFFMUJBLFFBRjBCO0FBQUEsTUFHMUJDLFNBSDBCLFFBRzFCQSxTQUgwQjtBQUFBLE1BSTFCQyxRQUowQixRQUkxQkEsUUFKMEI7QUFBQSxNQUsxQkMscUJBTDBCLFFBSzFCQSxxQkFMMEI7QUFBQSxNQU0xQkMsSUFOMEIsUUFNMUJBLElBTjBCO0FBQUEsTUFPMUJDLG1CQVAwQixRQU8xQkEsbUJBUDBCO0FBQUEsc0JBUzFCLDZCQUFDLGlCQUFEO0FBQVUsSUFBQSxhQUFhLEVBQUVOLGFBQXpCO0FBQXdDLElBQUEsUUFBUSxFQUFFRyxRQUFsRDtBQUE0RCxJQUFBLElBQUksRUFBRUU7QUFBbEUsa0JBQ0U7QUFBSyxJQUFBLFNBQVMsRUFBRSx5QkFBV1IsUUFBUSxHQUFHLEVBQXRCLEVBQTBCLENBQUNLLFNBQVMsSUFBSSxFQUFkLElBQW9CLEVBQTlDO0FBQWhCLGtCQUNFLDZCQUFDLGNBQUQ7QUFBTyxJQUFBLFNBQVMsRUFBRUk7QUFBbEIsS0FBd0NMLFFBQXhDLENBREYsZUFFRSw2QkFBQyw2QkFBRDtBQUFzQixJQUFBLFNBQVMsRUFBRUc7QUFBakMsSUFGRixDQURGLENBVDBCO0FBQUEsQ0FBNUI7O0FBaUJBTCxtQkFBbUIsQ0FBQ1EsWUFBcEIsR0FBbUM7QUFDakNQLEVBQUFBLGFBQWEsRUFBRVEsU0FEa0I7QUFFakNQLEVBQUFBLFFBQVEsRUFBRU8sU0FGdUI7QUFHakNOLEVBQUFBLFNBQVMsRUFBRU0sU0FIc0I7QUFJakNMLEVBQUFBLFFBQVEsRUFBRUssU0FKdUI7QUFLakNKLEVBQUFBLHFCQUFxQixFQUFFSSxTQUxVO0FBTWpDSCxFQUFBQSxJQUFJLEVBQUVHLFNBTjJCO0FBT2pDRixFQUFBQSxtQkFBbUIsRUFBRUU7QUFQWSxDQUFuQztBQVVBVCxtQkFBbUIsQ0FBQ1UsU0FBcEIsR0FBZ0M7QUFDOUJULEVBQUFBLGFBQWEsRUFBRVUsbUJBQVVDLE1BREs7QUFFOUJWLEVBQUFBLFFBQVEsRUFBRVMsbUJBQVVFLEdBRlU7QUFHOUJWLEVBQUFBLFNBQVMsRUFBRVEsbUJBQVVHLE1BSFM7QUFJOUJWLEVBQUFBLFFBQVEsRUFBRU8sbUJBQVVDLE1BSlU7QUFLOUJQLEVBQUFBLHFCQUFxQixFQUFFTSxtQkFBVUcsTUFMSDtBQU05QlIsRUFBQUEsSUFBSSxFQUFFSyxtQkFBVUksS0FBVixDQUFnQixDQUFDLFFBQUQsRUFBVyxLQUFYLENBQWhCLENBTndCO0FBTzlCUixFQUFBQSxtQkFBbUIsRUFBRUksbUJBQVVHO0FBUEQsQ0FBaEM7ZUFVZWQsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdnbGFtb3InO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEF1dG9IaWRlRm9sbG93QnV0dG9uIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vQXV0b0hpZGVGb2xsb3dCdXR0b24nO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vQ29tcG9zZXInO1xuaW1wb3J0IFBhbmVsIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vUGFuZWwnO1xuXG5jb25zdCBST09UX0NTUyA9IGNzcyh7XG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnXG59KTtcblxuY29uc3QgQmFzaWNTY3JvbGxUb0JvdHRvbSA9ICh7XG4gIGNoZWNrSW50ZXJ2YWwsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGRlYm91bmNlLFxuICBmb2xsb3dCdXR0b25DbGFzc05hbWUsXG4gIG1vZGUsXG4gIHNjcm9sbFZpZXdDbGFzc05hbWVcbn0pID0+IChcbiAgPENvbXBvc2VyIGNoZWNrSW50ZXJ2YWw9e2NoZWNrSW50ZXJ2YWx9IGRlYm91bmNlPXtkZWJvdW5jZX0gbW9kZT17bW9kZX0+XG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoUk9PVF9DU1MgKyAnJywgKGNsYXNzTmFtZSB8fCAnJykgKyAnJyl9PlxuICAgICAgPFBhbmVsIGNsYXNzTmFtZT17c2Nyb2xsVmlld0NsYXNzTmFtZX0+e2NoaWxkcmVufTwvUGFuZWw+XG4gICAgICA8QXV0b0hpZGVGb2xsb3dCdXR0b24gY2xhc3NOYW1lPXtmb2xsb3dCdXR0b25DbGFzc05hbWV9IC8+XG4gICAgPC9kaXY+XG4gIDwvQ29tcG9zZXI+XG4pO1xuXG5CYXNpY1Njcm9sbFRvQm90dG9tLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hlY2tJbnRlcnZhbDogdW5kZWZpbmVkLFxuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGVib3VuY2U6IHVuZGVmaW5lZCxcbiAgZm9sbG93QnV0dG9uQ2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIG1vZGU6IHVuZGVmaW5lZCxcbiAgc2Nyb2xsVmlld0NsYXNzTmFtZTogdW5kZWZpbmVkXG59O1xuXG5CYXNpY1Njcm9sbFRvQm90dG9tLnByb3BUeXBlcyA9IHtcbiAgY2hlY2tJbnRlcnZhbDogUHJvcFR5cGVzLm51bWJlcixcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGVib3VuY2U6IFByb3BUeXBlcy5udW1iZXIsXG4gIGZvbGxvd0J1dHRvbkNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgbW9kZTogUHJvcFR5cGVzLm9uZU9mKFsnYm90dG9tJywgJ3RvcCddKSxcbiAgc2Nyb2xsVmlld0NsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQmFzaWNTY3JvbGxUb0JvdHRvbTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXNpY1Njcm9sbFRvQm90dG9tLmpzIl0sIm5hbWVzIjpbIlJPT1RfQ1NTIiwicG9zaXRpb24iLCJCYXNpY1Njcm9sbFRvQm90dG9tIiwiY2hlY2tJbnRlcnZhbCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGVib3VuY2UiLCJmb2xsb3dCdXR0b25DbGFzc05hbWUiLCJtb2RlIiwic2Nyb2xsVmlld0NsYXNzTmFtZSIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsImFueSIsInN0cmluZyIsIm9uZU9mIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxJQUFNQSxRQUFRLEdBQUcsaUJBQUk7QUFDbkJDLEVBQUFBLFFBQVEsRUFBRTtBQURTLENBQUosQ0FBakI7O0FBSUEsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQjtBQUFBLE1BQzFCQyxhQUQwQixRQUMxQkEsYUFEMEI7QUFBQSxNQUUxQkMsUUFGMEIsUUFFMUJBLFFBRjBCO0FBQUEsTUFHMUJDLFNBSDBCLFFBRzFCQSxTQUgwQjtBQUFBLE1BSTFCQyxRQUowQixRQUkxQkEsUUFKMEI7QUFBQSxNQUsxQkMscUJBTDBCLFFBSzFCQSxxQkFMMEI7QUFBQSxNQU0xQkMsSUFOMEIsUUFNMUJBLElBTjBCO0FBQUEsTUFPMUJDLG1CQVAwQixRQU8xQkEsbUJBUDBCO0FBQUEsc0JBUzFCLDZCQUFDLGlCQUFEO0FBQVUsSUFBQSxhQUFhLEVBQUVOLGFBQXpCO0FBQXdDLElBQUEsUUFBUSxFQUFFRyxRQUFsRDtBQUE0RCxJQUFBLElBQUksRUFBRUU7QUFBbEUsa0JBQ0U7QUFBSyxJQUFBLFNBQVMsRUFBRSx5QkFBV1IsUUFBUSxHQUFHLEVBQXRCLEVBQTBCLENBQUNLLFNBQVMsSUFBSSxFQUFkLElBQW9CLEVBQTlDO0FBQWhCLGtCQUNFLDZCQUFDLGNBQUQ7QUFBTyxJQUFBLFNBQVMsRUFBRUk7QUFBbEIsS0FBd0NMLFFBQXhDLENBREYsZUFFRSw2QkFBQyw2QkFBRDtBQUFzQixJQUFBLFNBQVMsRUFBRUc7QUFBakMsSUFGRixDQURGLENBVDBCO0FBQUEsQ0FBNUI7O0FBaUJBTCxtQkFBbUIsQ0FBQ1EsWUFBcEIsR0FBbUM7QUFDakNQLEVBQUFBLGFBQWEsRUFBRVEsU0FEa0I7QUFFakNQLEVBQUFBLFFBQVEsRUFBRU8sU0FGdUI7QUFHakNOLEVBQUFBLFNBQVMsRUFBRU0sU0FIc0I7QUFJakNMLEVBQUFBLFFBQVEsRUFBRUssU0FKdUI7QUFLakNKLEVBQUFBLHFCQUFxQixFQUFFSSxTQUxVO0FBTWpDSCxFQUFBQSxJQUFJLEVBQUVHLFNBTjJCO0FBT2pDRixFQUFBQSxtQkFBbUIsRUFBRUU7QUFQWSxDQUFuQztBQVVBVCxtQkFBbUIsQ0FBQ1UsU0FBcEIsR0FBZ0M7QUFDOUJULEVBQUFBLGFBQWEsRUFBRVUsbUJBQVVDLE1BREs7QUFFOUJWLEVBQUFBLFFBQVEsRUFBRVMsbUJBQVVFLEdBRlU7QUFHOUJWLEVBQUFBLFNBQVMsRUFBRVEsbUJBQVVHLE1BSFM7QUFJOUJWLEVBQUFBLFFBQVEsRUFBRU8sbUJBQVVDLE1BSlU7QUFLOUJQLEVBQUFBLHFCQUFxQixFQUFFTSxtQkFBVUcsTUFMSDtBQU05QlIsRUFBQUEsSUFBSSxFQUFFSyxtQkFBVUksS0FBVixDQUFnQixDQUFDLFFBQUQsRUFBVyxLQUFYLENBQWhCLENBTndCO0FBTzlCUixFQUFBQSxtQkFBbUIsRUFBRUksbUJBQVVHO0FBUEQsQ0FBaEM7ZUFVZWQsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdnbGFtb3InO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEF1dG9IaWRlRm9sbG93QnV0dG9uIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vQXV0b0hpZGVGb2xsb3dCdXR0b24nO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vQ29tcG9zZXInO1xuaW1wb3J0IFBhbmVsIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vUGFuZWwnO1xuXG5jb25zdCBST09UX0NTUyA9IGNzcyh7XG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnXG59KTtcblxuY29uc3QgQmFzaWNTY3JvbGxUb0JvdHRvbSA9ICh7XG4gIGNoZWNrSW50ZXJ2YWwsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGRlYm91bmNlLFxuICBmb2xsb3dCdXR0b25DbGFzc05hbWUsXG4gIG1vZGUsXG4gIHNjcm9sbFZpZXdDbGFzc05hbWVcbn0pID0+IChcbiAgPENvbXBvc2VyIGNoZWNrSW50ZXJ2YWw9e2NoZWNrSW50ZXJ2YWx9IGRlYm91bmNlPXtkZWJvdW5jZX0gbW9kZT17bW9kZX0+XG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoUk9PVF9DU1MgKyAnJywgKGNsYXNzTmFtZSB8fCAnJykgKyAnJyl9PlxuICAgICAgPFBhbmVsIGNsYXNzTmFtZT17c2Nyb2xsVmlld0NsYXNzTmFtZX0+e2NoaWxkcmVufTwvUGFuZWw+XG4gICAgICA8QXV0b0hpZGVGb2xsb3dCdXR0b24gY2xhc3NOYW1lPXtmb2xsb3dCdXR0b25DbGFzc05hbWV9IC8+XG4gICAgPC9kaXY+XG4gIDwvQ29tcG9zZXI+XG4pO1xuXG5CYXNpY1Njcm9sbFRvQm90dG9tLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hlY2tJbnRlcnZhbDogdW5kZWZpbmVkLFxuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGVib3VuY2U6IHVuZGVmaW5lZCxcbiAgZm9sbG93QnV0dG9uQ2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIG1vZGU6IHVuZGVmaW5lZCxcbiAgc2Nyb2xsVmlld0NsYXNzTmFtZTogdW5kZWZpbmVkXG59O1xuXG5CYXNpY1Njcm9sbFRvQm90dG9tLnByb3BUeXBlcyA9IHtcbiAgY2hlY2tJbnRlcnZhbDogUHJvcFR5cGVzLm51bWJlcixcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGVib3VuY2U6IFByb3BUeXBlcy5udW1iZXIsXG4gIGZvbGxvd0J1dHRvbkNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgbW9kZTogUHJvcFR5cGVzLm9uZU9mKFsnYm90dG9tJywgJ3RvcCddKSxcbiAgc2Nyb2xsVmlld0NsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQmFzaWNTY3JvbGxUb0JvdHRvbTtcbiJdfQ==

@@ -23,7 +23,8 @@ "use strict";

onEventRef.current = onEvent;
var debouncer = (0, _react.useCallback)( // eslint-disable-next-line react-hooks/exhaustive-deps
(0, _debounce.default)(function (event) {
var current = onEventRef.current;
current && current(event);
}, debounce), [debounce, onEventRef]);
var debouncer = (0, _react.useMemo)(function () {
return (0, _debounce.default)(function (event) {
var current = onEventRef.current;
current && current(event);
}, debounce);
}, [debounce, onEventRef]);
var handleEvent = (0, _react.useCallback)(function (event) {

@@ -53,2 +54,2 @@ event.timeStampLow = Date.now();

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudFNweS5qcyJdLCJuYW1lcyI6WyJFdmVudFNweSIsImRlYm91bmNlIiwibmFtZSIsIm9uRXZlbnQiLCJ0YXJnZXQiLCJvbkV2ZW50UmVmIiwiY3VycmVudCIsImRlYm91bmNlciIsImV2ZW50IiwiaGFuZGxlRXZlbnQiLCJ0aW1lU3RhbXBMb3ciLCJEYXRlIiwibm93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJ0eXBlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOzs7O0FBRUEsSUFBTUEsUUFBUSxHQUFHLFNBQVhBLFFBQVcsT0FBeUM7QUFBQSxNQUF0Q0MsUUFBc0MsUUFBdENBLFFBQXNDO0FBQUEsTUFBNUJDLElBQTRCLFFBQTVCQSxJQUE0QjtBQUFBLE1BQXRCQyxPQUFzQixRQUF0QkEsT0FBc0I7QUFBQSxNQUFiQyxNQUFhLFFBQWJBLE1BQWE7QUFDeEQ7QUFDQTtBQUNBLE1BQU1DLFVBQVUsR0FBRyxvQkFBbkI7QUFFQUEsRUFBQUEsVUFBVSxDQUFDQyxPQUFYLEdBQXFCSCxPQUFyQjtBQUVBLE1BQU1JLFNBQVMsR0FBRyx5QkFDaEI7QUFDQSx5QkFBVyxVQUFBQyxLQUFLLEVBQUk7QUFBQSxRQUNWRixPQURVLEdBQ0VELFVBREYsQ0FDVkMsT0FEVTtBQUdsQkEsSUFBQUEsT0FBTyxJQUFJQSxPQUFPLENBQUNFLEtBQUQsQ0FBbEI7QUFDRCxHQUpELEVBSUdQLFFBSkgsQ0FGZ0IsRUFPaEIsQ0FBQ0EsUUFBRCxFQUFXSSxVQUFYLENBUGdCLENBQWxCO0FBVUEsTUFBTUksV0FBVyxHQUFHLHdCQUNsQixVQUFBRCxLQUFLLEVBQUk7QUFDUEEsSUFBQUEsS0FBSyxDQUFDRSxZQUFOLEdBQXFCQyxJQUFJLENBQUNDLEdBQUwsRUFBckI7QUFFQUwsSUFBQUEsU0FBUyxDQUFDQyxLQUFELENBQVQ7QUFDRCxHQUxpQixFQU1sQixDQUFDRCxTQUFELENBTmtCLENBQXBCO0FBU0EsOEJBQWdCLFlBQU07QUFDcEJILElBQUFBLE1BQU0sQ0FBQ1MsZ0JBQVAsQ0FBd0JYLElBQXhCLEVBQThCTyxXQUE5QixFQUEyQztBQUFFSyxNQUFBQSxPQUFPLEVBQUU7QUFBWCxLQUEzQztBQUNBTCxJQUFBQSxXQUFXLENBQUM7QUFBRUwsTUFBQUEsTUFBTSxFQUFOQSxNQUFGO0FBQVVXLE1BQUFBLElBQUksRUFBRWI7QUFBaEIsS0FBRCxDQUFYO0FBRUEsV0FBTztBQUFBLGFBQU1FLE1BQU0sQ0FBQ1ksbUJBQVAsQ0FBMkJkLElBQTNCLEVBQWlDTyxXQUFqQyxDQUFOO0FBQUEsS0FBUDtBQUNELEdBTEQsRUFLRyxDQUFDUCxJQUFELEVBQU9PLFdBQVAsRUFBb0JMLE1BQXBCLENBTEg7QUFPQSxTQUFPLEtBQVA7QUFDRCxDQWxDRDs7QUFvQ0FKLFFBQVEsQ0FBQ2lCLFlBQVQsR0FBd0I7QUFDdEJoQixFQUFBQSxRQUFRLEVBQUU7QUFEWSxDQUF4QjtlQUllRCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgZGVib3VuY2VGbiBmcm9tICcuL2RlYm91bmNlJztcblxuY29uc3QgRXZlbnRTcHkgPSAoeyBkZWJvdW5jZSwgbmFtZSwgb25FdmVudCwgdGFyZ2V0IH0pID0+IHtcbiAgLy8gV2UgbmVlZCB0byBzYXZlIHRoZSBcIm9uRXZlbnRcIiB0byByZWYuXG4gIC8vIFRoaXMgaXMgYmVjYXVzZSBcIm9uRXZlbnRcIiBtYXkgY2hhbmdlIGZyb20gdGltZSB0byB0aW1lLCBidXQgZGVib3VuY2UgbWF5IHN0aWxsIGZpcmUgdG8gdGhlIG9sZGVyIGNhbGxiYWNrLlxuICBjb25zdCBvbkV2ZW50UmVmID0gdXNlUmVmKCk7XG5cbiAgb25FdmVudFJlZi5jdXJyZW50ID0gb25FdmVudDtcblxuICBjb25zdCBkZWJvdW5jZXIgPSB1c2VDYWxsYmFjayhcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgZGVib3VuY2VGbihldmVudCA9PiB7XG4gICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IG9uRXZlbnRSZWY7XG5cbiAgICAgIGN1cnJlbnQgJiYgY3VycmVudChldmVudCk7XG4gICAgfSwgZGVib3VuY2UpLFxuICAgIFtkZWJvdW5jZSwgb25FdmVudFJlZl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVFdmVudCA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGV2ZW50LnRpbWVTdGFtcExvdyA9IERhdGUubm93KCk7XG5cbiAgICAgIGRlYm91bmNlcihldmVudCk7XG4gICAgfSxcbiAgICBbZGVib3VuY2VyXVxuICApO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlRXZlbnQsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICBoYW5kbGVFdmVudCh7IHRhcmdldCwgdHlwZTogbmFtZSB9KTtcblxuICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVFdmVudCk7XG4gIH0sIFtuYW1lLCBoYW5kbGVFdmVudCwgdGFyZ2V0XSk7XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuRXZlbnRTcHkuZGVmYXVsdFByb3BzID0ge1xuICBkZWJvdW5jZTogMjAwXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFdmVudFNweTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FdmVudFNweS5qcyJdLCJuYW1lcyI6WyJFdmVudFNweSIsImRlYm91bmNlIiwibmFtZSIsIm9uRXZlbnQiLCJ0YXJnZXQiLCJvbkV2ZW50UmVmIiwiY3VycmVudCIsImRlYm91bmNlciIsImV2ZW50IiwiaGFuZGxlRXZlbnQiLCJ0aW1lU3RhbXBMb3ciLCJEYXRlIiwibm93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJ0eXBlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOzs7O0FBRUEsSUFBTUEsUUFBUSxHQUFHLFNBQVhBLFFBQVcsT0FBeUM7QUFBQSxNQUF0Q0MsUUFBc0MsUUFBdENBLFFBQXNDO0FBQUEsTUFBNUJDLElBQTRCLFFBQTVCQSxJQUE0QjtBQUFBLE1BQXRCQyxPQUFzQixRQUF0QkEsT0FBc0I7QUFBQSxNQUFiQyxNQUFhLFFBQWJBLE1BQWE7QUFDeEQ7QUFDQTtBQUNBLE1BQU1DLFVBQVUsR0FBRyxvQkFBbkI7QUFFQUEsRUFBQUEsVUFBVSxDQUFDQyxPQUFYLEdBQXFCSCxPQUFyQjtBQUVBLE1BQU1JLFNBQVMsR0FBRyxvQkFDaEI7QUFBQSxXQUNFLHVCQUFXLFVBQUFDLEtBQUssRUFBSTtBQUFBLFVBQ1ZGLE9BRFUsR0FDRUQsVUFERixDQUNWQyxPQURVO0FBR2xCQSxNQUFBQSxPQUFPLElBQUlBLE9BQU8sQ0FBQ0UsS0FBRCxDQUFsQjtBQUNELEtBSkQsRUFJR1AsUUFKSCxDQURGO0FBQUEsR0FEZ0IsRUFPaEIsQ0FBQ0EsUUFBRCxFQUFXSSxVQUFYLENBUGdCLENBQWxCO0FBVUEsTUFBTUksV0FBVyxHQUFHLHdCQUNsQixVQUFBRCxLQUFLLEVBQUk7QUFDUEEsSUFBQUEsS0FBSyxDQUFDRSxZQUFOLEdBQXFCQyxJQUFJLENBQUNDLEdBQUwsRUFBckI7QUFFQUwsSUFBQUEsU0FBUyxDQUFDQyxLQUFELENBQVQ7QUFDRCxHQUxpQixFQU1sQixDQUFDRCxTQUFELENBTmtCLENBQXBCO0FBU0EsOEJBQWdCLFlBQU07QUFDcEJILElBQUFBLE1BQU0sQ0FBQ1MsZ0JBQVAsQ0FBd0JYLElBQXhCLEVBQThCTyxXQUE5QixFQUEyQztBQUFFSyxNQUFBQSxPQUFPLEVBQUU7QUFBWCxLQUEzQztBQUNBTCxJQUFBQSxXQUFXLENBQUM7QUFBRUwsTUFBQUEsTUFBTSxFQUFOQSxNQUFGO0FBQVVXLE1BQUFBLElBQUksRUFBRWI7QUFBaEIsS0FBRCxDQUFYO0FBRUEsV0FBTztBQUFBLGFBQU1FLE1BQU0sQ0FBQ1ksbUJBQVAsQ0FBMkJkLElBQTNCLEVBQWlDTyxXQUFqQyxDQUFOO0FBQUEsS0FBUDtBQUNELEdBTEQsRUFLRyxDQUFDUCxJQUFELEVBQU9PLFdBQVAsRUFBb0JMLE1BQXBCLENBTEg7QUFPQSxTQUFPLEtBQVA7QUFDRCxDQWxDRDs7QUFvQ0FKLFFBQVEsQ0FBQ2lCLFlBQVQsR0FBd0I7QUFDdEJoQixFQUFBQSxRQUFRLEVBQUU7QUFEWSxDQUF4QjtlQUllRCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgZGVib3VuY2VGbiBmcm9tICcuL2RlYm91bmNlJztcblxuY29uc3QgRXZlbnRTcHkgPSAoeyBkZWJvdW5jZSwgbmFtZSwgb25FdmVudCwgdGFyZ2V0IH0pID0+IHtcbiAgLy8gV2UgbmVlZCB0byBzYXZlIHRoZSBcIm9uRXZlbnRcIiB0byByZWYuXG4gIC8vIFRoaXMgaXMgYmVjYXVzZSBcIm9uRXZlbnRcIiBtYXkgY2hhbmdlIGZyb20gdGltZSB0byB0aW1lLCBidXQgZGVib3VuY2UgbWF5IHN0aWxsIGZpcmUgdG8gdGhlIG9sZGVyIGNhbGxiYWNrLlxuICBjb25zdCBvbkV2ZW50UmVmID0gdXNlUmVmKCk7XG5cbiAgb25FdmVudFJlZi5jdXJyZW50ID0gb25FdmVudDtcblxuICBjb25zdCBkZWJvdW5jZXIgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBkZWJvdW5jZUZuKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgeyBjdXJyZW50IH0gPSBvbkV2ZW50UmVmO1xuXG4gICAgICAgIGN1cnJlbnQgJiYgY3VycmVudChldmVudCk7XG4gICAgICB9LCBkZWJvdW5jZSksXG4gICAgW2RlYm91bmNlLCBvbkV2ZW50UmVmXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgZXZlbnQgPT4ge1xuICAgICAgZXZlbnQudGltZVN0YW1wTG93ID0gRGF0ZS5ub3coKTtcblxuICAgICAgZGVib3VuY2VyKGV2ZW50KTtcbiAgICB9LFxuICAgIFtkZWJvdW5jZXJdXG4gICk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVFdmVudCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIGhhbmRsZUV2ZW50KHsgdGFyZ2V0LCB0eXBlOiBuYW1lIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZUV2ZW50KTtcbiAgfSwgW25hbWUsIGhhbmRsZUV2ZW50LCB0YXJnZXRdKTtcblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5FdmVudFNweS5kZWZhdWx0UHJvcHMgPSB7XG4gIGRlYm91bmNlOiAyMDBcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50U3B5O1xuIl19

@@ -42,2 +42,8 @@ "use strict";

});
Object.defineProperty(exports, "useAnimatingToEnd", {
enumerable: true,
get: function get() {
return _useAnimatingToEnd.default;
}
});
Object.defineProperty(exports, "useAtBottom", {

@@ -73,2 +79,8 @@ enumerable: true,

});
Object.defineProperty(exports, "useObserveScrollPosition", {
enumerable: true,
get: function get() {
return _useObserveScrollPosition.default;
}
});
Object.defineProperty(exports, "useScrollTo", {

@@ -112,2 +124,4 @@ enumerable: true,

var _addVersionToMetaTag = _interopRequireDefault(require("./addVersionToMetaTag"));
var _AutoHideFollowButton = _interopRequireDefault(require("./ScrollToBottom/AutoHideFollowButton"));

@@ -127,2 +141,4 @@

var _useAnimatingToEnd = _interopRequireDefault(require("./hooks/useAnimatingToEnd"));
var _useAtBottom = _interopRequireDefault(require("./hooks/useAtBottom"));

@@ -138,2 +154,4 @@

var _useObserveScrollPosition = _interopRequireDefault(require("./hooks/useObserveScrollPosition"));
var _useScrollTo = _interopRequireDefault(require("./hooks/useScrollTo"));

@@ -155,2 +173,3 @@

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJCYXNpY1Njcm9sbFRvQm90dG9tIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7ZUFFZUEsNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXV0b0hpZGVGb2xsb3dCdXR0b24gZnJvbSAnLi9TY3JvbGxUb0JvdHRvbS9BdXRvSGlkZUZvbGxvd0J1dHRvbic7XG5pbXBvcnQgQmFzaWNTY3JvbGxUb0JvdHRvbSBmcm9tICcuL0Jhc2ljU2Nyb2xsVG9Cb3R0b20nO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vQ29tcG9zZXInO1xuaW1wb3J0IEZ1bmN0aW9uQ29udGV4dCBmcm9tICcuL1Njcm9sbFRvQm90dG9tL0Z1bmN0aW9uQ29udGV4dCc7XG5pbXBvcnQgUGFuZWwgZnJvbSAnLi9TY3JvbGxUb0JvdHRvbS9QYW5lbCc7XG5pbXBvcnQgU3RhdGVDb250ZXh0IGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vU3RhdGVDb250ZXh0JztcblxuaW1wb3J0IHVzZUFuaW1hdGluZyBmcm9tICcuL2hvb2tzL3VzZUFuaW1hdGluZyc7XG5pbXBvcnQgdXNlQXRCb3R0b20gZnJvbSAnLi9ob29rcy91c2VBdEJvdHRvbSc7XG5pbXBvcnQgdXNlQXRFbmQgZnJvbSAnLi9ob29rcy91c2VBdEVuZCc7XG5pbXBvcnQgdXNlQXRTdGFydCBmcm9tICcuL2hvb2tzL3VzZUF0U3RhcnQnO1xuaW1wb3J0IHVzZUF0VG9wIGZyb20gJy4vaG9va3MvdXNlQXRUb3AnO1xuaW1wb3J0IHVzZU1vZGUgZnJvbSAnLi9ob29rcy91c2VNb2RlJztcbmltcG9ydCB1c2VTY3JvbGxUbyBmcm9tICcuL2hvb2tzL3VzZVNjcm9sbFRvJztcbmltcG9ydCB1c2VTY3JvbGxUb0JvdHRvbSBmcm9tICcuL2hvb2tzL3VzZVNjcm9sbFRvQm90dG9tJztcbmltcG9ydCB1c2VTY3JvbGxUb0VuZCBmcm9tICcuL2hvb2tzL3VzZVNjcm9sbFRvRW5kJztcbmltcG9ydCB1c2VTY3JvbGxUb1N0YXJ0IGZyb20gJy4vaG9va3MvdXNlU2Nyb2xsVG9TdGFydCc7XG5pbXBvcnQgdXNlU2Nyb2xsVG9Ub3AgZnJvbSAnLi9ob29rcy91c2VTY3JvbGxUb1RvcCc7XG5pbXBvcnQgdXNlU3RpY2t5IGZyb20gJy4vaG9va3MvdXNlU3RpY2t5JztcblxuZXhwb3J0IGRlZmF1bHQgQmFzaWNTY3JvbGxUb0JvdHRvbTtcblxuZXhwb3J0IHtcbiAgQXV0b0hpZGVGb2xsb3dCdXR0b24sXG4gIENvbXBvc2VyLFxuICBGdW5jdGlvbkNvbnRleHQsXG4gIFBhbmVsLFxuICBTdGF0ZUNvbnRleHQsXG4gIHVzZUFuaW1hdGluZyxcbiAgdXNlQXRCb3R0b20sXG4gIHVzZUF0RW5kLFxuICB1c2VBdFN0YXJ0LFxuICB1c2VBdFRvcCxcbiAgdXNlTW9kZSxcbiAgdXNlU2Nyb2xsVG8sXG4gIHVzZVNjcm9sbFRvQm90dG9tLFxuICB1c2VTY3JvbGxUb0VuZCxcbiAgdXNlU2Nyb2xsVG9TdGFydCxcbiAgdXNlU2Nyb2xsVG9Ub3AsXG4gIHVzZVN0aWNreVxufTtcbiJdfQ==
(0, _addVersionToMetaTag.default)();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJCYXNpY1Njcm9sbFRvQm90dG9tIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7ZUFFZUEsNEI7O0FBd0JmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFkZFZlcnNpb25Ub01ldGFUYWcgZnJvbSAnLi9hZGRWZXJzaW9uVG9NZXRhVGFnJztcblxuaW1wb3J0IEF1dG9IaWRlRm9sbG93QnV0dG9uIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vQXV0b0hpZGVGb2xsb3dCdXR0b24nO1xuaW1wb3J0IEJhc2ljU2Nyb2xsVG9Cb3R0b20gZnJvbSAnLi9CYXNpY1Njcm9sbFRvQm90dG9tJztcbmltcG9ydCBDb21wb3NlciBmcm9tICcuL1Njcm9sbFRvQm90dG9tL0NvbXBvc2VyJztcbmltcG9ydCBGdW5jdGlvbkNvbnRleHQgZnJvbSAnLi9TY3JvbGxUb0JvdHRvbS9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IFBhbmVsIGZyb20gJy4vU2Nyb2xsVG9Cb3R0b20vUGFuZWwnO1xuaW1wb3J0IFN0YXRlQ29udGV4dCBmcm9tICcuL1Njcm9sbFRvQm90dG9tL1N0YXRlQ29udGV4dCc7XG5cbmltcG9ydCB1c2VBbmltYXRpbmcgZnJvbSAnLi9ob29rcy91c2VBbmltYXRpbmcnO1xuaW1wb3J0IHVzZUFuaW1hdGluZ1RvRW5kIGZyb20gJy4vaG9va3MvdXNlQW5pbWF0aW5nVG9FbmQnO1xuaW1wb3J0IHVzZUF0Qm90dG9tIGZyb20gJy4vaG9va3MvdXNlQXRCb3R0b20nO1xuaW1wb3J0IHVzZUF0RW5kIGZyb20gJy4vaG9va3MvdXNlQXRFbmQnO1xuaW1wb3J0IHVzZUF0U3RhcnQgZnJvbSAnLi9ob29rcy91c2VBdFN0YXJ0JztcbmltcG9ydCB1c2VBdFRvcCBmcm9tICcuL2hvb2tzL3VzZUF0VG9wJztcbmltcG9ydCB1c2VNb2RlIGZyb20gJy4vaG9va3MvdXNlTW9kZSc7XG5pbXBvcnQgdXNlT2JzZXJ2ZVNjcm9sbFBvc2l0aW9uIGZyb20gJy4vaG9va3MvdXNlT2JzZXJ2ZVNjcm9sbFBvc2l0aW9uJztcbmltcG9ydCB1c2VTY3JvbGxUbyBmcm9tICcuL2hvb2tzL3VzZVNjcm9sbFRvJztcbmltcG9ydCB1c2VTY3JvbGxUb0JvdHRvbSBmcm9tICcuL2hvb2tzL3VzZVNjcm9sbFRvQm90dG9tJztcbmltcG9ydCB1c2VTY3JvbGxUb0VuZCBmcm9tICcuL2hvb2tzL3VzZVNjcm9sbFRvRW5kJztcbmltcG9ydCB1c2VTY3JvbGxUb1N0YXJ0IGZyb20gJy4vaG9va3MvdXNlU2Nyb2xsVG9TdGFydCc7XG5pbXBvcnQgdXNlU2Nyb2xsVG9Ub3AgZnJvbSAnLi9ob29rcy91c2VTY3JvbGxUb1RvcCc7XG5pbXBvcnQgdXNlU3RpY2t5IGZyb20gJy4vaG9va3MvdXNlU3RpY2t5JztcblxuZXhwb3J0IGRlZmF1bHQgQmFzaWNTY3JvbGxUb0JvdHRvbTtcblxuZXhwb3J0IHtcbiAgQXV0b0hpZGVGb2xsb3dCdXR0b24sXG4gIENvbXBvc2VyLFxuICBGdW5jdGlvbkNvbnRleHQsXG4gIFBhbmVsLFxuICBTdGF0ZUNvbnRleHQsXG4gIHVzZUFuaW1hdGluZyxcbiAgdXNlQW5pbWF0aW5nVG9FbmQsXG4gIHVzZUF0Qm90dG9tLFxuICB1c2VBdEVuZCxcbiAgdXNlQXRTdGFydCxcbiAgdXNlQXRUb3AsXG4gIHVzZU1vZGUsXG4gIHVzZU9ic2VydmVTY3JvbGxQb3NpdGlvbixcbiAgdXNlU2Nyb2xsVG8sXG4gIHVzZVNjcm9sbFRvQm90dG9tLFxuICB1c2VTY3JvbGxUb0VuZCxcbiAgdXNlU2Nyb2xsVG9TdGFydCxcbiAgdXNlU2Nyb2xsVG9Ub3AsXG4gIHVzZVN0aWNreVxufTtcblxuYWRkVmVyc2lvblRvTWV0YVRhZygpO1xuIl19

@@ -72,2 +72,6 @@ "use strict";

function isEnd(scrollTop, mode) {
return mode === MODE_TOP && scrollTop === 0 || mode === MODE_BOTTOM && scrollTop === '100%';
}
var Composer = function Composer(_ref2) {

@@ -84,69 +88,123 @@ var checkInterval = _ref2.checkInterval,

scrollTop = _useState2[0],
setScrollTop = _useState2[1]; // Internal context
setScrollTop = _useState2[1];
var _useState3 = (0, _react.useState)(0),
var _useState3 = (0, _react.useState)(null),
_useState4 = _slicedToArray(_useState3, 2),
offsetHeight = _useState4[0],
setOffsetHeight = _useState4[1];
target = _useState4[0],
setTarget = _useState4[1]; // Internal context
var _useState5 = (0, _react.useState)(0),
_useState6 = _slicedToArray(_useState5, 2),
scrollHeight = _useState6[0],
setScrollHeight = _useState6[1]; // State context
offsetHeight = _useState6[0],
setOffsetHeight = _useState6[1];
var _useState7 = (0, _react.useState)(false),
var _useState7 = (0, _react.useState)(0),
_useState8 = _slicedToArray(_useState7, 2),
animating = _useState8[0],
setAnimating = _useState8[1];
scrollHeight = _useState8[0],
setScrollHeight = _useState8[1]; // State context
var _useState9 = (0, _react.useState)(true),
var _useState9 = (0, _react.useState)(false),
_useState10 = _slicedToArray(_useState9, 2),
atBottom = _useState10[0],
setAtBottom = _useState10[1];
animating = _useState10[0],
setAnimating = _useState10[1];
var _useState11 = (0, _react.useState)(true),
_useState12 = _slicedToArray(_useState11, 2),
atEnd = _useState12[0],
setAtEnd = _useState12[1];
atBottom = _useState12[0],
setAtBottom = _useState12[1];
var _useState13 = (0, _react.useState)(true),
_useState14 = _slicedToArray(_useState13, 2),
atTop = _useState14[0],
setAtTop = _useState14[1];
atEnd = _useState14[0],
setAtEnd = _useState14[1];
var _useState15 = (0, _react.useState)(false),
var _useState15 = (0, _react.useState)(true),
_useState16 = _slicedToArray(_useState15, 2),
atStart = _useState16[0],
setAtStart = _useState16[1];
atTop = _useState16[0],
setAtTop = _useState16[1];
var _useState17 = (0, _react.useState)(true),
var _useState17 = (0, _react.useState)(false),
_useState18 = _slicedToArray(_useState17, 2),
sticky = _useState18[0],
setSticky = _useState18[1]; // Function context
atStart = _useState18[0],
setAtStart = _useState18[1];
var _useState19 = (0, _react.useState)(true),
_useState20 = _slicedToArray(_useState19, 2),
sticky = _useState20[0],
setSticky = _useState20[1]; // High-rate state context
var scrollPositionObserversRef = (0, _react.useRef)([]);
var observeScrollPosition = (0, _react.useCallback)(function (fn) {
scrollPositionObserversRef.current.push(fn);
target && fn({
scrollTop: target.scrollTop
});
return function () {
var scrollPositionObservers = scrollPositionObserversRef.current;
var index = scrollPositionObservers.indexOf(fn);
~index && scrollPositionObservers.splice(index, 1);
};
}, [scrollPositionObserversRef, target]);
var handleScrollEnd = (0, _react.useCallback)(function () {
ignoreScrollEventBeforeRef.current = Date.now();
setAnimating(false);
setScrollTop(null);
}, [ignoreScrollEventBeforeRef, setAnimating, setScrollTop]); // Function context
var scrollTo = (0, _react.useCallback)(function (scrollTop) {
setAnimating(true);
setScrollTop(scrollTop);
}, [setAnimating, setScrollTop]);
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
behavior = _ref3.behavior;
if (behavior === 'auto') {
// Stop any existing animation
handleScrollEnd(); // Jump to the scroll position
target.scrollTop = scrollTop === '100%' ? target.scrollHeight - target.offsetHeight : scrollTop;
} else {
behavior !== 'smooth' && console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollTo". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');
setAnimating(true);
setScrollTop(scrollTop);
}
}, [handleScrollEnd, setAnimating, setScrollTop, target]);
var scrollToBottom = (0, _react.useCallback)(function () {
return scrollTo('100%');
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
behavior = _ref4.behavior;
behavior !== 'smooth' && console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToBottom". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');
scrollTo('100%', {
behavior: behavior || 'smooth'
});
}, [scrollTo]);
var scrollToTop = (0, _react.useCallback)(function () {
return scrollTo(0);
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
behavior = _ref5.behavior;
behavior !== 'smooth' && console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToTop". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');
scrollTo(0, {
behavior: behavior || 'smooth'
});
}, [scrollTo]);
var scrollToEnd = (0, _react.useCallback)(function () {
return mode === MODE_TOP ? scrollToTop() : scrollToBottom();
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
behavior = _ref6.behavior;
behavior !== 'smooth' && console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToEnd". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');
var options = {
behavior: behavior || 'smooth'
};
mode === MODE_TOP ? scrollToTop(options) : scrollToBottom(options);
}, [mode, scrollToBottom, scrollToTop]);
var scrollToStart = (0, _react.useCallback)(function () {
return mode === MODE_TOP ? scrollToBottom() : scrollToTop();
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
behavior = _ref7.behavior;
behavior !== 'smooth' && console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToStart". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');
var options = {
behavior: behavior || 'smooth'
};
mode === MODE_TOP ? scrollToBottom(options) : scrollToTop(options);
}, [mode, scrollToBottom, scrollToTop]);
var _useState19 = (0, _react.useState)(null),
_useState20 = _slicedToArray(_useState19, 2),
target = _useState20[0],
setTarget = _useState20[1];
(0, _react.useEffect)(function () {

@@ -169,3 +227,5 @@ if (sticky) {

// Repro: Open Firefox, set checkInterval to a lower number, and try to scroll by dragging the scroll handler. It will jump back.
!animating && scrollToEnd();
!animating && scrollToEnd({
behavior: 'smooth'
});
stickyButNotAtEndSince = false;

@@ -182,4 +242,4 @@ }

}, [animating, checkInterval, mode, scrollToEnd, sticky, target]);
var handleScroll = (0, _react.useCallback)(function (_ref3) {
var timeStampLow = _ref3.timeStampLow;
var handleScroll = (0, _react.useCallback)(function (_ref8) {
var timeStampLow = _ref8.timeStampLow;

@@ -212,3 +272,3 @@ // Currently, there are no reliable way to check if the "scroll" event is trigger due to

// Repro: In playground, press 4-1-5-1-1 (small, add one, normal, add one, add one)
// Nomatter how fast or slow the sequence is being presssed, it should still stick to the bottom
// Nomatter how fast or slow the sequence is being pressed, it should still stick to the bottom

@@ -225,15 +285,19 @@ var nextOffsetHeight = target.offsetHeight,

!offsetHeightChanged && !scrollHeightChanged && setSticky(animating || _atEnd); // If no scrollTop is set (not in programmatic scrolling mode), we should set "animating" to false
!offsetHeightChanged && !scrollHeightChanged && setSticky( // We are sticky if we are animating to the end, or we are already at the end.
// We can be "animating but not sticky" by calling "scrollTo(100)" where the container scrollHeight is 200px.
animating && isEnd(scrollTop, mode) || _atEnd); // If no scrollTop is set (not in programmatic scrolling mode), we should set "animating" to false
// "animating" is used to calculate the "sticky" property
scrollTop === null && setAnimating(false);
var actualScrollTop = target.scrollTop;
scrollPositionObserversRef.current.forEach(function (observer) {
return observer({
scrollTop: actualScrollTop
});
});
}
}, [animating, ignoreScrollEventBeforeRef, mode, offsetHeight, scrollHeight, scrollTop, setAnimating, setAtBottom, setAtEnd, setAtStart, setAtTop, setOffsetHeight, setScrollHeight, setSticky, target]);
var handleScrollEnd = (0, _react.useCallback)(function () {
ignoreScrollEventBeforeRef.current = Date.now();
setAnimating(false);
setScrollTop(null);
}, [ignoreScrollEventBeforeRef, setScrollTop]);
}, [animating, ignoreScrollEventBeforeRef, mode, offsetHeight, scrollHeight, scrollPositionObserversRef, scrollTop, setAnimating, setAtBottom, setAtEnd, setAtStart, setAtTop, setOffsetHeight, setScrollHeight, setSticky, target]);
var internalContext = (0, _react.useMemo)(function () {
return {
observeScrollPosition: observeScrollPosition,
offsetHeight: offsetHeight,

@@ -243,6 +307,8 @@ scrollHeight: scrollHeight,

};
}, [offsetHeight, scrollHeight, setTarget]);
}, [observeScrollPosition, offsetHeight, scrollHeight, setTarget]);
var animatingToEnd = animating && isEnd(scrollTop, mode);
var stateContext = (0, _react.useMemo)(function () {
return {
animating: animating,
animatingToEnd: animatingToEnd,
atBottom: atBottom,

@@ -255,3 +321,3 @@ atEnd: atEnd,

};
}, [animating, atBottom, atEnd, atStart, atTop, mode, sticky]);
}, [animating, animatingToEnd, atBottom, atEnd, atStart, atTop, mode, sticky]);
var functionContext = (0, _react.useMemo)(function () {

@@ -333,2 +399,2 @@ return {

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9Db21wb3Nlci5qcyJdLCJuYW1lcyI6WyJNSU5fQ0hFQ0tfSU5URVJWQUwiLCJNT0RFX0JPVFRPTSIsIk1PREVfVE9QIiwiTkVBUl9FTkRfVEhSRVNIT0xEIiwiU0NST0xMX0RFQ0lTSU9OX0RVUkFUSU9OIiwic2V0SW1tZWRpYXRlSW50ZXJ2YWwiLCJmbiIsIm1zIiwic2V0SW50ZXJ2YWwiLCJjb21wdXRlVmlld1N0YXRlIiwibW9kZSIsInRhcmdldCIsIm9mZnNldEhlaWdodCIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvcCIsImF0Qm90dG9tIiwiYXRUb3AiLCJhdEVuZCIsImF0U3RhcnQiLCJDb21wb3NlciIsImNoZWNrSW50ZXJ2YWwiLCJjaGlsZHJlbiIsImRlYm91bmNlIiwiaWdub3JlU2Nyb2xsRXZlbnRCZWZvcmVSZWYiLCJzZXRTY3JvbGxUb3AiLCJzZXRPZmZzZXRIZWlnaHQiLCJzZXRTY3JvbGxIZWlnaHQiLCJhbmltYXRpbmciLCJzZXRBbmltYXRpbmciLCJzZXRBdEJvdHRvbSIsInNldEF0RW5kIiwic2V0QXRUb3AiLCJzZXRBdFN0YXJ0Iiwic3RpY2t5Iiwic2V0U3RpY2t5Iiwic2Nyb2xsVG8iLCJzY3JvbGxUb0JvdHRvbSIsInNjcm9sbFRvVG9wIiwic2Nyb2xsVG9FbmQiLCJzY3JvbGxUb1N0YXJ0Iiwic2V0VGFyZ2V0Iiwic3RpY2t5QnV0Tm90QXRFbmRTaW5jZSIsInRpbWVvdXQiLCJEYXRlIiwibm93IiwiTWF0aCIsIm1heCIsImNsZWFySW50ZXJ2YWwiLCJoYW5kbGVTY3JvbGwiLCJ0aW1lU3RhbXBMb3ciLCJjdXJyZW50IiwibmV4dE9mZnNldEhlaWdodCIsIm5leHRTY3JvbGxIZWlnaHQiLCJvZmZzZXRIZWlnaHRDaGFuZ2VkIiwic2Nyb2xsSGVpZ2h0Q2hhbmdlZCIsImhhbmRsZVNjcm9sbEVuZCIsImludGVybmFsQ29udGV4dCIsInN0YXRlQ29udGV4dCIsImZ1bmN0aW9uQ29udGV4dCIsImhhbmRsZUZvY3VzIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNhcHR1cmUiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsImFueSIsIm9uZU9mIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxrQkFBa0IsR0FBRyxFQUEzQixDLENBQStCOztBQUMvQixJQUFNQyxXQUFXLEdBQUcsUUFBcEI7QUFDQSxJQUFNQyxRQUFRLEdBQUcsS0FBakI7QUFDQSxJQUFNQyxrQkFBa0IsR0FBRyxDQUEzQjtBQUNBLElBQU1DLHdCQUF3QixHQUFHLEVBQWpDLEMsQ0FBcUM7O0FBRXJDLFNBQVNDLG9CQUFULENBQThCQyxFQUE5QixFQUFrQ0MsRUFBbEMsRUFBc0M7QUFDcENELEVBQUFBLEVBQUU7QUFFRixTQUFPRSxXQUFXLENBQUNGLEVBQUQsRUFBS0MsRUFBTCxDQUFsQjtBQUNEOztBQUVELFNBQVNFLGdCQUFULE9BQXVGO0FBQUEsTUFBM0RDLElBQTJELFFBQTNEQSxJQUEyRDtBQUFBLHlCQUFyREMsTUFBcUQ7QUFBQSxNQUEzQ0MsWUFBMkMsZUFBM0NBLFlBQTJDO0FBQUEsTUFBN0JDLFlBQTZCLGVBQTdCQSxZQUE2QjtBQUFBLE1BQWZDLFNBQWUsZUFBZkEsU0FBZTtBQUNyRixNQUFNQyxRQUFRLEdBQUdGLFlBQVksR0FBR0MsU0FBZixHQUEyQkYsWUFBM0IsR0FBMENULGtCQUEzRDtBQUNBLE1BQU1hLEtBQUssR0FBR0YsU0FBUyxHQUFHWCxrQkFBMUI7QUFDQSxNQUFNYyxLQUFLLEdBQUdQLElBQUksS0FBS1IsUUFBVCxHQUFvQmMsS0FBcEIsR0FBNEJELFFBQTFDO0FBQ0EsTUFBTUcsT0FBTyxHQUFHUixJQUFJLEtBQUtSLFFBQVQsR0FBb0JjLEtBQXBCLEdB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QU9lbkQsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IEV2ZW50U3B5IGZyb20gJy4uL0V2ZW50U3B5JztcbmltcG9ydCBGdW5jdGlvbkNvbnRleHQgZnJvbSAnLi9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IEludGVybmFsQ29udGV4dCBmcm9tICcuL0ludGVybmFsQ29udGV4dCc7XG5pbXBvcnQgU3BpbmVUbyBmcm9tICcuLi9TcGluZVRvJztcbmltcG9ydCBTdGF0ZUNvbnRleHQgZnJvbSAnLi9TdGF0ZUNvbnRleHQnO1xuXG5jb25zdCBNSU5fQ0hFQ0tfSU5URVJWQUwgPSAxNzsgLy8gMSBmcmFtZVxuY29uc3QgTU9ERV9CT1RUT00gPSAnYm90dG9tJztcbmNvbnN0IE1PREVfVE9QID0gJ3RvcCc7XG5jb25zdCBORUFSX0VORF9USFJFU0hPTEQgPSAxO1xuY29uc3QgU0NST0xMX0RFQ0lTSU9OX0RVUkFUSU9OID0gMzQ7IC8vIDIgZnJhbWVzXG5cbmZ1bmN0aW9uIHNldEltbWVkaWF0ZUludGVydmFsKGZuLCBtcykge1xuICBmbigpO1xuXG4gIHJldHVybiBzZXRJbnRlcnZhbChmbiwgbXMpO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlVmlld1N0YXRlKHsgbW9kZSwgdGFyZ2V0OiB7IG9mZnNldEhlaWdodCwgc2Nyb2xsSGVpZ2h0LCBzY3JvbGxUb3AgfSB9KSB7XG4gIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gb2Zmc2V0SGVpZ2h0IDwgTkVBUl9FTkRfVEhSRVNIT0xEO1xuICBjb25zdCBhdFRvcCA9IHNjcm9sbFRvcCA8IE5FQVJfRU5EX1RIUkVTSE9MRDtcbiAgY29uc3QgYXRFbmQgPSBtb2RlID09PSBNT0RFX1RPUCA/IGF0VG9wIDogYXRCb3R0b207XG4gIGNvbnN0IGF0U3RhcnQgPSBtb2RlICE9PSBNT0RFX1RPUCA/IGF0VG9wIDogYXRCb3R0b207XG5cbiAgcmV0dXJuIHtcbiAgICBhdEJvdHRvbSxcbiAgICBhdEVuZCxcbiAgICBhdFN0YXJ0LFxuICAgIGF0VG9wXG4gIH07XG59XG5cbmNvbnN0IENvbXBvc2VyID0gKHsgY2hlY2tJbnRlcnZhbCwgY2hpbGRyZW4sIGRlYm91bmNlLCBtb2RlIH0pID0+IHtcbiAgbW9kZSA9IG1vZGUgPT09IE1PREVfVE9QID8gTU9ERV9UT1AgOiBNT0RFX0JPVFRPTTtcblxuICBjb25zdCBpZ25vcmVTY3JvbGxFdmVudEJlZm9yZVJlZiA9IHVzZVJlZigwKTtcbiAgY29uc3QgW3Njcm9sbFRvcCwgc2V0U2Nyb2xsVG9wXSA9IHVzZVN0YXRlKG1vZGUgPT09IE1PREVfVE9QID8gMCA6ICcxMDAlJyk7XG5cbiAgLy8gSW50ZXJuYWwgY29udGV4dFxuICBjb25zdCBbb2Zmc2V0SGVpZ2h0LCBzZXRPZmZzZXRIZWlnaHRdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtzY3JvbGxIZWlnaHQsIHNldFNjcm9sbEhlaWdodF0gPSB1c2VTdGF0ZSgwKTtcblxuICAvLyBTdGF0ZSBjb250ZXh0XG4gIGNvbnN0IFthbmltYXRpbmcsIHNldEFuaW1hdGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthdEJvdHRvbSwgc2V0QXRCb3R0b21dID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFthdEVuZCwgc2V0QXRFbmRdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFthdFRvcCwgc2V0QXRUb3BdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFthdFN0YXJ0LCBzZXRBdFN0YXJ0XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3N0aWNreSwgc2V0U3RpY2t5XSA9IHVzZVN0YXRlKHRydWUpO1xuXG4gIC8vIEZ1bmN0aW9uIGNvbnRleHRcbiAgY29uc3Qgc2Nyb2xsVG8gPSB1c2VDYWxsYmFjayhcbiAgICBzY3JvbGxUb3AgPT4ge1xuICAgICAgc2V0QW5pbWF0aW5nKHRydWUpO1xuICAgICAgc2V0U2Nyb2xsVG9wKHNjcm9sbFRvcCk7XG4gICAgfSxcbiAgICBbc2V0QW5pbWF0aW5nLCBzZXRTY3JvbGxUb3BdXG4gICk7XG5cbiAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSB1c2VDYWxsYmFjaygoKSA9PiBzY3JvbGxUbygnMTAwJScpLCBbc2Nyb2xsVG9dKTtcbiAgY29uc3Qgc2Nyb2xsVG9Ub3AgPSB1c2VDYWxsYmFjaygoKSA9PiBzY3JvbGxUbygwKSwgW3Njcm9sbFRvXSk7XG5cbiAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VDYWxsYmFjaygoKSA9PiAobW9kZSA9PT0gTU9ERV9UT1AgPyBzY3JvbGxUb1RvcCgpIDogc2Nyb2xsVG9Cb3R0b20oKSksIFtcbiAgICBtb2RlLFxuICAgIHNjcm9sbFRvQm90dG9tLFxuICAgIHNjcm9sbFRvVG9wXG4gIF0pO1xuICBjb25zdCBzY3JvbGxUb1N0YXJ0ID0gdXNlQ2FsbGJhY2soKCkgPT4gKG1vZGUgPT09IE1PREVfVE9QID8gc2Nyb2xsVG9Cb3R0b20oKSA6IHNjcm9sbFRvVG9wKCkpLCBbXG4gICAgbW9kZSxcbiAgICBzY3JvbGxUb0JvdHRvbSxcbiAgICBzY3JvbGxUb1RvcFxuICBdKTtcblxuICBjb25zdCBbdGFyZ2V0LCBzZXRUYXJnZXRdID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3RpY2t5KSB7XG4gICAgICBsZXQgc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA9IGZhbHNlO1xuXG4gICAgICBjb25zdCB0aW1lb3V0ID0gc2V0SW1tZWRpYXRlSW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBpZiAoc3RpY2t5ICYmIHRhcmdldCAmJiAhY29tcHV0ZVZpZXdTdGF0ZSh7IG1vZGUsIHRhcmdldCB9KS5hdEVuZCkge1xuICAgICAgICAgIGlmICghc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSkge1xuICAgICAgICAgICAgc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA9IERhdGUubm93KCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChEYXRlLm5vdygpIC0gc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA+IFNDUk9MTF9ERUNJU0lPTl9EVVJBVElPTikge1xuICAgICAgICAgICAgLy8gUXVpcmtzOiBJbiBGaXJlZm94LCBhZnRlciB1c2VyIHNjcm9sbCBkb3duLCBGaXJlZm94IGRvIHR3byB0aGluZ3M6XG4gICAgICAgICAgICAvLyAgICAgICAgIDEuIFNldCB0byBhIG5ldyBcInNjcm9sbFRvcFwiXG4gICAgICAgICAgICAvLyAgICAgICAgIDIuIEZpcmUgXCJzY3JvbGxcIiBldmVudFxuICAgICAgICAgICAgLy8gICAgICAgICBGb3Igd2hhdCB3ZSBvYnNlcnZlZCwgIzEgaXMgZmlyZWQgYWJvdXQgMjBtcyBiZWZvcmUgIzIuIFRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgdGhpcyBzdGlja3lDaGVja1RpbWVvdXQgaXMgYmVpbmcgc2NoZWR1bGVkIGJldHdlZW4gMSBhbmQgMi5cbiAgICAgICAgICAgIC8vICAgICAgICAgVGhhdCBtZWFucywgaWYgd2UganVzdCBsb29rIGF0ICMxIHRvIGRlY2lkZSBpZiB3ZSBzaG91bGQgc2Nyb2xsLCB3ZSB3aWxsIGFsd2F5cyBzY3JvbGwsIGluIG9wcG9zZSB0byB0aGUgdXNlcidzIGludGVudGlvbi5cbiAgICAgICAgICAgIC8vIFJlcHJvOiBPcGVuIEZpcmVmb3gsIHNldCBjaGVja0ludGVydmFsIHRvIGEgbG93ZXIgbnVtYmVyLCBhbmQgdHJ5IHRvIHNjcm9sbCBieSBkcmFnZ2luZyB0aGUgc2Nyb2xsIGhhbmRsZXIuIEl0IHdpbGwganVtcCBiYWNrLlxuXG4gICAgICAgICAgICAhYW5pbWF0aW5nICYmIHNjcm9sbFRvRW5kKCk7XG4gICAgICAgICAgICBzdGlja3lCdXROb3RBdEVuZFNpbmNlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0aWNreUJ1dE5vdEF0RW5kU2luY2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgTWF0aC5tYXgoTUlOX0NIRUNLX0lOVEVSVkFMLCBjaGVja0ludGVydmFsKSB8fCBNSU5fQ0hFQ0tfSU5URVJWQUwpO1xuXG4gICAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbCh0aW1lb3V0KTtcbiAgICB9XG4gIH0sIFthbmltYXRpbmcsIGNoZWNrSW50ZXJ2YWwsIG1vZGUsIHNjcm9sbFRvRW5kLCBzdGlja3ksIHRhcmdldF0pO1xuXG4gIGNvbnN0IGhhbmRsZVNjcm9sbCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHRpbWVTdGFtcExvdyB9KSA9PiB7XG4gICAgICAvLyBDdXJyZW50bHksIHRoZXJlIGFyZSBubyByZWxpYWJsZSB3YXkgdG8gY2hlY2sgaWYgdGhlIFwic2Nyb2xsXCIgZXZlbnQgaXMgdHJpZ2dlciBkdWUgdG9cbiAgICAgIC8vIHVzZXIgZ2VzdHVyZSwgcHJvZ3JhbW1hdGljIHNjcm9sbGluZywgb3IgQ2hyb21lLXN5bnRoZXNpemVkIFwic2Nyb2xsXCIgZXZlbnQgdG8gY29tcGVuc2F0ZSBzaXplIGNoYW5nZS5cbiAgICAgIC8vIFRodXMsIHdlIHVzZSBvdXIgYmVzdC1lZmZvcnQgdG8gZ3Vlc3MgaWYgaXQgaXMgdHJpZ2dlcmVkIGJ5IHVzZXIgZ2VzdHVyZSwgYW5kIGRpc2FibGUgc3RpY2t5IGlmIGl0IGlzIGhlYWRpbmcgdG93YXJkcyB0aGUgc3RhcnQgZGlyZWN0aW9uLlxuXG4gICAgICBpZiAodGltZVN0YW1wTG93IDw9IGlnbm9yZVNjcm9sbEV2ZW50QmVmb3JlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgZGVib3VuY2UgXCJzY3JvbGxcIiBldmVudCwgdGhpcyBoYW5kbGVyIG1pZ2h0IGJlIGNhbGxlZCBhZnRlciBzcGluZVRvLm9uRW5kIChhLmsuYS4gYXJ0aWZpY2lhbCBzY3JvbGxpbmcpLlxuICAgICAgICAvLyBXZSBzaG91bGQgaWdub3JlIGRlYm91bmNlZCBldmVudCBmaXJlZCBhZnRlciBzY3JvbGxFbmQsIGJlY2F1c2Ugd2l0aG91dCBza2lwcGluZyB0aGVtLCB0aGUgdXNlckluaXRpYXRlZFNjcm9sbCBjYWxjdWxhdGVkIGJlbG93IHdpbGwgbm90IGJlIGFjY3VyYXRlLlxuICAgICAgICAvLyBUaHVzLCBvbiBhIGZhc3QgbWFjaGluZSwgYWRkaW5nIGVsZW1lbnRzIHN1cGVyIGZhc3Qgd2lsbCBsb3NlIHRoZSBcInN0aWNraW5lc3NcIi5cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgY29uc3QgeyBhdEJvdHRvbSwgYXRFbmQsIGF0U3RhcnQsIGF0VG9wIH0gPSBjb21wdXRlVmlld1N0YXRlKHsgbW9kZSwgdGFyZ2V0IH0pO1xuXG4gICAgICAgIHNldEF0Qm90dG9tKGF0Qm90dG9tKTtcbiAgICAgICAgc2V0QXRFbmQoYXRFbmQpO1xuICAgICAgICBzZXRBdFN0YXJ0KGF0U3RhcnQpO1xuICAgICAgICBzZXRBdFRvcChhdFRvcCk7XG5cbiAgICAgICAgLy8gQ2hyb21lIHdpbGwgZW1pdCBcInN5bnRoZXRpY1wiIHNjcm9sbCBldmVudCBpZiB0aGUgY29udGFpbmVyIGlzIHJlc2l6ZWQgb3IgYW4gZWxlbWVudCBpcyBhZGRlZFxuICAgICAgICAvLyBXZSBuZWVkIHRvIGlnbm9yZSB0aGVzZSBcInN5bnRoZXRpY1wiIGV2ZW50c1xuICAgICAgICAvLyBSZXBybzogSW4gcGxheWdyb3VuZCwgcHJlc3MgNC0xLTUtMS0xIChzbWFsbCwgYWRkIG9uZSwgbm9ybWFsLCBhZGQgb25lLCBhZGQgb25lKVxuICAgICAgICAvLyAgICAgICAgTm9tYXR0ZXIgaG93IGZhc3Qgb3Igc2xvdyB0aGUgc2VxdWVuY2UgaXMgYmVpbmcgcHJlc3NzZWQsIGl0IHNob3VsZCBzdGlsbCBzdGljayB0byB0aGUgYm90dG9tXG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0SGVpZ2h0OiBuZXh0T2Zmc2V0SGVpZ2h0LCBzY3JvbGxIZWlnaHQ6IG5leHRTY3JvbGxIZWlnaHQgfSA9IHRhcmdldDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0Q2hhbmdlZCA9IG5leHRPZmZzZXRIZWlnaHQgIT09IG9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsSGVpZ2h0Q2hhbmdlZCA9IG5leHRTY3JvbGxIZWlnaHQgIT09IHNjcm9sbEhlaWdodDtcblxuICAgICAgICBvZmZzZXRIZWlnaHRDaGFuZ2VkICYmIHNldE9mZnNldEhlaWdodChuZXh0T2Zmc2V0SGVpZ2h0KTtcbiAgICAgICAgc2Nyb2xsSGVpZ2h0Q2hhbmdlZCAmJiBzZXRTY3JvbGxIZWlnaHQobmV4dFNjcm9sbEhlaWdodCk7XG5cbiAgICAgICAgLy8gU3RpY2t5IG1lYW5zOlxuICAgICAgICAvLyAtIElmIGl0IGlzIHNjcm9sbGVkIHByb2dyYW1hdGljYWxseSwgd2UgYXJlIHN0aWxsIGluIHN0aWNreSBtb2RlXG4gICAgICAgIC8vIC0gSWYgaXQgaXMgc2Nyb2xsZWQgYnkgdGhlIHVzZXIsIHRoZW4gc3RpY2t5IG1lYW5zIGlmIHdlIGFyZSBhdCB0aGUgZW5kXG5cbiAgICAgICAgLy8gT25seSB1cGRhdGUgc3RpY2tpbmVzcyBpZiB0aGUgc2Nyb2xsIGV2ZW50IGlzIG5vdCBkdWUgdG8gc3ludGhldGljIHNjcm9sbCBkb25lIGJ5IENocm9tZVxuICAgICAgICAhb2Zmc2V0SGVpZ2h0Q2hhbmdlZCAmJiAhc2Nyb2xsSGVpZ2h0Q2hhbmdlZCAmJiBzZXRTdGlja3koYW5pbWF0aW5nIHx8IGF0RW5kKTtcblxuICAgICAgICAvLyBJZiBubyBzY3JvbGxUb3AgaXMgc2V0IChub3QgaW4gcHJvZ3JhbW1hdGljIHNjcm9sbGluZyBtb2RlKSwgd2Ugc2hvdWxkIHNldCBcImFuaW1hdGluZ1wiIHRvIGZhbHNlXG4gICAgICAgIC8vIFwiYW5pbWF0aW5nXCIgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIFwic3RpY2t5XCIgcHJvcGVydHlcbiAgICAgICAgc2Nyb2xsVG9wID09PSBudWxsICYmIHNldEFuaW1hdGluZyhmYWxzZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBhbmltYXRpbmcsXG4gICAgICBpZ25vcmVTY3JvbGxFdmVudEJlZm9yZVJlZixcbiAgICAgIG1vZGUsXG4gICAgICBvZmZzZXRIZWlnaHQsXG4gICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICBzY3JvbGxUb3AsXG4gICAgICBzZXRBbmltYXRpbmcsXG4gICAgICBzZXRBdEJvdHRvbSxcbiAgICAgIHNldEF0RW5kLFxuICAgICAgc2V0QXRTdGFydCxcbiAgICAgIHNldEF0VG9wLFxuICAgICAgc2V0T2Zmc2V0SGVpZ2h0LFxuICAgICAgc2V0U2Nyb2xsSGVpZ2h0LFxuICAgICAgc2V0U3RpY2t5LFxuICAgICAgdGFyZ2V0XG4gICAgXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVNjcm9sbEVuZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZ25vcmVTY3JvbGxFdmVudEJlZm9yZVJlZi5jdXJyZW50ID0gRGF0ZS5ub3coKTtcbiAgICBzZXRBbmltYXRpbmcoZmFsc2UpO1xuICAgIHNldFNjcm9sbFRvcChudWxsKTtcbiAgfSwgW2lnbm9yZVNjcm9sbEV2ZW50QmVmb3JlUmVmLCBzZXRTY3JvbGxUb3BdKTtcblxuICBjb25zdCBpbnRlcm5hbENvbnRleHQgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBvZmZzZXRIZWlnaHQsXG4gICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICBzZXRUYXJnZXRcbiAgICB9KSxcbiAgICBbb2Zmc2V0SGVpZ2h0LCBzY3JvbGxIZWlnaHQsIHNldFRhcmdldF1cbiAgKTtcblxuICBjb25zdCBzdGF0ZUNvbnRleHQgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBhbmltYXRpbmcsXG4gICAgICBhdEJvdHRvbSxcbiAgICAgIGF0RW5kLFxuICAgICAgYXRTdGFydCxcbiAgICAgIGF0VG9wLFxuICAgICAgbW9kZSxcbiAgICAgIHN0aWNreVxuICAgIH0pLFxuICAgIFthbmltYXRpbmcsIGF0Qm90dG9tLCBhdEVuZCwgYXRTdGFydCwgYXRUb3AsIG1vZGUsIHN0aWNreV1cbiAgKTtcblxuICBjb25zdCBmdW5jdGlvbkNvbnRleHQgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBzY3JvbGxUbyxcbiAgICAgIHNjcm9sbFRvQm90dG9tLFxuICAgICAgc2Nyb2xsVG9FbmQsXG4gICAgICBzY3JvbGxUb1N0YXJ0LFxuICAgICAgc2Nyb2xsVG9Ub3BcbiAgICB9KSxcbiAgICBbc2Nyb2xsVG8sIHNjcm9sbFRvQm90dG9tLCBzY3JvbGxUb0VuZCwgc2Nyb2xsVG9TdGFydCwgc2Nyb2xsVG9Ub3BdXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSB0aGUgXCJzY3JvbGxIZWlnaHRcIiB2YWx1ZSB0byBsYXRlc3Qgd2hlbiB0aGUgdXNlciBkbyBhIGZvY3VzIGluc2lkZSB0aGUgYm94LlxuICAgIC8vXG4gICAgLy8gVGhpcyBpcyBiZWNhdXNlOlxuICAgIC8vIC0gSW4gb3VyIGNvZGUgdGhhdCBtaXRpZ2F0ZSBDaHJvbWUgc3ludGhldGljIHNjcm9sbGluZywgdGhhdCBjb2RlIHdpbGwgbG9vayBhdCB3aGV0aGVyIFwic2Nyb2xsSGVpZ2h0XCIgdmFsdWUgaXMgbGF0ZXN0IG9yIG5vdC5cbiAgICAvLyAtIFRoYXQgY29kZSBvbmx5IHJ1biBvbiBcInNjcm9sbFwiIGV2ZW50LlxuICAgIC8vIC0gVGhhdCBtZWFucywgb24gZXZlcnkgXCJzY3JvbGxcIiBldmVudCwgaWYgdGhlIFwic2Nyb2xsSGVpZ2h0XCIgdmFsdWUgaXMgbm90IGxhdGVzdCwgd2Ugd2lsbCBza2lwIG1vZGlmeWluZyB0aGUgc3RpY2tpbmVzcy5cbiAgICAvLyAtIFRoYXQgbWVhbnMsIGlmIHRoZSB1c2VyIFwiZm9jdXNcIiB0byBhbiBlbGVtZW50IHRoYXQgY2F1c2UgdGhlIHNjcm9sbCB2aWV3IHRvIHNjcm9sbCB0byB0aGUgYm90dG9tLCB0aGUgdXNlciBhZ2VudCB3aWxsIGZpcmUgXCJzY3JvbGxcIiBldmVudC5cbiAgICAvLyAgIFNpbmNlIHRoZSBcInNjcm9sbEhlaWdodFwiIGlzIG5vdCBsYXRlc3QgdmFsdWUsIHRoaXMgXCJzY3JvbGxcIiBldmVudCB3aWxsIGJlIGlnbm9yZWQgYW5kIHN0aWNraW5lc3Mgd2lsbCBub3QgYmUgbW9kaWZpZWQuXG4gICAgLy8gLSBUaGF0IG1lYW5zLCBpZiB0aGUgdXNlciBcImZvY3VzXCIgdG8gYSBuZXdseSBhZGRlZCBlbGVtZW50IHRoYXQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgc2Nyb2xsIHZpZXcsIHRoZSBcInNjcm9sbCB0byBib3R0b21cIiBidXR0b24gd2lsbCBjb250aW51ZSB0byBzaG93LlxuICAgIC8vXG4gICAgLy8gUmVwcm8gaW4gQ2hyb21lOlxuICAgIC8vIDEuIEZpbGwgdXAgYSBzY3JvbGwgdmlld1xuICAgIC8vIDIuIFNjcm9sbCB1cCwgdGhlIFwic2Nyb2xsIHRvIGJvdHRvbVwiIGJ1dHRvbiBzaG91bGQgc2hvdyB1cFxuICAgIC8vIDMuIENsaWNrIFwiQWRkIGEgYnV0dG9uXCJcbiAgICAvLyA0LiBDbGljayBvbiB0aGUgc2Nyb2xsIHZpZXcgKHRvIHBzZXVkby1mb2N1cyBvbiBpdClcbiAgICAvLyA1LiBQcmVzcyBUQUIsIHRoZSBzY3JvbGwgdmlldyB3aWxsIGJlIGF0IHRoZSBib3R0b21cbiAgICAvL1xuICAgIC8vIEV4cGVjdDpcbiAgICAvLyAtIFRoZSBcInNjcm9sbCB0byBib3R0b21cIiBidXR0b24gc2hvdWxkIGJlIGdvbmUuXG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgY29uc3QgaGFuZGxlRm9jdXMgPSAoKSA9PiBzZXRTY3JvbGxIZWlnaHQodGFyZ2V0LnNjcm9sbEhlaWdodCk7XG5cbiAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzLCB7IGNhcHR1cmU6IHRydWUsIHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cyk7XG4gICAgfVxuICB9LCBbdGFyZ2V0XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8SW50ZXJuYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtpbnRlcm5hbENvbnRleHR9PlxuICAgICAgPEZ1bmN0aW9uQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17ZnVuY3Rpb25Db250ZXh0fT5cbiAgICAgICAgPFN0YXRlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17c3RhdGVDb250ZXh0fT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAge3RhcmdldCAmJiA8RXZlbnRTcHkgZGVib3VuY2U9e2RlYm91bmNlfSBuYW1lPVwic2Nyb2xsXCIgb25FdmVudD17aGFuZGxlU2Nyb2xsfSB0YXJnZXQ9e3RhcmdldH0gLz59XG4gICAgICAgICAge3RhcmdldCAmJiBzY3JvbGxUb3AgIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgPFNwaW5lVG8gbmFtZT1cInNjcm9sbFRvcFwiIG9uRW5kPXtoYW5kbGVTY3JvbGxFbmR9IHRhcmdldD17dGFyZ2V0fSB2YWx1ZT17c2Nyb2xsVG9wfSAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3RhdGVDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9GdW5jdGlvbkNvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9JbnRlcm5hbENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5Db21wb3Nlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoZWNrSW50ZXJ2YWw6IDEwMCxcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgZGVib3VuY2U6IDE3LFxuICBtb2RlOiB1bmRlZmluZWRcbn07XG5cbkNvbXBvc2VyLnByb3BUeXBlcyA9IHtcbiAgY2hlY2tJbnRlcnZhbDogUHJvcFR5cGVzLm51bWJlcixcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gIGRlYm91bmNlOiBQcm9wVHlwZXMubnVtYmVyLFxuICBtb2RlOiBQcm9wVHlwZXMub25lT2YoWydib3R0b20nLCAndG9wJ10pXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb21wb3NlcjtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9Db21wb3Nlci5qcyJdLCJuYW1lcyI6WyJNSU5fQ0hFQ0tfSU5URVJWQUwiLCJNT0RFX0JPVFRPTSIsIk1PREVfVE9QIiwiTkVBUl9FTkRfVEhSRVNIT0xEIiwiU0NST0xMX0RFQ0lTSU9OX0RVUkFUSU9OIiwic2V0SW1tZWRpYXRlSW50ZXJ2YWwiLCJmbiIsIm1zIiwic2V0SW50ZXJ2YWwiLCJjb21wdXRlVmlld1N0YXRlIiwibW9kZSIsInRhcmdldCIsIm9mZnNldEhlaWdodCIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvcCIsImF0Qm90dG9tIiwiYXRUb3AiLCJhdEVuZCIsImF0U3RhcnQiLCJpc0VuZCIsIkNvbXBvc2VyIiwiY2hlY2tJbnRlcnZhbCIsImNoaWxkcmVuIiwiZGVib3VuY2UiLCJpZ25vcmVTY3JvbGxFdmVudEJlZm9yZVJlZiIsInNldFNjcm9sbFRvcCIsInNldFRhcmdldCIsInNldE9mZnNldEhlaWdodCIsInNldFNjcm9sbEhlaWdodCIsImFuaW1hdGluZyIsInNldEFuaW1hdGluZyIsInNldEF0Qm90dG9tIiwic2V0QXRFbmQiLCJzZXRBdFRvcCIsInNldEF0U3RhcnQiLCJzdGlja3kiLCJzZXRTdGlja3kiLCJzY3JvbGxQb3NpdGlvbk9ic2VydmVyc1JlZiIsIm9ic2VydmVTY3JvbGxQb3NpdGlvbiIsImN1cnJlbnQiLCJwdXNoIiwic2Nyb2xsUG9zaXRpb25PYnNlcnZlcnMiLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiLCJoYW5kbGVTY3JvbGxFbmQiLCJEYXRlIiwibm93Iiwic2Nyb2xsVG8iLCJiZWhhdmlvciIsImNvbnNvbGUiLCJ3YXJuIiwic2Nyb2xsVG9Cb3R0b20iLCJzY3JvbGxUb1RvcCIsInNjcm9sbFRvRW5kIiwib3B0aW9ucyIsInNjcm9sbFRvU3RhcnQiLCJzdGlja3lCdXROb3RBdEVuZFNpbmNlIiwidGltZW91dCIsIk1hdGgiLCJtYXgiLCJjbGVhckludGVydmFsIiwiaGFuZGxlU2Nyb2xsIiwidGltZVN0YW1wTG93IiwibmV4dE9mZnNldEhlaWdodCIsIm5leHRTY3JvbGxIZWlnaHQiLCJvZmZzZXRIZWlnaHRDaGFuZ2VkIiwic2Nyb2xsSGVpZ2h0Q2hhbmdlZCIsImFjdHVhbFNjcm9sbFRvcCIsImZvckVhY2giLCJvYnNlcnZlciIsImludGVybmFsQ29udGV4dCIsImFuaW1hdGluZ1RvRW5kIiwic3RhdGVDb250ZXh0IiwiZnVuY3Rpb25Db250ZXh0IiwiaGFuZGxlRm9jdXMiLCJhZGRFdmVudExpc3RlbmVyIiwiY2FwdHVyZSIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwiYW55Iiwib25lT2YiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGtCQUFrQixHQUFHLEVBQTNCLEMsQ0FBK0I7O0FBQy9CLElBQU1DLFdBQVcsR0FBRyxRQUFwQjtBQUNBLElBQU1DLFFBQVEsR0FBRyxLQUFqQjtBQUNBLElBQU1DLGtCQUFrQixHQUFHLENBQTNCO0FBQ0EsSUFBTUMsd0JBQXdCLEdBQUcsRUFBakMsQyxDQUFxQzs7QUFFckMsU0FBU0Msb0JBQVQsQ0FBOEJDLEVBQTlCLEVBQWtDQyxFQUFsQyxFQUFzQztBQUNwQ0QsRUFBQUEsRUFBRTtBQUVGLFNBQU9FLFdBQVcsQ0FBQ0YsRUFBRCxFQUFLQyxFQUFMLENBQWxCO0FBQ0Q7O0FBRUQsU0FBU0UsZ0JBQVQsT0FBdUY7QUFBQSxNQUEzREMsSUFBMkQsUUFBM0RBLElBQTJEO0FBQUEseUJBQXJEQyxNQUFxRDtBQUFBLE1BQTNDQyxZQUEyQyxlQUEzQ0EsWUFBMkM7QUFBQSxNQUE3QkMsWUFBNkIsZUFBN0JBLFlBQTZCO0FBQUEsTUFBZkMsU0FBZSxlQUFmQSxTQUFlO0FBQ3JGLE1B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QyxRQUFuQztBQUE0QyxJQUFBLE9BQU8sRUFBRXVDLFlBQXJEO0FBQW1FLElBQUEsTUFBTSxFQUFFbkQ7QUFBM0UsSUFGYixFQUdHQSxNQUFNLElBQUlHLFNBQVMsS0FBSyxJQUF4QixpQkFDQyw2QkFBQyxnQkFBRDtBQUFTLElBQUEsSUFBSSxFQUFDLFdBQWQ7QUFBMEIsSUFBQSxLQUFLLEVBQUUrQixlQUFqQztBQUFrRCxJQUFBLE1BQU0sRUFBRWxDLE1BQTFEO0FBQWtFLElBQUEsS0FBSyxFQUFFRztBQUF6RSxJQUpKLENBREYsQ0FERixDQURGO0FBYUQsQ0ExU0Q7O0FBNFNBTSxRQUFRLENBQUM0RCxZQUFULEdBQXdCO0FBQ3RCM0QsRUFBQUEsYUFBYSxFQUFFLEdBRE87QUFFdEJDLEVBQUFBLFFBQVEsRUFBRTJELFNBRlk7QUFHdEIxRCxFQUFBQSxRQUFRLEVBQUUsRUFIWTtBQUl0QmIsRUFBQUEsSUFBSSxFQUFFdUU7QUFKZ0IsQ0FBeEI7QUFPQTdELFFBQVEsQ0FBQzhELFNBQVQsR0FBcUI7QUFDbkI3RCxFQUFBQSxhQUFhLEVBQUU4RCxtQkFBVUMsTUFETjtBQUVuQjlELEVBQUFBLFFBQVEsRUFBRTZELG1CQUFVRSxHQUZEO0FBR25COUQsRUFBQUEsUUFBUSxFQUFFNEQsbUJBQVVDLE1BSEQ7QUFJbkIxRSxFQUFBQSxJQUFJLEVBQUV5RSxtQkFBVUcsS0FBVixDQUFnQixDQUFDLFFBQUQsRUFBVyxLQUFYLENBQWhCO0FBSmEsQ0FBckI7ZUFPZWxFLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBFdmVudFNweSBmcm9tICcuLi9FdmVudFNweSc7XG5pbXBvcnQgRnVuY3Rpb25Db250ZXh0IGZyb20gJy4vRnVuY3Rpb25Db250ZXh0JztcbmltcG9ydCBJbnRlcm5hbENvbnRleHQgZnJvbSAnLi9JbnRlcm5hbENvbnRleHQnO1xuaW1wb3J0IFNwaW5lVG8gZnJvbSAnLi4vU3BpbmVUbyc7XG5pbXBvcnQgU3RhdGVDb250ZXh0IGZyb20gJy4vU3RhdGVDb250ZXh0JztcblxuY29uc3QgTUlOX0NIRUNLX0lOVEVSVkFMID0gMTc7IC8vIDEgZnJhbWVcbmNvbnN0IE1PREVfQk9UVE9NID0gJ2JvdHRvbSc7XG5jb25zdCBNT0RFX1RPUCA9ICd0b3AnO1xuY29uc3QgTkVBUl9FTkRfVEhSRVNIT0xEID0gMTtcbmNvbnN0IFNDUk9MTF9ERUNJU0lPTl9EVVJBVElPTiA9IDM0OyAvLyAyIGZyYW1lc1xuXG5mdW5jdGlvbiBzZXRJbW1lZGlhdGVJbnRlcnZhbChmbiwgbXMpIHtcbiAgZm4oKTtcblxuICByZXR1cm4gc2V0SW50ZXJ2YWwoZm4sIG1zKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVZpZXdTdGF0ZSh7IG1vZGUsIHRhcmdldDogeyBvZmZzZXRIZWlnaHQsIHNjcm9sbEhlaWdodCwgc2Nyb2xsVG9wIH0gfSkge1xuICBjb25zdCBhdEJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIG9mZnNldEhlaWdodCA8IE5FQVJfRU5EX1RIUkVTSE9MRDtcbiAgY29uc3QgYXRUb3AgPSBzY3JvbGxUb3AgPCBORUFSX0VORF9USFJFU0hPTEQ7XG5cbiAgY29uc3QgYXRFbmQgPSBtb2RlID09PSBNT0RFX1RPUCA/IGF0VG9wIDogYXRCb3R0b207XG4gIGNvbnN0IGF0U3RhcnQgPSBtb2RlICE9PSBNT0RFX1RPUCA/IGF0VG9wIDogYXRCb3R0b207XG5cbiAgcmV0dXJuIHtcbiAgICBhdEJvdHRvbSxcbiAgICBhdEVuZCxcbiAgICBhdFN0YXJ0LFxuICAgIGF0VG9wXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzRW5kKHNjcm9sbFRvcCwgbW9kZSkge1xuICByZXR1cm4gKG1vZGUgPT09IE1PREVfVE9QICYmIHNjcm9sbFRvcCA9PT0gMCkgfHwgKG1vZGUgPT09IE1PREVfQk9UVE9NICYmIHNjcm9sbFRvcCA9PT0gJzEwMCUnKTtcbn1cblxuY29uc3QgQ29tcG9zZXIgPSAoeyBjaGVja0ludGVydmFsLCBjaGlsZHJlbiwgZGVib3VuY2UsIG1vZGUgfSkgPT4ge1xuICBtb2RlID0gbW9kZSA9PT0gTU9ERV9UT1AgPyBNT0RFX1RPUCA6IE1PREVfQk9UVE9NO1xuXG4gIGNvbnN0IGlnbm9yZVNjcm9sbEV2ZW50QmVmb3JlUmVmID0gdXNlUmVmKDApO1xuICBjb25zdCBbc2Nyb2xsVG9wLCBzZXRTY3JvbGxUb3BdID0gdXNlU3RhdGUobW9kZSA9PT0gTU9ERV9UT1AgPyAwIDogJzEwMCUnKTtcbiAgY29uc3QgW3RhcmdldCwgc2V0VGFyZ2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIC8vIEludGVybmFsIGNvbnRleHRcbiAgY29uc3QgW29mZnNldEhlaWdodCwgc2V0T2Zmc2V0SGVpZ2h0XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbc2Nyb2xsSGVpZ2h0LCBzZXRTY3JvbGxIZWlnaHRdID0gdXNlU3RhdGUoMCk7XG5cbiAgLy8gU3RhdGUgY29udGV4dFxuICBjb25zdCBbYW5pbWF0aW5nLCBzZXRBbmltYXRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbYXRCb3R0b20sIHNldEF0Qm90dG9tXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbYXRFbmQsIHNldEF0RW5kXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbYXRUb3AsIHNldEF0VG9wXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbYXRTdGFydCwgc2V0QXRTdGFydF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzdGlja3ksIHNldFN0aWNreV0gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICAvLyBIaWdoLXJhdGUgc3RhdGUgY29udGV4dFxuICBjb25zdCBzY3JvbGxQb3NpdGlvbk9ic2VydmVyc1JlZiA9IHVzZVJlZihbXSk7XG4gIGNvbnN0IG9ic2VydmVTY3JvbGxQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIGZuID0+IHtcbiAgICAgIHNjcm9sbFBvc2l0aW9uT2JzZXJ2ZXJzUmVmLmN1cnJlbnQucHVzaChmbik7XG4gICAgICB0YXJnZXQgJiYgZm4oeyBzY3JvbGxUb3A6IHRhcmdldC5zY3JvbGxUb3AgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY3VycmVudDogc2Nyb2xsUG9zaXRpb25PYnNlcnZlcnMgfSA9IHNjcm9sbFBvc2l0aW9uT2JzZXJ2ZXJzUmVmO1xuICAgICAgICBjb25zdCBpbmRleCA9IHNjcm9sbFBvc2l0aW9uT2JzZXJ2ZXJzLmluZGV4T2YoZm4pO1xuXG4gICAgICAgIH5pbmRleCAmJiBzY3JvbGxQb3NpdGlvbk9ic2VydmVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIFtzY3JvbGxQb3NpdGlvbk9ic2VydmVyc1JlZiwgdGFyZ2V0XVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVNjcm9sbEVuZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZ25vcmVTY3JvbGxFdmVudEJlZm9yZVJlZi5jdXJyZW50ID0gRGF0ZS5ub3coKTtcbiAgICBzZXRBbmltYXRpbmcoZmFsc2UpO1xuICAgIHNldFNjcm9sbFRvcChudWxsKTtcbiAgfSwgW2lnbm9yZVNjcm9sbEV2ZW50QmVmb3JlUmVmLCBzZXRBbmltYXRpbmcsIHNldFNjcm9sbFRvcF0pO1xuXG4gIC8vIEZ1bmN0aW9uIGNvbnRleHRcbiAgY29uc3Qgc2Nyb2xsVG8gPSB1c2VDYWxsYmFjayhcbiAgICAoc2Nyb2xsVG9wLCB7IGJlaGF2aW9yIH0gPSB7fSkgPT4ge1xuICAgICAgaWYgKGJlaGF2aW9yID09PSAnYXV0bycpIHtcbiAgICAgICAgLy8gU3RvcCBhbnkgZXhpc3RpbmcgYW5pbWF0aW9uXG4gICAgICAgIGhhbmRsZVNjcm9sbEVuZCgpO1xuXG4gICAgICAgIC8vIEp1bXAgdG8gdGhlIHNjcm9sbCBwb3NpdGlvblxuICAgICAgICB0YXJnZXQuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wID09PSAnMTAwJScgPyB0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCA6IHNjcm9sbFRvcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJlaGF2aW9yICE9PSAnc21vb3RoJyAmJlxuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICdyZWFjdC1zY3JvbGwtdG8tYm90dG9tOiBQbGVhc2Ugc2V0IFwiYmVoYXZpb3JcIiB3aGVuIGNhbGxpbmcgXCJzY3JvbGxUb1wiLiBJbiBmdXR1cmUgdmVyc2lvbnMsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIHdpbGwgYmUgY2hhbmdlZCBmcm9tIHNtb290aCBzY3JvbGxpbmcgdG8gZGlzY3JldGUgc2Nyb2xsaW5nIHRvIGFsaWduIHdpdGggSFRNTCBTdGFuZGFyZC4nXG4gICAgICAgICAgKTtcblxuICAgICAgICBzZXRBbmltYXRpbmcodHJ1ZSk7XG4gICAgICAgIHNldFNjcm9sbFRvcChzY3JvbGxUb3ApO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZVNjcm9sbEVuZCwgc2V0QW5pbWF0aW5nLCBzZXRTY3JvbGxUb3AsIHRhcmdldF1cbiAgKTtcblxuICBjb25zdCBzY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKFxuICAgICh7IGJlaGF2aW9yIH0gPSB7fSkgPT4ge1xuICAgICAgYmVoYXZpb3IgIT09ICdzbW9vdGgnICYmXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAncmVhY3Qtc2Nyb2xsLXRvLWJvdHRvbTogUGxlYXNlIHNldCBcImJlaGF2aW9yXCIgd2hlbiBjYWxsaW5nIFwic2Nyb2xsVG9Cb3R0b21cIi4gSW4gZnV0dXJlIHZlcnNpb25zLCB0aGUgZGVmYXVsdCBiZWhhdmlvciB3aWxsIGJlIGNoYW5nZWQgZnJvbSBzbW9vdGggc2Nyb2xsaW5nIHRvIGRpc2NyZXRlIHNjcm9sbGluZyB0byBhbGlnbiB3aXRoIEhUTUwgU3RhbmRhcmQuJ1xuICAgICAgICApO1xuXG4gICAgICBzY3JvbGxUbygnMTAwJScsIHsgYmVoYXZpb3I6IGJlaGF2aW9yIHx8ICdzbW9vdGgnIH0pO1xuICAgIH0sXG4gICAgW3Njcm9sbFRvXVxuICApO1xuXG4gIGNvbnN0IHNjcm9sbFRvVG9wID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgYmVoYXZpb3IgfSA9IHt9KSA9PiB7XG4gICAgICBiZWhhdmlvciAhPT0gJ3Ntb290aCcgJiZcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdyZWFjdC1zY3JvbGwtdG8tYm90dG9tOiBQbGVhc2Ugc2V0IFwiYmVoYXZpb3JcIiB3aGVuIGNhbGxpbmcgXCJzY3JvbGxUb1RvcFwiLiBJbiBmdXR1cmUgdmVyc2lvbnMsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIHdpbGwgYmUgY2hhbmdlZCBmcm9tIHNtb290aCBzY3JvbGxpbmcgdG8gZGlzY3JldGUgc2Nyb2xsaW5nIHRvIGFsaWduIHdpdGggSFRNTCBTdGFuZGFyZC4nXG4gICAgICAgICk7XG5cbiAgICAgIHNjcm9sbFRvKDAsIHsgYmVoYXZpb3I6IGJlaGF2aW9yIHx8ICdzbW9vdGgnIH0pO1xuICAgIH0sXG4gICAgW3Njcm9sbFRvXVxuICApO1xuXG4gIGNvbnN0IHNjcm9sbFRvRW5kID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgYmVoYXZpb3IgfSA9IHt9KSA9PiB7XG4gICAgICBiZWhhdmlvciAhPT0gJ3Ntb290aCcgJiZcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdyZWFjdC1zY3JvbGwtdG8tYm90dG9tOiBQbGVhc2Ugc2V0IFwiYmVoYXZpb3JcIiB3aGVuIGNhbGxpbmcgXCJzY3JvbGxUb0VuZFwiLiBJbiBmdXR1cmUgdmVyc2lvbnMsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIHdpbGwgYmUgY2hhbmdlZCBmcm9tIHNtb290aCBzY3JvbGxpbmcgdG8gZGlzY3JldGUgc2Nyb2xsaW5nIHRvIGFsaWduIHdpdGggSFRNTCBTdGFuZGFyZC4nXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7IGJlaGF2aW9yOiBiZWhhdmlvciB8fCAnc21vb3RoJyB9O1xuXG4gICAgICBtb2RlID09PSBNT0RFX1RPUCA/IHNjcm9sbFRvVG9wKG9wdGlvbnMpIDogc2Nyb2xsVG9Cb3R0b20ob3B0aW9ucyk7XG4gICAgfSxcbiAgICBbbW9kZSwgc2Nyb2xsVG9Cb3R0b20sIHNjcm9sbFRvVG9wXVxuICApO1xuXG4gIGNvbnN0IHNjcm9sbFRvU3RhcnQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBiZWhhdmlvciB9ID0ge30pID0+IHtcbiAgICAgIGJlaGF2aW9yICE9PSAnc21vb3RoJyAmJlxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ3JlYWN0LXNjcm9sbC10by1ib3R0b206IFBsZWFzZSBzZXQgXCJiZWhhdmlvclwiIHdoZW4gY2FsbGluZyBcInNjcm9sbFRvU3RhcnRcIi4gSW4gZnV0dXJlIHZlcnNpb25zLCB0aGUgZGVmYXVsdCBiZWhhdmlvciB3aWxsIGJlIGNoYW5nZWQgZnJvbSBzbW9vdGggc2Nyb2xsaW5nIHRvIGRpc2NyZXRlIHNjcm9sbGluZyB0byBhbGlnbiB3aXRoIEhUTUwgU3RhbmRhcmQuJ1xuICAgICAgICApO1xuXG4gICAgICBjb25zdCBvcHRpb25zID0geyBiZWhhdmlvcjogYmVoYXZpb3IgfHwgJ3Ntb290aCcgfTtcblxuICAgICAgbW9kZSA9PT0gTU9ERV9UT1AgPyBzY3JvbGxUb0JvdHRvbShvcHRpb25zKSA6IHNjcm9sbFRvVG9wKG9wdGlvbnMpO1xuICAgIH0sXG4gICAgW21vZGUsIHNjcm9sbFRvQm90dG9tLCBzY3JvbGxUb1RvcF1cbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGxldCBzdGlja3lCdXROb3RBdEVuZFNpbmNlID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRJbW1lZGlhdGVJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGlmIChzdGlja3kgJiYgdGFyZ2V0ICYmICFjb21wdXRlVmlld1N0YXRlKHsgbW9kZSwgdGFyZ2V0IH0pLmF0RW5kKSB7XG4gICAgICAgICAgaWYgKCFzdGlja3lCdXROb3RBdEVuZFNpbmNlKSB7XG4gICAgICAgICAgICBzdGlja3lCdXROb3RBdEVuZFNpbmNlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKERhdGUubm93KCkgLSBzdGlja3lCdXROb3RBdEVuZFNpbmNlID4gU0NST0xMX0RFQ0lTSU9OX0RVUkFUSU9OKSB7XG4gICAgICAgICAgICAvLyBRdWlya3M6IEluIEZpcmVmb3gsIGFmdGVyIHVzZXIgc2Nyb2xsIGRvd24sIEZpcmVmb3ggZG8gdHdvIHRoaW5nczpcbiAgICAgICAgICAgIC8vICAgICAgICAgMS4gU2V0IHRvIGEgbmV3IFwic2Nyb2xsVG9wXCJcbiAgICAgICAgICAgIC8vICAgICAgICAgMi4gRmlyZSBcInNjcm9sbFwiIGV2ZW50XG4gICAgICAgICAgICAvLyAgICAgICAgIEZvciB3aGF0IHdlIG9ic2VydmVkLCAjMSBpcyBmaXJlZCBhYm91dCAyMG1zIGJlZm9yZSAjMi4gVGhlcmUgaXMgYSBjaGFuY2UgdGhhdCB0aGlzIHN0aWNreUNoZWNrVGltZW91dCBpcyBiZWluZyBzY2hlZHVsZWQgYmV0d2VlbiAxIGFuZCAyLlxuICAgICAgICAgICAgLy8gICAgICAgICBUaGF0IG1lYW5zLCBpZiB3ZSBqdXN0IGxvb2sgYXQgIzEgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCBzY3JvbGwsIHdlIHdpbGwgYWx3YXlzIHNjcm9sbCwgaW4gb3Bwb3NlIHRvIHRoZSB1c2VyJ3MgaW50ZW50aW9uLlxuICAgICAgICAgICAgLy8gUmVwcm86IE9wZW4gRmlyZWZveCwgc2V0IGNoZWNrSW50ZXJ2YWwgdG8gYSBsb3dlciBudW1iZXIsIGFuZCB0cnkgdG8gc2Nyb2xsIGJ5IGRyYWdnaW5nIHRoZSBzY3JvbGwgaGFuZGxlci4gSXQgd2lsbCBqdW1wIGJhY2suXG5cbiAgICAgICAgICAgICFhbmltYXRpbmcgJiYgc2Nyb2xsVG9FbmQoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgICAgICBzdGlja3lCdXROb3RBdEVuZFNpbmNlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0aWNreUJ1dE5vdEF0RW5kU2luY2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgTWF0aC5tYXgoTUlOX0NIRUNLX0lOVEVSVkFMLCBjaGVja0ludGVydmFsKSB8fCBNSU5fQ0hFQ0tfSU5URVJWQUwpO1xuXG4gICAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbCh0aW1lb3V0KTtcbiAgICB9XG4gIH0sIFthbmltYXRpbmcsIGNoZWNrSW50ZXJ2YWwsIG1vZGUsIHNjcm9sbFRvRW5kLCBzdGlja3ksIHRhcmdldF0pO1xuXG4gIGNvbnN0IGhhbmRsZVNjcm9sbCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHRpbWVTdGFtcExvdyB9KSA9PiB7XG4gICAgICAvLyBDdXJyZW50bHksIHRoZXJlIGFyZSBubyByZWxpYWJsZSB3YXkgdG8gY2hlY2sgaWYgdGhlIFwic2Nyb2xsXCIgZXZlbnQgaXMgdHJpZ2dlciBkdWUgdG9cbiAgICAgIC8vIHVzZXIgZ2VzdHVyZSwgcHJvZ3JhbW1hdGljIHNjcm9sbGluZywgb3IgQ2hyb21lLXN5bnRoZXNpemVkIFwic2Nyb2xsXCIgZXZlbnQgdG8gY29tcGVuc2F0ZSBzaXplIGNoYW5nZS5cbiAgICAgIC8vIFRodXMsIHdlIHVzZSBvdXIgYmVzdC1lZmZvcnQgdG8gZ3Vlc3MgaWYgaXQgaXMgdHJpZ2dlcmVkIGJ5IHVzZXIgZ2VzdHVyZSwgYW5kIGRpc2FibGUgc3RpY2t5IGlmIGl0IGlzIGhlYWRpbmcgdG93YXJkcyB0aGUgc3RhcnQgZGlyZWN0aW9uLlxuXG4gICAgICBpZiAodGltZVN0YW1wTG93IDw9IGlnbm9yZVNjcm9sbEV2ZW50QmVmb3JlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgZGVib3VuY2UgXCJzY3JvbGxcIiBldmVudCwgdGhpcyBoYW5kbGVyIG1pZ2h0IGJlIGNhbGxlZCBhZnRlciBzcGluZVRvLm9uRW5kIChhLmsuYS4gYXJ0aWZpY2lhbCBzY3JvbGxpbmcpLlxuICAgICAgICAvLyBXZSBzaG91bGQgaWdub3JlIGRlYm91bmNlZCBldmVudCBmaXJlZCBhZnRlciBzY3JvbGxFbmQsIGJlY2F1c2Ugd2l0aG91dCBza2lwcGluZyB0aGVtLCB0aGUgdXNlckluaXRpYXRlZFNjcm9sbCBjYWxjdWxhdGVkIGJlbG93IHdpbGwgbm90IGJlIGFjY3VyYXRlLlxuICAgICAgICAvLyBUaHVzLCBvbiBhIGZhc3QgbWFjaGluZSwgYWRkaW5nIGVsZW1lbnRzIHN1cGVyIGZhc3Qgd2lsbCBsb3NlIHRoZSBcInN0aWNraW5lc3NcIi5cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgY29uc3QgeyBhdEJvdHRvbSwgYXRFbmQsIGF0U3RhcnQsIGF0VG9wIH0gPSBjb21wdXRlVmlld1N0YXRlKHsgbW9kZSwgdGFyZ2V0IH0pO1xuXG4gICAgICAgIHNldEF0Qm90dG9tKGF0Qm90dG9tKTtcbiAgICAgICAgc2V0QXRFbmQoYXRFbmQpO1xuICAgICAgICBzZXRBdFN0YXJ0KGF0U3RhcnQpO1xuICAgICAgICBzZXRBdFRvcChhdFRvcCk7XG5cbiAgICAgICAgLy8gQ2hyb21lIHdpbGwgZW1pdCBcInN5bnRoZXRpY1wiIHNjcm9sbCBldmVudCBpZiB0aGUgY29udGFpbmVyIGlzIHJlc2l6ZWQgb3IgYW4gZWxlbWVudCBpcyBhZGRlZFxuICAgICAgICAvLyBXZSBuZWVkIHRvIGlnbm9yZSB0aGVzZSBcInN5bnRoZXRpY1wiIGV2ZW50c1xuICAgICAgICAvLyBSZXBybzogSW4gcGxheWdyb3VuZCwgcHJlc3MgNC0xLTUtMS0xIChzbWFsbCwgYWRkIG9uZSwgbm9ybWFsLCBhZGQgb25lLCBhZGQgb25lKVxuICAgICAgICAvLyAgICAgICAgTm9tYXR0ZXIgaG93IGZhc3Qgb3Igc2xvdyB0aGUgc2VxdWVuY2UgaXMgYmVpbmcgcHJlc3NlZCwgaXQgc2hvdWxkIHN0aWxsIHN0aWNrIHRvIHRoZSBib3R0b21cbiAgICAgICAgY29uc3QgeyBvZmZzZXRIZWlnaHQ6IG5leHRPZmZzZXRIZWlnaHQsIHNjcm9sbEhlaWdodDogbmV4dFNjcm9sbEhlaWdodCB9ID0gdGFyZ2V0O1xuICAgICAgICBjb25zdCBvZmZzZXRIZWlnaHRDaGFuZ2VkID0gbmV4dE9mZnNldEhlaWdodCAhPT0gb2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHRDaGFuZ2VkID0gbmV4dFNjcm9sbEhlaWdodCAhPT0gc2Nyb2xsSGVpZ2h0O1xuXG4gICAgICAgIG9mZnNldEhlaWdodENoYW5nZWQgJiYgc2V0T2Zmc2V0SGVpZ2h0KG5leHRPZmZzZXRIZWlnaHQpO1xuICAgICAgICBzY3JvbGxIZWlnaHRDaGFuZ2VkICYmIHNldFNjcm9sbEhlaWdodChuZXh0U2Nyb2xsSGVpZ2h0KTtcblxuICAgICAgICAvLyBTdGlja3kgbWVhbnM6XG4gICAgICAgIC8vIC0gSWYgaXQgaXMgc2Nyb2xsZWQgcHJvZ3JhbWF0aWNhbGx5LCB3ZSBhcmUgc3RpbGwgaW4gc3RpY2t5IG1vZGVcbiAgICAgICAgLy8gLSBJZiBpdCBpcyBzY3JvbGxlZCBieSB0aGUgdXNlciwgdGhlbiBzdGlja3kgbWVhbnMgaWYgd2UgYXJlIGF0IHRoZSBlbmRcblxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSBzdGlja2luZXNzIGlmIHRoZSBzY3JvbGwgZXZlbnQgaXMgbm90IGR1ZSB0byBzeW50aGV0aWMgc2Nyb2xsIGRvbmUgYnkgQ2hyb21lXG4gICAgICAgICFvZmZzZXRIZWlnaHRDaGFuZ2VkICYmXG4gICAgICAgICAgIXNjcm9sbEhlaWdodENoYW5nZWQgJiZcbiAgICAgICAgICBzZXRTdGlja3koXG4gICAgICAgICAgICAvLyBXZSBhcmUgc3RpY2t5IGlmIHdlIGFyZSBhbmltYXRpbmcgdG8gdGhlIGVuZCwgb3Igd2UgYXJlIGFscmVhZHkgYXQgdGhlIGVuZC5cbiAgICAgICAgICAgIC8vIFdlIGNhbiBiZSBcImFuaW1hdGluZyBidXQgbm90IHN0aWNreVwiIGJ5IGNhbGxpbmcgXCJzY3JvbGxUbygxMDApXCIgd2hlcmUgdGhlIGNvbnRhaW5lciBzY3JvbGxIZWlnaHQgaXMgMjAwcHguXG4gICAgICAgICAgICAoYW5pbWF0aW5nICYmIGlzRW5kKHNjcm9sbFRvcCwgbW9kZSkpIHx8IGF0RW5kXG4gICAgICAgICAgKTtcblxuICAgICAgICAvLyBJZiBubyBzY3JvbGxUb3AgaXMgc2V0IChub3QgaW4gcHJvZ3JhbW1hdGljIHNjcm9sbGluZyBtb2RlKSwgd2Ugc2hvdWxkIHNldCBcImFuaW1hdGluZ1wiIHRvIGZhbHNlXG4gICAgICAgIC8vIFwiYW5pbWF0aW5nXCIgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIFwic3RpY2t5XCIgcHJvcGVydHlcbiAgICAgICAgc2Nyb2xsVG9wID09PSBudWxsICYmIHNldEFuaW1hdGluZyhmYWxzZSk7XG5cbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3A6IGFjdHVhbFNjcm9sbFRvcCB9ID0gdGFyZ2V0O1xuXG4gICAgICAgIHNjcm9sbFBvc2l0aW9uT2JzZXJ2ZXJzUmVmLmN1cnJlbnQuZm9yRWFjaChvYnNlcnZlciA9PiBvYnNlcnZlcih7IHNjcm9sbFRvcDogYWN0dWFsU2Nyb2xsVG9wIH0pKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGFuaW1hdGluZyxcbiAgICAgIGlnbm9yZVNjcm9sbEV2ZW50QmVmb3JlUmVmLFxuICAgICAgbW9kZSxcbiAgICAgIG9mZnNldEhlaWdodCxcbiAgICAgIHNjcm9sbEhlaWdodCxcbiAgICAgIHNjcm9sbFBvc2l0aW9uT2JzZXJ2ZXJzUmVmLFxuICAgICAgc2Nyb2xsVG9wLFxuICAgICAgc2V0QW5pbWF0aW5nLFxuICAgICAgc2V0QXRCb3R0b20sXG4gICAgICBzZXRBdEVuZCxcbiAgICAgIHNldEF0U3RhcnQsXG4gICAgICBzZXRBdFRvcCxcbiAgICAgIHNldE9mZnNldEhlaWdodCxcbiAgICAgIHNldFNjcm9sbEhlaWdodCxcbiAgICAgIHNldFN0aWNreSxcbiAgICAgIHRhcmdldFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBpbnRlcm5hbENvbnRleHQgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBvYnNlcnZlU2Nyb2xsUG9zaXRpb24sXG4gICAgICBvZmZzZXRIZWlnaHQsXG4gICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICBzZXRUYXJnZXRcbiAgICB9KSxcbiAgICBbb2JzZXJ2ZVNjcm9sbFBvc2l0aW9uLCBvZmZzZXRIZWlnaHQsIHNjcm9sbEhlaWdodCwgc2V0VGFyZ2V0XVxuICApO1xuXG4gIGNvbnN0IGFuaW1hdGluZ1RvRW5kID0gYW5pbWF0aW5nICYmIGlzRW5kKHNjcm9sbFRvcCwgbW9kZSk7XG5cbiAgY29uc3Qgc3RhdGVDb250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgYW5pbWF0aW5nLFxuICAgICAgYW5pbWF0aW5nVG9FbmQsXG4gICAgICBhdEJvdHRvbSxcbiAgICAgIGF0RW5kLFxuICAgICAgYXRTdGFydCxcbiAgICAgIGF0VG9wLFxuICAgICAgbW9kZSxcbiAgICAgIHN0aWNreVxuICAgIH0pLFxuICAgIFthbmltYXRpbmcsIGFuaW1hdGluZ1RvRW5kLCBhdEJvdHRvbSwgYXRFbmQsIGF0U3RhcnQsIGF0VG9wLCBtb2RlLCBzdGlja3ldXG4gICk7XG5cbiAgY29uc3QgZnVuY3Rpb25Db250ZXh0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgc2Nyb2xsVG8sXG4gICAgICBzY3JvbGxUb0JvdHRvbSxcbiAgICAgIHNjcm9sbFRvRW5kLFxuICAgICAgc2Nyb2xsVG9TdGFydCxcbiAgICAgIHNjcm9sbFRvVG9wXG4gICAgfSksXG4gICAgW3Njcm9sbFRvLCBzY3JvbGxUb0JvdHRvbSwgc2Nyb2xsVG9FbmQsIHNjcm9sbFRvU3RhcnQsIHNjcm9sbFRvVG9wXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdGhlIFwic2Nyb2xsSGVpZ2h0XCIgdmFsdWUgdG8gbGF0ZXN0IHdoZW4gdGhlIHVzZXIgZG8gYSBmb2N1cyBpbnNpZGUgdGhlIGJveC5cbiAgICAvL1xuICAgIC8vIFRoaXMgaXMgYmVjYXVzZTpcbiAgICAvLyAtIEluIG91ciBjb2RlIHRoYXQgbWl0aWdhdGUgQ2hyb21lIHN5bnRoZXRpYyBzY3JvbGxpbmcsIHRoYXQgY29kZSB3aWxsIGxvb2sgYXQgd2hldGhlciBcInNjcm9sbEhlaWdodFwiIHZhbHVlIGlzIGxhdGVzdCBvciBub3QuXG4gICAgLy8gLSBUaGF0IGNvZGUgb25seSBydW4gb24gXCJzY3JvbGxcIiBldmVudC5cbiAgICAvLyAtIFRoYXQgbWVhbnMsIG9uIGV2ZXJ5IFwic2Nyb2xsXCIgZXZlbnQsIGlmIHRoZSBcInNjcm9sbEhlaWdodFwiIHZhbHVlIGlzIG5vdCBsYXRlc3QsIHdlIHdpbGwgc2tpcCBtb2RpZnlpbmcgdGhlIHN0aWNraW5lc3MuXG4gICAgLy8gLSBUaGF0IG1lYW5zLCBpZiB0aGUgdXNlciBcImZvY3VzXCIgdG8gYW4gZWxlbWVudCB0aGF0IGNhdXNlIHRoZSBzY3JvbGwgdmlldyB0byBzY3JvbGwgdG8gdGhlIGJvdHRvbSwgdGhlIHVzZXIgYWdlbnQgd2lsbCBmaXJlIFwic2Nyb2xsXCIgZXZlbnQuXG4gICAgLy8gICBTaW5jZSB0aGUgXCJzY3JvbGxIZWlnaHRcIiBpcyBub3QgbGF0ZXN0IHZhbHVlLCB0aGlzIFwic2Nyb2xsXCIgZXZlbnQgd2lsbCBiZSBpZ25vcmVkIGFuZCBzdGlja2luZXNzIHdpbGwgbm90IGJlIG1vZGlmaWVkLlxuICAgIC8vIC0gVGhhdCBtZWFucywgaWYgdGhlIHVzZXIgXCJmb2N1c1wiIHRvIGEgbmV3bHkgYWRkZWQgZWxlbWVudCB0aGF0IGlzIGF0IHRoZSBlbmQgb2YgdGhlIHNjcm9sbCB2aWV3LCB0aGUgXCJzY3JvbGwgdG8gYm90dG9tXCIgYnV0dG9uIHdpbGwgY29udGludWUgdG8gc2hvdy5cbiAgICAvL1xuICAgIC8vIFJlcHJvIGluIENocm9tZTpcbiAgICAvLyAxLiBGaWxsIHVwIGEgc2Nyb2xsIHZpZXdcbiAgICAvLyAyLiBTY3JvbGwgdXAsIHRoZSBcInNjcm9sbCB0byBib3R0b21cIiBidXR0b24gc2hvdWxkIHNob3cgdXBcbiAgICAvLyAzLiBDbGljayBcIkFkZCBhIGJ1dHRvblwiXG4gICAgLy8gNC4gQ2xpY2sgb24gdGhlIHNjcm9sbCB2aWV3ICh0byBwc2V1ZG8tZm9jdXMgb24gaXQpXG4gICAgLy8gNS4gUHJlc3MgVEFCLCB0aGUgc2Nyb2xsIHZpZXcgd2lsbCBiZSBhdCB0aGUgYm90dG9tXG4gICAgLy9cbiAgICAvLyBFeHBlY3Q6XG4gICAgLy8gLSBUaGUgXCJzY3JvbGwgdG8gYm90dG9tXCIgYnV0dG9uIHNob3VsZCBiZSBnb25lLlxuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gKCkgPT4gc2V0U2Nyb2xsSGVpZ2h0KHRhcmdldC5zY3JvbGxIZWlnaHQpO1xuXG4gICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cywgeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiB0cnVlIH0pO1xuXG4gICAgICByZXR1cm4gKCkgPT4gdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgaGFuZGxlRm9jdXMpO1xuICAgIH1cbiAgfSwgW3RhcmdldF0pO1xuXG4gIHJldHVybiAoXG4gICAgPEludGVybmFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17aW50ZXJuYWxDb250ZXh0fT5cbiAgICAgIDxGdW5jdGlvbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2Z1bmN0aW9uQ29udGV4dH0+XG4gICAgICAgIDxTdGF0ZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3N0YXRlQ29udGV4dH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIHt0YXJnZXQgJiYgPEV2ZW50U3B5IGRlYm91bmNlPXtkZWJvdW5jZX0gbmFtZT1cInNjcm9sbFwiIG9uRXZlbnQ9e2hhbmRsZVNjcm9sbH0gdGFyZ2V0PXt0YXJnZXR9IC8+fVxuICAgICAgICAgIHt0YXJnZXQgJiYgc2Nyb2xsVG9wICE9PSBudWxsICYmIChcbiAgICAgICAgICAgIDxTcGluZVRvIG5hbWU9XCJzY3JvbGxUb3BcIiBvbkVuZD17aGFuZGxlU2Nyb2xsRW5kfSB0YXJnZXQ9e3RhcmdldH0gdmFsdWU9e3Njcm9sbFRvcH0gLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0YXRlQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvRnVuY3Rpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgIDwvSW50ZXJuYWxDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuQ29tcG9zZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGVja0ludGVydmFsOiAxMDAsXG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIGRlYm91bmNlOiAxNyxcbiAgbW9kZTogdW5kZWZpbmVkXG59O1xuXG5Db21wb3Nlci5wcm9wVHlwZXMgPSB7XG4gIGNoZWNrSW50ZXJ2YWw6IFByb3BUeXBlcy5udW1iZXIsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBkZWJvdW5jZTogUHJvcFR5cGVzLm51bWJlcixcbiAgbW9kZTogUHJvcFR5cGVzLm9uZU9mKFsnYm90dG9tJywgJ3RvcCddKVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9zZXI7XG4iXX0=

@@ -12,3 +12,3 @@ "use strict";

var context = _react.default.createContext({
var context = /*#__PURE__*/_react.default.createContext({
scrollTo: function scrollTo() {

@@ -34,2 +34,2 @@ return 0;

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9GdW5jdGlvbkNvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInNjcm9sbFRvIiwic2Nyb2xsVG9Cb3R0b20iLCJzY3JvbGxUb0VuZCIsInNjcm9sbFRvU3RhcnQiLCJzY3JvbGxUb1RvcCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUdDLGVBQU1DLGFBQU4sQ0FBb0I7QUFDbENDLEVBQUFBLFFBQVEsRUFBRTtBQUFBLFdBQU0sQ0FBTjtBQUFBLEdBRHdCO0FBRWxDQyxFQUFBQSxjQUFjLEVBQUU7QUFBQSxXQUFNLENBQU47QUFBQSxHQUZrQjtBQUdsQ0MsRUFBQUEsV0FBVyxFQUFFO0FBQUEsV0FBTSxDQUFOO0FBQUEsR0FIcUI7QUFJbENDLEVBQUFBLGFBQWEsRUFBRTtBQUFBLFdBQU0sQ0FBTjtBQUFBLEdBSm1CO0FBS2xDQyxFQUFBQSxXQUFXLEVBQUU7QUFBQSxXQUFNLENBQU47QUFBQTtBQUxxQixDQUFwQixDQUFoQjs7QUFRQVAsT0FBTyxDQUFDUSxXQUFSLEdBQXNCLCtCQUF0QjtlQUVlUixPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgY29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBzY3JvbGxUbzogKCkgPT4gMCxcbiAgc2Nyb2xsVG9Cb3R0b206ICgpID0+IDAsXG4gIHNjcm9sbFRvRW5kOiAoKSA9PiAwLFxuICBzY3JvbGxUb1N0YXJ0OiAoKSA9PiAwLFxuICBzY3JvbGxUb1RvcDogKCkgPT4gMFxufSk7XG5cbmNvbnRleHQuZGlzcGxheU5hbWUgPSAnU2Nyb2xsVG9Cb3R0b21GdW5jdGlvbkNvbnRleHQnO1xuXG5leHBvcnQgZGVmYXVsdCBjb250ZXh0O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9GdW5jdGlvbkNvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInNjcm9sbFRvIiwic2Nyb2xsVG9Cb3R0b20iLCJzY3JvbGxUb0VuZCIsInNjcm9sbFRvU3RhcnQiLCJzY3JvbGxUb1RvcCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQSxJQUFNQSxPQUFPLGdCQUFHQyxlQUFNQyxhQUFOLENBQW9CO0FBQ2xDQyxFQUFBQSxRQUFRLEVBQUU7QUFBQSxXQUFNLENBQU47QUFBQSxHQUR3QjtBQUVsQ0MsRUFBQUEsY0FBYyxFQUFFO0FBQUEsV0FBTSxDQUFOO0FBQUEsR0FGa0I7QUFHbENDLEVBQUFBLFdBQVcsRUFBRTtBQUFBLFdBQU0sQ0FBTjtBQUFBLEdBSHFCO0FBSWxDQyxFQUFBQSxhQUFhLEVBQUU7QUFBQSxXQUFNLENBQU47QUFBQSxHQUptQjtBQUtsQ0MsRUFBQUEsV0FBVyxFQUFFO0FBQUEsV0FBTSxDQUFOO0FBQUE7QUFMcUIsQ0FBcEIsQ0FBaEI7O0FBUUFQLE9BQU8sQ0FBQ1EsV0FBUixHQUFzQiwrQkFBdEI7ZUFFZVIsTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IGNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgc2Nyb2xsVG86ICgpID0+IDAsXG4gIHNjcm9sbFRvQm90dG9tOiAoKSA9PiAwLFxuICBzY3JvbGxUb0VuZDogKCkgPT4gMCxcbiAgc2Nyb2xsVG9TdGFydDogKCkgPT4gMCxcbiAgc2Nyb2xsVG9Ub3A6ICgpID0+IDBcbn0pO1xuXG5jb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Njcm9sbFRvQm90dG9tRnVuY3Rpb25Db250ZXh0JztcblxuZXhwb3J0IGRlZmF1bHQgY29udGV4dDtcbiJdfQ==

@@ -12,3 +12,3 @@ "use strict";

var context = _react.default.createContext({
var context = /*#__PURE__*/_react.default.createContext({
offsetHeight: 0,

@@ -24,2 +24,2 @@ scrollHeight: 0,

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9JbnRlcm5hbENvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsIm9mZnNldEhlaWdodCIsInNjcm9sbEhlaWdodCIsInNldFRhcmdldCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUdDLGVBQU1DLGFBQU4sQ0FBb0I7QUFDbENDLEVBQUFBLFlBQVksRUFBRSxDQURvQjtBQUVsQ0MsRUFBQUEsWUFBWSxFQUFFLENBRm9CO0FBR2xDQyxFQUFBQSxTQUFTLEVBQUU7QUFBQSxXQUFNLENBQU47QUFBQTtBQUh1QixDQUFwQixDQUFoQjs7QUFNQUwsT0FBTyxDQUFDTSxXQUFSLEdBQXNCLCtCQUF0QjtlQUVlTixPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgY29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBvZmZzZXRIZWlnaHQ6IDAsXG4gIHNjcm9sbEhlaWdodDogMCxcbiAgc2V0VGFyZ2V0OiAoKSA9PiAwXG59KTtcblxuY29udGV4dC5kaXNwbGF5TmFtZSA9ICdTY3JvbGxUb0JvdHRvbUludGVybmFsQ29udGV4dCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRleHQ7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9JbnRlcm5hbENvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsIm9mZnNldEhlaWdodCIsInNjcm9sbEhlaWdodCIsInNldFRhcmdldCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQSxJQUFNQSxPQUFPLGdCQUFHQyxlQUFNQyxhQUFOLENBQW9CO0FBQ2xDQyxFQUFBQSxZQUFZLEVBQUUsQ0FEb0I7QUFFbENDLEVBQUFBLFlBQVksRUFBRSxDQUZvQjtBQUdsQ0MsRUFBQUEsU0FBUyxFQUFFO0FBQUEsV0FBTSxDQUFOO0FBQUE7QUFIdUIsQ0FBcEIsQ0FBaEI7O0FBTUFMLE9BQU8sQ0FBQ00sV0FBUixHQUFzQiwrQkFBdEI7ZUFFZU4sTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IGNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgb2Zmc2V0SGVpZ2h0OiAwLFxuICBzY3JvbGxIZWlnaHQ6IDAsXG4gIHNldFRhcmdldDogKCkgPT4gMFxufSk7XG5cbmNvbnRleHQuZGlzcGxheU5hbWUgPSAnU2Nyb2xsVG9Cb3R0b21JbnRlcm5hbENvbnRleHQnO1xuXG5leHBvcnQgZGVmYXVsdCBjb250ZXh0O1xuIl19

@@ -12,3 +12,3 @@ "use strict";

var context = _react.default.createContext({
var context = /*#__PURE__*/_react.default.createContext({
animating: false,

@@ -25,2 +25,2 @@ atBottom: true,

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9TdGF0ZUNvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImFuaW1hdGluZyIsImF0Qm90dG9tIiwiYXRFbmQiLCJhdFRvcCIsIm1vZGUiLCJzdGlja3kiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUEsSUFBTUEsT0FBTyxHQUFHQyxlQUFNQyxhQUFOLENBQW9CO0FBQ2xDQyxFQUFBQSxTQUFTLEVBQUUsS0FEdUI7QUFFbENDLEVBQUFBLFFBQVEsRUFBRSxJQUZ3QjtBQUdsQ0MsRUFBQUEsS0FBSyxFQUFFLElBSDJCO0FBSWxDQyxFQUFBQSxLQUFLLEVBQUUsSUFKMkI7QUFLbENDLEVBQUFBLElBQUksRUFBRSxRQUw0QjtBQU1sQ0MsRUFBQUEsTUFBTSxFQUFFO0FBTjBCLENBQXBCLENBQWhCOztBQVNBUixPQUFPLENBQUNTLFdBQVIsR0FBc0IsNEJBQXRCO2VBRWVULE8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCBjb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gIGFuaW1hdGluZzogZmFsc2UsXG4gIGF0Qm90dG9tOiB0cnVlLFxuICBhdEVuZDogdHJ1ZSxcbiAgYXRUb3A6IHRydWUsXG4gIG1vZGU6ICdib3R0b20nLFxuICBzdGlja3k6IHRydWVcbn0pO1xuXG5jb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Njcm9sbFRvQm90dG9tU3RhdGVDb250ZXh0JztcblxuZXhwb3J0IGRlZmF1bHQgY29udGV4dDtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9TdGF0ZUNvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImFuaW1hdGluZyIsImF0Qm90dG9tIiwiYXRFbmQiLCJhdFRvcCIsIm1vZGUiLCJzdGlja3kiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUEsSUFBTUEsT0FBTyxnQkFBR0MsZUFBTUMsYUFBTixDQUFvQjtBQUNsQ0MsRUFBQUEsU0FBUyxFQUFFLEtBRHVCO0FBRWxDQyxFQUFBQSxRQUFRLEVBQUUsSUFGd0I7QUFHbENDLEVBQUFBLEtBQUssRUFBRSxJQUgyQjtBQUlsQ0MsRUFBQUEsS0FBSyxFQUFFLElBSjJCO0FBS2xDQyxFQUFBQSxJQUFJLEVBQUUsUUFMNEI7QUFNbENDLEVBQUFBLE1BQU0sRUFBRTtBQU4wQixDQUFwQixDQUFoQjs7QUFTQVIsT0FBTyxDQUFDUyxXQUFSLEdBQXNCLDRCQUF0QjtlQUVlVCxPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgY29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBhbmltYXRpbmc6IGZhbHNlLFxuICBhdEJvdHRvbTogdHJ1ZSxcbiAgYXRFbmQ6IHRydWUsXG4gIGF0VG9wOiB0cnVlLFxuICBtb2RlOiAnYm90dG9tJyxcbiAgc3RpY2t5OiB0cnVlXG59KTtcblxuY29udGV4dC5kaXNwbGF5TmFtZSA9ICdTY3JvbGxUb0JvdHRvbVN0YXRlQ29udGV4dCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRleHQ7XG4iXX0=

@@ -69,3 +69,3 @@ "use strict";

var handleCancelAnimation = (0, _react.useCallback)(function () {
cancelAnimationFrame(animator);
cancelAnimationFrame(animator.current);
onEnd && onEnd(false);

@@ -80,7 +80,16 @@ }, [onEnd]);

});
target.addEventListener('wheel', handleCancelAnimation, {
passive: true
});
return function () {
return target.removeEventListener('pointerdown', handleCancelAnimation);
target.removeEventListener('pointerdown', handleCancelAnimation);
target.removeEventListener('wheel', handleCancelAnimation);
cancelAnimationFrame(animator.current);
};
}
}, [animate, handleCancelAnimation, name, target, value]);
return function () {
return cancelAnimationFrame(animator.current);
};
}, [animate, animator, handleCancelAnimation, name, target, value]);
return false;

@@ -97,2 +106,2 @@ };

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TcGluZVRvLmpzIl0sIm5hbWVzIjpbInNxdWFyZVN0ZXBwZXIiLCJjdXJyZW50IiwidG8iLCJzaWduIiwiTWF0aCIsInN0ZXAiLCJzcXJ0IiwiYWJzIiwibmV4dCIsIm1pbiIsIm1heCIsImZyb20iLCJzdGVwcGVyIiwiaW5kZXgiLCJpIiwiU3BpbmVUbyIsIm5hbWUiLCJvbkVuZCIsInRhcmdldCIsInZhbHVlIiwiYW5pbWF0b3IiLCJhbmltYXRlIiwic3RhcnQiLCJEYXRlIiwibm93IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ0b051bWJlciIsInNjcm9sbEhlaWdodCIsIm9mZnNldEhlaWdodCIsIm5leHRWYWx1ZSIsImhhbmRsZUNhbmNlbEFuaW1hdGlvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJmdW5jIiwiYW55Iiwib25lT2ZUeXBlIiwibnVtYmVyIiwib25lT2YiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTs7OztBQUhBO0FBS0EsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFBZ0NDLEVBQWhDLEVBQW9DO0FBQ2xDLE1BQU1DLElBQUksR0FBR0MsSUFBSSxDQUFDRCxJQUFMLENBQVVELEVBQUUsR0FBR0QsT0FBZixDQUFiO0FBQ0EsTUFBTUksSUFBSSxHQUFHRCxJQUFJLENBQUNFLElBQUwsQ0FBVUYsSUFBSSxDQUFDRyxHQUFMLENBQVNMLEVBQUUsR0FBR0QsT0FBZCxDQUFWLENBQWI7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sR0FBR0ksSUFBSSxHQUFHRixJQUE5Qjs7QUFFQSxNQUFJQSxJQUFJLEdBQUcsQ0FBWCxFQUFjO0FBQ1osV0FBT0MsSUFBSSxDQUFDSyxHQUFMLENBQVNQLEVBQVQsRUFBYU0sSUFBYixDQUFQO0FBQ0Q7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QUF4QixFQUF1Q0QscUJBQXZDLEVBQThEO0FBQUVFLFFBQUFBLE9BQU8sRUFBRTtBQUFYLE9BQTlEO0FBRUEsYUFBTztBQUFBLGVBQU1mLE1BQU0sQ0FBQ2dCLG1CQUFQLENBQTJCLGFBQTNCLEVBQTBDSCxxQkFBMUMsQ0FBTjtBQUFBLE9BQVA7QUFDRDtBQUNGLEdBUkQsRUFRRyxDQUFDVixPQUFELEVBQVVVLHFCQUFWLEVBQWlDZixJQUFqQyxFQUF1Q0UsTUFBdkMsRUFBK0NDLEtBQS9DLENBUkg7QUFVQSxTQUFPLEtBQVA7QUFDRCxDQS9DRDs7QUFpREFKLE9BQU8sQ0FBQ29CLFNBQVIsR0FBb0I7QUFDbEJuQixFQUFBQSxJQUFJLEVBQUVvQixtQkFBVUMsTUFBVixDQUFpQkMsVUFETDtBQUVsQnJCLEVBQUFBLEtBQUssRUFBRW1CLG1CQUFVRyxJQUZDO0FBR2xCckIsRUFBQUEsTUFBTSxFQUFFa0IsbUJBQVVJLEdBQVYsQ0FBY0YsVUFISjtBQUlsQm5CLEVBQUFBLEtBQUssRUFBRWlCLG1CQUFVSyxTQUFWLENBQW9CLENBQUNMLG1CQUFVTSxNQUFYLEVBQW1CTixtQkFBVU8sS0FBVixDQUFnQixDQUFDLE1BQUQsQ0FBaEIsQ0FBbkIsQ0FBcEIsRUFBbUVMO0FBSnhELENBQXBCO2VBT2V2QixPIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWzAsIDEsIDEuNSwgNV0gfV0gKi9cblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gc3F1YXJlU3RlcHBlcihjdXJyZW50LCB0bykge1xuICBjb25zdCBzaWduID0gTWF0aC5zaWduKHRvIC0gY3VycmVudCk7XG4gIGNvbnN0IHN0ZXAgPSBNYXRoLnNxcnQoTWF0aC5hYnModG8gLSBjdXJyZW50KSk7XG4gIGNvbnN0IG5leHQgPSBjdXJyZW50ICsgc3RlcCAqIHNpZ247XG5cbiAgaWYgKHNpZ24gPiAwKSB7XG4gICAgcmV0dXJuIE1hdGgubWluKHRvLCBuZXh0KTtcbiAgfVxuXG4gIHJldHVybiBNYXRoLm1heCh0bywgbmV4dCk7XG59XG5cbmZ1bmN0aW9uIHN0ZXAoZnJvbSwgdG8sIHN0ZXBwZXIsIGluZGV4KSB7XG4gIGxldCBuZXh0ID0gZnJvbTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGluZGV4OyBpKyspIHtcbiAgICBuZXh0ID0gc3RlcHBlcihuZXh0LCB0byk7XG4gIH1cblxuICByZXR1cm4gbmV4dDtcbn1cblxuY29uc3QgU3BpbmVUbyA9ICh7IG5hbWUsIG9uRW5kLCB0YXJnZXQsIHZhbHVlIH0pID0+IHtcbiAgY29uc3QgYW5pbWF0b3IgPSB1c2VSZWYoKTtcblxuICBjb25zdCBhbmltYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5hbWUsIGZyb20sIHRvLCBpbmRleCwgc3RhcnQgPSBEYXRlLm5vdygpKSA9PiB7XG4gICAgICBpZiAodG8gPT09ICcxMDAlJyB8fCB0eXBlb2YgdG8gPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGFuaW1hdG9yLmN1cnJlbnQpO1xuXG4gICAgICAgIGFuaW1hdG9yLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRvTnVtYmVyID0gdG8gPT09ICcxMDAlJyA/IHRhcmdldC5zY3JvbGxIZWlnaHQgLSB0YXJnZXQub2Zmc2V0SGVpZ2h0IDogdG87XG4gICAgICAgICAgICBsZXQgbmV4dFZhbHVlID0gc3RlcChmcm9tLCB0b051bWJlciwgc3F1YXJlU3RlcHBlciwgKERhdGUubm93KCkgLSBzdGFydCkgLyA1KTtcblxuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHRvTnVtYmVyIC0gbmV4dFZhbHVlKSA8IDEuNSkge1xuICAgICAgICAgICAgICBuZXh0VmFsdWUgPSB0b051bWJlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGFyZ2V0W25hbWVdID0gbmV4dFZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodG9OdW1iZXIgPT09IG5leHRWYWx1ZSkge1xuICAgICAgICAgICAgICBvbkVuZCAmJiBvbkVuZCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFuaW1hdGUobmFtZSwgZnJvbSwgdG8sIGluZGV4ICsgMSwgc3RhcnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbYW5pbWF0b3IsIG9uRW5kLCB0YXJnZXRdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQ2FuY2VsQW5pbWF0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGFuaW1hdG9yKTtcbiAgICBvbkVuZCAmJiBvbkVuZChmYWxzZSk7XG4gIH0sIFtvbkVuZF0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgYW5pbWF0ZShuYW1lLCB0YXJnZXRbbmFtZV0sIHZhbHVlLCAxKTtcblxuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZUNhbmNlbEFuaW1hdGlvbiwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuXG4gICAgICByZXR1cm4gKCkgPT4gdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlQ2FuY2VsQW5pbWF0aW9uKTtcbiAgICB9XG4gIH0sIFthbmltYXRlLCBoYW5kbGVDYW5jZWxBbmltYXRpb24sIG5hbWUsIHRhcmdldCwgdmFsdWVdKTtcblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5TcGluZVRvLnByb3BUeXBlcyA9IHtcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG4gIHRhcmdldDogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVkLFxuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLm9uZU9mKFsnMTAwJSddKV0pLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNwaW5lVG87XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TcGluZVRvLmpzIl0sIm5hbWVzIjpbInNxdWFyZVN0ZXBwZXIiLCJjdXJyZW50IiwidG8iLCJzaWduIiwiTWF0aCIsInN0ZXAiLCJzcXJ0IiwiYWJzIiwibmV4dCIsIm1pbiIsIm1heCIsImZyb20iLCJzdGVwcGVyIiwiaW5kZXgiLCJpIiwiU3BpbmVUbyIsIm5hbWUiLCJvbkVuZCIsInRhcmdldCIsInZhbHVlIiwiYW5pbWF0b3IiLCJhbmltYXRlIiwic3RhcnQiLCJEYXRlIiwibm93IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ0b051bWJlciIsInNjcm9sbEhlaWdodCIsIm9mZnNldEhlaWdodCIsIm5leHRWYWx1ZSIsImhhbmRsZUNhbmNlbEFuaW1hdGlvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJmdW5jIiwiYW55Iiwib25lT2ZUeXBlIiwibnVtYmVyIiwib25lT2YiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTs7OztBQUhBO0FBS0EsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFBZ0NDLEVBQWhDLEVBQW9DO0FBQ2xDLE1BQU1DLElBQUksR0FBR0MsSUFBSSxDQUFDRCxJQUFMLENBQVVELEVBQUUsR0FBR0QsT0FBZixDQUFiO0FBQ0EsTUFBTUksSUFBSSxHQUFHRCxJQUFJLENBQUNFLElBQUwsQ0FBVUYsSUFBSSxDQUFDRyxHQUFMLENBQVNMLEVBQUUsR0FBR0QsT0FBZCxDQUFWLENBQWI7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sR0FBR0ksSUFBSSxHQUFHRixJQUE5Qjs7QUFFQSxNQUFJQSxJQUFJLEdBQUcsQ0FBWCxFQUFjO0FBQ1osV0FBT0MsSUFBSSxDQUFDSyxHQUFMLENBQVNQLEVBQVQsRUFBYU0sSUFBYixDQUFQO0FBQ0Q7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YmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbMCwgMSwgMS41LCA1XSB9XSAqL1xuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5mdW5jdGlvbiBzcXVhcmVTdGVwcGVyKGN1cnJlbnQsIHRvKSB7XG4gIGNvbnN0IHNpZ24gPSBNYXRoLnNpZ24odG8gLSBjdXJyZW50KTtcbiAgY29uc3Qgc3RlcCA9IE1hdGguc3FydChNYXRoLmFicyh0byAtIGN1cnJlbnQpKTtcbiAgY29uc3QgbmV4dCA9IGN1cnJlbnQgKyBzdGVwICogc2lnbjtcblxuICBpZiAoc2lnbiA+IDApIHtcbiAgICByZXR1cm4gTWF0aC5taW4odG8sIG5leHQpO1xuICB9XG5cbiAgcmV0dXJuIE1hdGgubWF4KHRvLCBuZXh0KTtcbn1cblxuZnVuY3Rpb24gc3RlcChmcm9tLCB0bywgc3RlcHBlciwgaW5kZXgpIHtcbiAgbGV0IG5leHQgPSBmcm9tO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5kZXg7IGkrKykge1xuICAgIG5leHQgPSBzdGVwcGVyKG5leHQsIHRvKTtcbiAgfVxuXG4gIHJldHVybiBuZXh0O1xufVxuXG5jb25zdCBTcGluZVRvID0gKHsgbmFtZSwgb25FbmQsIHRhcmdldCwgdmFsdWUgfSkgPT4ge1xuICBjb25zdCBhbmltYXRvciA9IHVzZVJlZigpO1xuXG4gIGNvbnN0IGFuaW1hdGUgPSB1c2VDYWxsYmFjayhcbiAgICAobmFtZSwgZnJvbSwgdG8sIGluZGV4LCBzdGFydCA9IERhdGUubm93KCkpID0+IHtcbiAgICAgIGlmICh0byA9PT0gJzEwMCUnIHx8IHR5cGVvZiB0byA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbWF0b3IuY3VycmVudCk7XG5cbiAgICAgICAgYW5pbWF0b3IuY3VycmVudCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgdG9OdW1iZXIgPSB0byA9PT0gJzEwMCUnID8gdGFyZ2V0LnNjcm9sbEhlaWdodCAtIHRhcmdldC5vZmZzZXRIZWlnaHQgOiB0bztcbiAgICAgICAgICAgIGxldCBuZXh0VmFsdWUgPSBzdGVwKGZyb20sIHRvTnVtYmVyLCBzcXVhcmVTdGVwcGVyLCAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDUpO1xuXG4gICAgICAgICAgICBpZiAoTWF0aC5hYnModG9OdW1iZXIgLSBuZXh0VmFsdWUpIDwgMS41KSB7XG4gICAgICAgICAgICAgIG5leHRWYWx1ZSA9IHRvTnVtYmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YXJnZXRbbmFtZV0gPSBuZXh0VmFsdWU7XG5cbiAgICAgICAgICAgIGlmICh0b051bWJlciA9PT0gbmV4dFZhbHVlKSB7XG4gICAgICAgICAgICAgIG9uRW5kICYmIG9uRW5kKHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYW5pbWF0ZShuYW1lLCBmcm9tLCB0bywgaW5kZXggKyAxLCBzdGFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFthbmltYXRvciwgb25FbmQsIHRhcmdldF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVDYW5jZWxBbmltYXRpb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbWF0b3IuY3VycmVudCk7XG4gICAgb25FbmQgJiYgb25FbmQoZmFsc2UpO1xuICB9LCBbb25FbmRdKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGFuaW1hdGUobmFtZSwgdGFyZ2V0W25hbWVdLCB2YWx1ZSwgMSk7XG5cbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVDYW5jZWxBbmltYXRpb24sIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIGhhbmRsZUNhbmNlbEFuaW1hdGlvbiwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVDYW5jZWxBbmltYXRpb24pO1xuICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBoYW5kbGVDYW5jZWxBbmltYXRpb24pO1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShhbmltYXRvci5jdXJyZW50KTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKGFuaW1hdG9yLmN1cnJlbnQpO1xuICB9LCBbYW5pbWF0ZSwgYW5pbWF0b3IsIGhhbmRsZUNhbmNlbEFuaW1hdGlvbiwgbmFtZSwgdGFyZ2V0LCB2YWx1ZV0pO1xuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cblNwaW5lVG8ucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG9uRW5kOiBQcm9wVHlwZXMuZnVuYyxcbiAgdGFyZ2V0OiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMub25lT2YoWycxMDAlJ10pXSkuaXNSZXF1aXJlZFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3BpbmVUbztcbiJdfQ==
{
"name": "react-scroll-to-bottom",
"version": "2.0.1-master.e0fa23e",
"version": "2.0.1-master.e7d148e",
"description": "React container that will auto scroll to bottom",

@@ -24,6 +24,8 @@ "keywords": [

"scripts": {
"build": "babel --out-dir lib --ignore **/*.spec.js,**/*.test.js --source-maps inline --verbose src/",
"build": "npm run build:babel",
"build:babel": "babel --out-dir lib --ignore **/*.spec.js,**/*.test.js --source-maps inline --verbose src/",
"eslint": "eslint src/**/*.js --ignore-pattern *.spec.js --ignore-pattern *.test.js",
"start": "npm run build -- --watch",
"test": "echo no test specified"
"prestart": "npm run build:babel",
"start": "npm run start:babel",
"start:babel": "npm run build:babel -- --skip-initial-build --watch"
},

@@ -41,13 +43,18 @@ "author": "William Wong <compulim@hotmail.com> (http://compulim.info/)",

"devDependencies": {
"@babel/cli": "^7.8.4",
"@babel/core": "^7.9.6",
"@babel/plugin-proposal-object-rest-spread": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"@babel/preset-react": "^7.9.4",
"babel-jest": "^26.0.1",
"jest": "^26.0.1"
"@babel/cli": "^7.10.3",
"@babel/core": "^7.10.3",
"@babel/plugin-proposal-object-rest-spread": "^7.10.3",
"@babel/preset-env": "^7.10.3",
"@babel/preset-react": "^7.10.1",
"babel-eslint": "^10.1.0",
"babel-plugin-transform-inline-environment-variables": "^0.4.3",
"eslint": "^7.3.0",
"eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-react": "^7.20.0",
"eslint-plugin-react-hooks": "^4.0.4",
"prettier": "^2.0.5"
},
"dependencies": {
"classnames": "^2.2.6",
"glamor": "^2.20.40",
"classnames": "2.2.6",
"glamor": "2.20.40",
"prop-types": "15.7.2"

@@ -54,0 +61,0 @@ },

# react-scroll-to-bottom
[![npm version](https://badge.fury.io/js/react-scroll-to-bottom.svg)](https://badge.fury.io/js/react-scroll-to-bottom) [![Build Status](https://travis-ci.org/compulim/react-scroll-to-bottom.svg?branch=master)](https://travis-ci.org/compulim/react-scroll-to-bottom)
[![npm version](https://badge.fury.io/js/react-scroll-to-bottom.svg)](https://badge.fury.io/js/react-scroll-to-bottom) ![Node.js CI](https://github.com/compulim/react-scroll-to-bottom/workflows/Node.js%20CI/badge.svg)

@@ -13,4 +13,13 @@ React container that will auto scroll to bottom or top if new content is added and viewport is at the bottom, similar to `tail -f`. Otherwise, a "jump to bottom" button will be shown to allow user to quickly jump to bottom.

Starting from `react-scroll-to-bottom@2`, we requires React 16.8.6 or above. This enable developers to use React Hooks to add features to the scroll view.
## Upcoming
- `scrollToBottom`/`scrollToEnd`/`scrollToStart`/`scrollToTop` now accept an option `{ behavior: 'auto' | 'smooth' }`
- Without the option, it is by default to artificial smooth scrolling (`smooth`), to keep existing behavior
- This behavior may change in the future, by defaulting to discrete scrolling (`auto`), to better align with HTML `DOMElement.scrollIntoView` standard
- During the transition, please always pass `{ behavior: 'smooth' }` to keep existing behavior
## [2.0.0] - 2020-05-07
- Starting from `react-scroll-to-bottom@2`, we requires React 16.8.6 or above. This enable developers to use React Hooks to add features to the scroll view.
# Sample code

@@ -187,2 +196,7 @@

<tr>
<td><code>useObserveScrollPosition</code></td>
<td><code>(observer: (({ scrollTop: number }) => void) | false) => void</code></td>
<td>Observe scroll position change by passing a callback function</td>
</tr>
<tr>
<td><code>useScrollTo</code></td>

@@ -215,2 +229,4 @@ <td><code>(scrollTop: number | '100%') => void</code></td>

> Callback function passed to `useObserveScrollPosition` will be called rapidly during scrolling. To unsubscribe, pass a falsy value.
### State context

@@ -235,2 +251,7 @@

<tr>
<td><code>useAnimatingToEnd</code></td>
<td><code>boolean</code></td>
<td><code>true</code> if the panel is animating scroll effect and towards the end (depends on <code>mode</code>)</td>
</tr>
<tr>
<td><code>useAtBottom</code></td>

@@ -237,0 +258,0 @@ <td><code>boolean</code></td>