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
1.3.2-master.d0df2f1

4

CHANGELOG.md

@@ -8,2 +8,6 @@ # Changelog

## [Unreleased]
### 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)

@@ -10,0 +14,0 @@ ## [1.3.1] - 2019-02-13

51

lib/ScrollToBottom/Composer.js

@@ -126,2 +126,4 @@ "use strict";

internalContext: {
offsetHeight: 0,
scrollHeight: 0,
setTarget: function setTarget(target) {

@@ -228,3 +230,4 @@ return _this.setState(function () {

if (target) {
var scrollTop = state.scrollTop,
var internalContext = state.internalContext,
scrollTop = state.scrollTop,
stateContext = state.stateContext;

@@ -238,2 +241,3 @@

var nextInternalContext = internalContext;
var nextStateContext = stateContext;

@@ -251,11 +255,36 @@ nextStateContext = (0, _simpleUpdateIn.default)(nextStateContext, ['atBottom'], function () {

return atTop;
}); // Sticky means:
}); // Chrome will emit "synthetic" scroll event if the container is resized or an element is added
// We need to ignore these "synthetic" events
// 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
var offsetHeight = target.offsetHeight,
scrollHeight = target.scrollHeight;
var resized = offsetHeight !== internalContext.offsetHeight;
var elementChanged = scrollHeight !== internalContext.scrollHeight;
if (resized) {
nextInternalContext = (0, _simpleUpdateIn.default)(nextInternalContext, ['offsetHeight'], function () {
return offsetHeight;
});
}
if (elementChanged) {
nextInternalContext = (0, _simpleUpdateIn.default)(nextInternalContext, ['scrollHeight'], function () {
return scrollHeight;
});
} // Sticky means:
// - If it is scrolled programatically, we are still in sticky mode
// - If it is scrolled by the user, then sticky means if we are at the end
// Only update stickiness if the scroll event is not due to synthetic scroll done by Chrome
nextStateContext = (0, _simpleUpdateIn.default)(nextStateContext, ['sticky'], function () {
return stateContext.animating ? true : atEnd;
}); // If no scrollTop is set (not in programmatic scrolling mode), we should set "animating" to false
if (!resized && !elementChanged) {
nextStateContext = (0, _simpleUpdateIn.default)(nextStateContext, ['sticky'], function () {
return stateContext.animating ? true : 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
if (scrollTop === null) {

@@ -267,7 +296,7 @@ nextStateContext = (0, _simpleUpdateIn.default)(nextStateContext, ['animating'], function () {

if (stateContext !== nextStateContext) {
return {
stateContext: nextStateContext
};
}
return _objectSpread({}, internalContext === nextInternalContext ? {} : {
internalContext: nextInternalContext
}, stateContext === nextStateContext ? {} : {
stateContext: nextStateContext
});
}

@@ -335,2 +364,2 @@ }, function () {

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9Db21wb3Nlci5qcyJdLCJuYW1lcyI6WyJNSU5fQ0hFQ0tfSU5URVJWQUwiLCJORUFSX0VORF9USFJFU0hPTEQiLCJTQ1JPTExfREVDSVNJT05fRFVSQVRJT04iLCJzZXRJbW1lZGlhdGVJbnRlcnZhbCIsImZuIiwibXMiLCJzZXRJbnRlcnZhbCIsImNvbXB1dGVWaWV3U3RhdGUiLCJtb2RlIiwic3RhdGVDb250ZXh0IiwidGFyZ2V0Iiwib2Zmc2V0SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0Iiwic2Nyb2xsVG9wIiwiYXRCb3R0b20iLCJhdFRvcCIsImF0RW5kIiwiYXRTdGFydCIsIkNvbXBvc2VyIiwicHJvcHMiLCJoYW5kbGVTY3JvbGwiLCJiaW5kIiwiaGFuZGxlU2Nyb2xsRW5kIiwiX2lnbm9yZVNjcm9sbEV2ZW50QmVmb3JlIiwic3RhdGUiLCJmdW5jdGlvbkNvbnRleHQiLCJzY3JvbGxUbyIsInNldFN0YXRlIiwic2Nyb2xsVG9Cb3R0b20iLCJzY3JvbGxUb0VuZCIsInNjcm9sbFRvVG9wIiwic2Nyb2xsVG9TdGFydCIsImludGVybmFsQ29udGV4dCIsInNldFRhcmdldCIsImFuaW1hdGluZyIsInN0aWNreSIsImVuYWJsZVdvcmtlciIsImNsZWFySW50ZXJ2YWwiLCJfc3RpY2t5Q2hlY2tUaW1lb3V0Iiwic3RpY2t5QnV0Tm90QXRFbmRTaW5jZSIsIkRhdGUiLCJub3ciLCJNYXRoIiwibWF4IiwiY2hlY2tJbnRlcnZhbCIsImRpc2FibGVXb3JrZXIiLCJuZXh0UHJvcHMiLCJ0aW1lU3RhbXBMb3ciLCJuZXh0U3RhdGVDb250ZXh0IiwiY2hpbGRyZW4iLCJkZWJvdW5jZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FB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LGFBQ0UsNkJBQUMsd0JBQUQsQ0FBaUIsUUFBakI7QUFBMEIsUUFBQSxLQUFLLEVBQUdzQjtBQUFsQyxTQUNFLDZCQUFDLHdCQUFELENBQWlCLFFBQWpCO0FBQTBCLFFBQUEsS0FBSyxFQUFHUDtBQUFsQyxTQUNFLDZCQUFDLHFCQUFELENBQWMsUUFBZDtBQUF1QixRQUFBLEtBQUssRUFBR2hCO0FBQS9CLFNBQ0l3QyxRQURKLEVBR0l2QyxNQUFNLElBQ0osNkJBQUMsaUJBQUQ7QUFDRSxRQUFBLFFBQVEsRUFBR3dDLFFBRGI7QUFFRSxRQUFBLElBQUksRUFBQyxRQUZQO0FBR0UsUUFBQSxPQUFPLEVBQUc5QixZQUhaO0FBSUUsUUFBQSxNQUFNLEVBQUdWO0FBSlgsUUFKTixFQVlJQSxNQUFNLElBQUlHLFNBQVMsS0FBSyxJQUF4QixJQUNFLDZCQUFDLGdCQUFEO0FBQ0UsUUFBQSxJQUFJLEVBQUMsV0FEUDtBQUVFLFFBQUEsS0FBSyxFQUFHUyxlQUZWO0FBR0UsUUFBQSxNQUFNLEVBQUdaLE1BSFg7QUFJRSxRQUFBLEtBQUssRUFBR0c7QUFKVixRQWJOLENBREYsQ0FERixDQURGO0FBMkJEOzs7O0VBL0xtQ3NDLGVBQU1DLFM7OztBQWtNNUNsQyxRQUFRLENBQUNtQyxZQUFULEdBQXdCO0FBQ3RCVCxFQUFBQSxhQUFhLEVBQUUsR0FETztBQUV0Qk0sRUFBQUEsUUFBUSxFQUFFO0FBRlksQ0FBeEI7QUFLQWhDLFFBQVEsQ0FBQ29DLFNBQVQsR0FBcUI7QUFDbkJWLEVBQUFBLGFBQWEsRUFBRVcsbUJBQVVDLE1BRE47QUFFbkJOLEVBQUFBLFFBQVEsRUFBRUssbUJBQVVDO0FBRkQsQ0FBckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1cGRhdGVJbiBmcm9tICdzaW1wbGUtdXBkYXRlLWluJztcblxuaW1wb3J0IEV2ZW50U3B5IGZyb20gJy4uL0V2ZW50U3B5JztcbmltcG9ydCBGdW5jdGlvbkNvbnRleHQgZnJvbSAnLi9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IEludGVybmFsQ29udGV4dCBmcm9tICcuL0ludGVybmFsQ29udGV4dCc7XG5pbXBvcnQgU3BpbmVUbyBmcm9tICcuLi9TcGluZVRvJztcbmltcG9ydCBTdGF0ZUNvbnRleHQgZnJvbSAnLi9TdGF0ZUNvbnRleHQnO1xuXG5jb25zdCBNSU5fQ0hFQ0tfSU5URVJWQUwgPSAxNzsgICAgICAgLy8gMSBmcmFtZVxuY29uc3QgTkVBUl9FTkRfVEhSRVNIT0xEID0gMTtcbmNvbnN0IFNDUk9MTF9ERUNJU0lPTl9EVVJBVElPTiA9IDM0OyAvLyAyIGZyYW1lc1xuXG5mdW5jdGlvbiBzZXRJbW1lZGlhdGVJbnRlcnZhbChmbiwgbXMpIHtcbiAgZm4oKTtcblxuICByZXR1cm4gc2V0SW50ZXJ2YWwoZm4sIG1zKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVZpZXdTdGF0ZSh7IHN0YXRlQ29udGV4dDogeyBtb2RlIH0sIHRhcmdldDogeyBvZmZzZXRIZWlnaHQsIHNjcm9sbEhlaWdodCwgc2Nyb2xsVG9wIH0gfSkge1xuICBjb25zdCBhdEJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIG9mZnNldEhlaWdodCA8IE5FQVJfRU5EX1RIUkVTSE9MRDtcbiAgY29uc3QgYXRUb3AgPSBzY3JvbGxUb3AgPCBORUFSX0VORF9USFJFU0hPTEQ7XG4gIGNvbnN0IGF0RW5kID0gbW9kZSA9PT0gJ3RvcCcgPyBhdFRvcCA6IGF0Qm90dG9tO1xuXG4gIHJldHVybiB7XG4gICAgYXRCb3R0b20sXG4gICAgYXRFbmQsXG4gICAgYXRTdGFydDogIWF0RW5kLFxuICAgIGF0VG9wXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbXBvc2VyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbCA9IHRoaXMuaGFuZGxlU2Nyb2xsLmJpbmQodGhpcyk7XG4gICAgdGhpcy5oYW5kbGVTY3JvbGxFbmQgPSB0aGlzLmhhbmRsZVNjcm9sbEVuZC5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5faWdub3JlU2Nyb2xsRXZlbnRCZWZvcmUgPSAwO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGZ1bmN0aW9uQ29udGV4dDoge1xuICAgICAgICBzY3JvbGxUbzogc2Nyb2xsVG9wID0+IHRoaXMuc2V0U3RhdGUoKHsgc3RhdGVDb250ZXh0IH0pID0+ICh7XG4gICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgIHN0YXRlQ29udGV4dDogdXBkYXRlSW4oc3RhdGVDb250ZXh0LCBbJ2FuaW1hdGluZyddLCAoKSA9PiB0cnVlKVxuICAgICAgICB9KSksXG4gICAgICAgIHNjcm9sbFRvQm90dG9tOiAoKSA9PiB0aGlzLnN0YXRlLmZ1bmN0aW9uQ29udGV4dC5zY3JvbGxUbygnMTAwJScpLFxuICAgICAgICBzY3JvbGxUb0VuZDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IHsgZnVuY3Rpb25Db250ZXh0LCBzdGF0ZUNvbnRleHQgfSB9ID0gdGhpcztcblxuICAgICAgICAgIHN0YXRlQ29udGV4dC5tb2RlID09PSAndG9wJyA/IGZ1bmN0aW9uQ29udGV4dC5zY3JvbGxUb1RvcCgpIDogZnVuY3Rpb25Db250ZXh0LnNjcm9sbFRvQm90dG9tKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNjcm9sbFRvU3RhcnQ6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHN0YXRlOiB7IGZ1bmN0aW9uQ29udGV4dCwgc3RhdGVDb250ZXh0IH0gfSA9IHRoaXM7XG5cbiAgICAgICAgICBzdGF0ZUNvbnRleHQubW9kZSA9PT0gJ3RvcCcgPyBmdW5jdGlvbkNvbnRleHQuc2Nyb2xsVG9Cb3R0b20oKSA6IGZ1bmN0aW9uQ29udGV4dC5zY3JvbGxUb1RvcCgpO1xuICAgICAgICB9LFxuICAgICAgICBzY3JvbGxUb1RvcDogKCkgPT4gdGhpcy5zdGF0ZS5mdW5jdGlvbkNvbnRleHQuc2Nyb2xsVG8oMClcbiAgICAgIH0sXG4gICAgICBpbnRlcm5hbENvbnRleHQ6IHtcbiAgICAgICAgc2V0VGFyZ2V0OiB0YXJnZXQgPT4gdGhpcy5zZXRTdGF0ZSgoKSA9PiAoeyB0YXJnZXQgfSkpXG4gICAgICB9LFxuICAgICAgc2Nyb2xsVG9wOiBwcm9wcy5tb2RlID09PSAndG9wJyA/IDAgOiAnMTAwJScsXG4gICAgICBzdGF0ZUNvbnRleHQ6IHtcbiAgICAgICAgYW5pbWF0aW5nOiBmYWxzZSxcbiAgICAgICAgYXRCb3R0b206IHRydWUsXG4gICAgICAgIGF0RW5kOiB0cnVlLFxuICAgICAgICBhdFRvcDogdHJ1ZSxcbiAgICAgICAgbW9kZTogcHJvcHMubW9kZSxcbiAgICAgICAgc3RpY2t5OiB0cnVlXG4gICAgICB9LFxuICAgICAgdGFyZ2V0OiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuZW5hYmxlV29ya2VyKCk7XG4gIH1cblxuICBkaXNhYmxlV29ya2VyKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fc3RpY2t5Q2hlY2tUaW1lb3V0KTtcbiAgfVxuXG4gIGVuYWJsZVdvcmtlcigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3N0aWNreUNoZWNrVGltZW91dCk7XG5cbiAgICBsZXQgc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5fc3RpY2t5Q2hlY2tUaW1lb3V0ID0gc2V0SW1tZWRpYXRlSW50ZXJ2YWwoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhdGUgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IHsgc3RhdGVDb250ZXh0OiB7IHN0aWNreSB9LCB0YXJnZXQgfSA9IHN0YXRlO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBzdGlja3lcbiAgICAgICAgICAmJiB0YXJnZXRcbiAgICAgICAgICAmJiAhY29tcHV0ZVZpZXdTdGF0ZShzdGF0ZSkuYXRFbmRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKCFzdGlja3lCdXROb3RBdEVuZFNpbmNlKSB7XG4gICAgICAgICAgICBzdGlja3lCdXROb3RBdEVuZFNpbmNlID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKERhdGUubm93KCkgLSBzdGlja3lCdXROb3RBdEVuZFNpbmNlID4gU0NST0xMX0RFQ0lTSU9OX0RVUkFUSU9OKSB7XG4gICAgICAgICAgICAvLyBRdWlya3M6IEluIEZpcmVmb3gsIGFmdGVyIHVzZXIgc2Nyb2xsIGRvd24sIEZpcmVmb3ggZG8gdHdvIHRoaW5nczpcbiAgICAgICAgICAgIC8vICAgICAgICAgMS4gU2V0IHRvIGEgbmV3IFwic2Nyb2xsVG9wXCJcbiAgICAgICAgICAgIC8vICAgICAgICAgMi4gRmlyZSBcInNjcm9sbFwiIGV2ZW50XG4gICAgICAgICAgICAvLyAgICAgICAgIEZvciB3aGF0IHdlIG9ic2VydmVkLCAjMSBpcyBmaXJlZCBhYm91dCAyMG1zIGJlZm9yZSAjMi4gVGhlcmUgaXMgYSBjaGFuY2UgdGhhdCB0aGlzIHN0aWNreUNoZWNrVGltZW91dCBpcyBiZWluZyBzY2hlZHVsZWQgYmV0d2VlbiAxIGFuZCAyLlxuICAgICAgICAgICAgLy8gICAgICAgICBUaGF0IG1lYW5zLCBpZiB3ZSBqdXN0IGxvb2sgYXQgIzEgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCBzY3JvbGwsIHdlIHdpbGwgYWx3YXlzIHNjcm9sbCwgaW4gb3Bwb3NlIHRvIHRoZSB1c2VyJ3MgaW50ZW50aW9uLlxuICAgICAgICAgICAgLy8gUmVwcm86IE9wZW4gRmlyZWZveCwgc2V0IGNoZWNrSW50ZXJ2YWwgdG8gYSBsb3dlciBudW1iZXIsIGFuZCB0cnkgdG8gc2Nyb2xsIGJ5IGRyYWdnaW5nIHRoZSBzY3JvbGwgaGFuZGxlci4gSXQgd2lsbCBqdW1wIGJhY2suXG5cbiAgICAgICAgICAgIHN0YXRlLmZ1bmN0aW9uQ29udGV4dC5zY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGlja3lCdXROb3RBdEVuZFNpbmNlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBNYXRoLm1heChNSU5fQ0hFQ0tfSU5URVJWQUwsIHRoaXMucHJvcHMuY2hlY2tJbnRlcnZhbCkgfHwgTUlOX0NIRUNLX0lOVEVSVkFMXG4gICAgKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuZGlzYWJsZVdvcmtlcigpO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICB0aGlzLnNldFN0YXRlKCh7IHN0YXRlQ29udGV4dCB9KSA9PiAoe1xuICAgICAgc3RhdGVDb250ZXh0OiB7XG4gICAgICAgIC4uLnN0YXRlQ29udGV4dCxcbiAgICAgICAgbW9kZTogbmV4dFByb3BzLm1vZGUgPT09ICd0b3AnID8gJ3RvcCcgOiAnYm90dG9tJ1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIGhhbmRsZVNjcm9sbCh7IHRpbWVTdGFtcExvdyB9KSB7XG4gICAgLy8gQ3VycmVudGx5LCB0aGVyZSBhcmUgbm8gcmVsaWFibGUgd2F5IHRvIGNoZWNrIGlmIHRoZSBcInNjcm9sbFwiIGV2ZW50IGlzIHRyaWdnZXIgZHVlIHRvXG4gICAgLy8gdXNlciBnZXN0dXJlLCBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLCBvciBDaHJvbWUtc3ludGhlc2l6ZWQgXCJzY3JvbGxcIiBldmVudCB0byBjb21wZW5zYXRlIHNpemUgY2hhbmdlLlxuICAgIC8vIFRodXMsIHdlIHVzZSBvdXIgYmVzdC1lZmZvcnQgdG8gZ3Vlc3MgaWYgaXQgaXMgdHJpZ2dlcmVkIGJ5IHVzZXIgZ2VzdHVyZSwgYW5kIGRpc2FibGUgc3RpY2t5IGlmIGl0IGlzIGhlYWRpbmcgdG93YXJkcyB0aGUgc3RhcnQgZGlyZWN0aW9uLlxuXG4gICAgaWYgKHRpbWVTdGFtcExvdyA8PSB0aGlzLl9pZ25vcmVTY3JvbGxFdmVudEJlZm9yZSkge1xuICAgICAgLy8gU2luY2Ugd2UgZGVib3VuY2UgXCJzY3JvbGxcIiBldmVudCwgdGhpcyBoYW5kbGVyIG1pZ2h0IGJlIGNhbGxlZCBhZnRlciBzcGluZVRvLm9uRW5kIChhLmsuYS4gYXJ0aWZpY2lhbCBzY3JvbGxpbmcpLlxuICAgICAgLy8gV2Ugc2hvdWxkIGlnbm9yZSBkZWJvdW5jZWQgZXZlbnQgZmlyZWQgYWZ0ZXIgc2Nyb2xsRW5kLCBiZWNhdXNlIHdpdGhvdXQgc2tpcHBpbmcgdGhlbSwgdGhlIHVzZXJJbml0aWF0ZWRTY3JvbGwgY2FsY3VsYXRlZCBiZWxvdyB3aWxsIG5vdCBiZSBhY2N1cmF0ZS5cbiAgICAgIC8vIFRodXMsIG9uIGEgZmFzdCBtYWNoaW5lLCBhZGRpbmcgZWxlbWVudHMgc3VwZXIgZmFzdCB3aWxsIGxvc2UgdGhlIFwic3RpY2tpbmVzc1wiLlxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaXNhYmxlV29ya2VyKCk7XG5cbiAgICB0aGlzLnNldFN0YXRlKHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBzdGF0ZTtcblxuICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc3RhdGVDb250ZXh0IH0gPSBzdGF0ZTtcbiAgICAgICAgY29uc3QgeyBhdEJvdHRvbSwgYXRFbmQsIGF0U3RhcnQsIGF0VG9wIH0gPSBjb21wdXRlVmlld1N0YXRlKHN0YXRlKTtcbiAgICAgICAgbGV0IG5leHRTdGF0ZUNvbnRleHQgPSBzdGF0ZUNvbnRleHQ7XG5cbiAgICAgICAgbmV4dFN0YXRlQ29udGV4dCA9IHVwZGF0ZUluKG5leHRTdGF0ZUNvbnRleHQsIFsnYXRCb3R0b20nXSwgKCkgPT4gYXRCb3R0b20pO1xuICAgICAgICBuZXh0U3RhdGVDb250ZXh0ID0gdXBkYXRlSW4obmV4dFN0YXRlQ29udGV4dCwgWydhdEVuZCddLCAoKSA9PiBhdEVuZCk7XG4gICAgICAgIG5leHRTdGF0ZUNvbnRleHQgPSB1cGRhdGVJbihuZXh0U3RhdGVDb250ZXh0LCBbJ2F0U3RhcnQnXSwgKCkgPT4gYXRTdGFydCk7XG4gICAgICAgIG5leHRTdGF0ZUNvbnRleHQgPSB1cGRhdGVJbihuZXh0U3RhdGVDb250ZXh0LCBbJ2F0VG9wJ10sICgpID0+IGF0VG9wKTtcblxuICAgICAgICAvLyBTdGlja3kgbWVhbnM6XG4gICAgICAgIC8vIC0gSWYgaXQgaXMgc2Nyb2xsZWQgcHJvZ3JhbWF0aWNhbGx5LCB3ZSBhcmUgc3RpbGwgaW4gc3RpY2t5IG1vZGVcbiAgICAgICAgLy8gLSBJZiBpdCBpcyBzY3JvbGxlZCBieSB0aGUgdXNlciwgdGhlbiBzdGlja3kgbWVhbnMgaWYgd2UgYXJlIGF0IHRoZSBlbmRcbiAgICAgICAgbmV4dFN0YXRlQ29udGV4dCA9IHVwZGF0ZUluKG5leHRTdGF0ZUNvbnRleHQsIFsnc3RpY2t5J10sICgpID0+IHN0YXRlQ29udGV4dC5hbmltYXRpbmcgPyB0cnVlIDogYXRFbmQpO1xuXG4gICAgICAgIC8vIElmIG5vIHNjcm9sbFRvcCBpcyBzZXQgKG5vdCBpbiBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nIG1vZGUpLCB3ZSBzaG91bGQgc2V0IFwiYW5pbWF0aW5nXCIgdG8gZmFsc2VcbiAgICAgICAgLy8gXCJhbmltYXRpbmdcIiBpcyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgXCJzdGlja3lcIiBwcm9wZXJ0eVxuICAgICAgICBpZiAoc2Nyb2xsVG9wID09PSBudWxsKSB7XG4gICAgICAgICAgbmV4dFN0YXRlQ29udGV4dCA9IHVwZGF0ZUluKG5leHRTdGF0ZUNvbnRleHQsIFsnYW5pbWF0aW5nJ10sICgpID0+IGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZUNvbnRleHQgIT09IG5leHRTdGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICByZXR1cm4geyBzdGF0ZUNvbnRleHQ6IG5leHRTdGF0ZUNvbnRleHQgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sICgpID0+IHtcbiAgICAgIHRoaXMuc3RhdGUuc3RhdGVDb250ZXh0LnN0aWNreSAmJiB0aGlzLmVuYWJsZVdvcmtlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlU2Nyb2xsRW5kKCkge1xuICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZGVib3VuY2luZyBoYW5kbGVTY3JvbGwgdGhhdCBlbWl0IGJlZm9yZSB0aGlzIHRpbWVcbiAgICB0aGlzLl9pZ25vcmVTY3JvbGxFdmVudEJlZm9yZSA9IERhdGUubm93KCk7XG5cbiAgICB0aGlzLnNldFN0YXRlKCgpID0+ICh7IHNjcm9sbFRvcDogbnVsbCB9KSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgaGFuZGxlU2Nyb2xsLFxuICAgICAgaGFuZGxlU2Nyb2xsRW5kLFxuICAgICAgcHJvcHM6IHsgY2hpbGRyZW4sIGRlYm91bmNlIH0sXG4gICAgICBzdGF0ZTogeyBmdW5jdGlvbkNvbnRleHQsIGludGVybmFsQ29udGV4dCwgc2Nyb2xsVG9wLCBzdGF0ZUNvbnRleHQsIHRhcmdldCB9XG4gICAgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEludGVybmFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17IGludGVybmFsQ29udGV4dCB9PlxuICAgICAgICA8RnVuY3Rpb25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXsgZnVuY3Rpb25Db250ZXh0IH0+XG4gICAgICAgICAgPFN0YXRlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17IHN0YXRlQ29udGV4dCB9PlxuICAgICAgICAgICAgeyBjaGlsZHJlbiB9XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRhcmdldCAmJlxuICAgICAgICAgICAgICAgIDxFdmVudFNweVxuICAgICAgICAgICAgICAgICAgZGVib3VuY2U9eyBkZWJvdW5jZSB9XG4gICAgICAgICAgICAgICAgICBuYW1lPVwic2Nyb2xsXCJcbiAgICAgICAgICAgICAgICAgIG9uRXZlbnQ9eyBoYW5kbGVTY3JvbGwgfVxuICAgICAgICAgICAgICAgICAgdGFyZ2V0PXsgdGFyZ2V0IH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0YXJnZXQgJiYgc2Nyb2xsVG9wICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgPFNwaW5lVG9cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJzY3JvbGxUb3BcIlxuICAgICAgICAgICAgICAgICAgb25FbmQ9eyBoYW5kbGVTY3JvbGxFbmQgfVxuICAgICAgICAgICAgICAgICAgdGFyZ2V0PXsgdGFyZ2V0IH1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXsgc2Nyb2xsVG9wIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvU3RhdGVDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L0Z1bmN0aW9uQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvSW50ZXJuYWxDb250ZXh0LlByb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cblxuQ29tcG9zZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGVja0ludGVydmFsOiAxMDAsXG4gIGRlYm91bmNlOiAxN1xufTtcblxuQ29tcG9zZXIucHJvcFR5cGVzID0ge1xuICBjaGVja0ludGVydmFsOiBQcm9wVHlwZXMubnVtYmVyLFxuICBkZWJvdW5jZTogUHJvcFR5cGVzLm51bWJlclxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9Db21wb3Nlci5qcyJdLCJuYW1lcyI6WyJNSU5fQ0hFQ0tfSU5URVJWQUwiLCJORUFSX0VORF9USFJFU0hPTEQiLCJTQ1JPTExfREVDSVNJT05fRFVSQVRJT04iLCJzZXRJbW1lZGlhdGVJbnRlcnZhbCIsImZuIiwibXMiLCJzZXRJbnRlcnZhbCIsImNvbXB1dGVWaWV3U3RhdGUiLCJtb2RlIiwic3RhdGVDb250ZXh0IiwidGFyZ2V0Iiwib2Zmc2V0SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0Iiwic2Nyb2xsVG9wIiwiYXRCb3R0b20iLCJhdFRvcCIsImF0RW5kIiwiYXRTdGFydCIsIkNvbXBvc2VyIiwicHJvcHMiLCJoYW5kbGVTY3JvbGwiLCJiaW5kIiwiaGFuZGxlU2Nyb2xsRW5kIiwiX2lnbm9yZVNjcm9sbEV2ZW50QmVmb3JlIiwic3RhdGUiLCJmdW5jdGlvbkNvbnRleHQiLCJzY3JvbGxUbyIsInNldFN0YXRlIiwic2Nyb2xsVG9Cb3R0b20iLCJzY3JvbGxUb0VuZCIsInNjcm9sbFRvVG9wIiwic2Nyb2xsVG9TdGFydCIsImludGVybmFsQ29udGV4dCIsInNldFRhcmdldCIsImFuaW1hdGluZyIsInN0aWNreSIsImVuYWJsZVdvcmtlciIsImNsZWFySW50ZXJ2YWwiLCJfc3RpY2t5Q2hlY2tUaW1lb3V0Iiwic3RpY2t5QnV0Tm90QXRFbmRTaW5jZSIsIkRhdGUiLCJub3ciLCJNYXRoIiwibWF4IiwiY2hlY2tJbnRlcnZhbCIsImRpc2FibGVXb3JrZXIiLCJuZXh0UHJvcHMiLCJ0aW1lU3RhbXBMb3ciLCJuZXh0SW50ZXJuYWxDb250ZXh0IiwibmV4dFN0YXRlQ29udGV4dCIsInJlc2l6ZWQiLCJlbGVtZW50Q2hhbmdlZCIsImNoaWxkcmVuIiwiZGVib3VuY2UiLCJSZWFjdCIsIkNvbXBvbmVudCIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciJdLCJtYXBwaW5ncyI6Ijs7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QUFHUDtBQUFsQyxTQUNFLDZCQUFDLHFCQUFELENBQWMsUUFBZDtBQUF1QixRQUFBLEtBQUssRUFBR2hCO0FBQS9CLFNBQ0kyQyxRQURKLEVBR0kxQyxNQUFNLElBQ0osNkJBQUMsaUJBQUQ7QUFDRSxRQUFBLFFBQVEsRUFBRzJDLFFBRGI7QUFFRSxRQUFBLElBQUksRUFBQyxRQUZQO0FBR0UsUUFBQSxPQUFPLEVBQUdqQyxZQUhaO0FBSUUsUUFBQSxNQUFNLEVBQUdWO0FBSlgsUUFKTixFQVlJQSxNQUFNLElBQUlHLFNBQVMsS0FBSyxJQUF4QixJQUNFLDZCQUFDLGdCQUFEO0FBQ0UsUUFBQSxJQUFJLEVBQUMsV0FEUDtBQUVFLFFBQUEsS0FBSyxFQUFHUyxlQUZWO0FBR0UsUUFBQSxNQUFNLEVBQUdaLE1BSFg7QUFJRSxRQUFBLEtBQUssRUFBR0c7QUFKVixRQWJOLENBREYsQ0FERixDQURGO0FBMkJEOzs7O0VBdk5tQ3lDLGVBQU1DLFM7OztBQTBONUNyQyxRQUFRLENBQUNzQyxZQUFULEdBQXdCO0FBQ3RCWixFQUFBQSxhQUFhLEVBQUUsR0FETztBQUV0QlMsRUFBQUEsUUFBUSxFQUFFO0FBRlksQ0FBeEI7QUFLQW5DLFFBQVEsQ0FBQ3VDLFNBQVQsR0FBcUI7QUFDbkJiLEVBQUFBLGFBQWEsRUFBRWMsbUJBQVVDLE1BRE47QUFFbkJOLEVBQUFBLFFBQVEsRUFBRUssbUJBQVVDO0FBRkQsQ0FBckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1cGRhdGVJbiBmcm9tICdzaW1wbGUtdXBkYXRlLWluJztcblxuaW1wb3J0IEV2ZW50U3B5IGZyb20gJy4uL0V2ZW50U3B5JztcbmltcG9ydCBGdW5jdGlvbkNvbnRleHQgZnJvbSAnLi9GdW5jdGlvbkNvbnRleHQnO1xuaW1wb3J0IEludGVybmFsQ29udGV4dCBmcm9tICcuL0ludGVybmFsQ29udGV4dCc7XG5pbXBvcnQgU3BpbmVUbyBmcm9tICcuLi9TcGluZVRvJztcbmltcG9ydCBTdGF0ZUNvbnRleHQgZnJvbSAnLi9TdGF0ZUNvbnRleHQnO1xuXG5jb25zdCBNSU5fQ0hFQ0tfSU5URVJWQUwgPSAxNzsgICAgICAgLy8gMSBmcmFtZVxuY29uc3QgTkVBUl9FTkRfVEhSRVNIT0xEID0gMTtcbmNvbnN0IFNDUk9MTF9ERUNJU0lPTl9EVVJBVElPTiA9IDM0OyAvLyAyIGZyYW1lc1xuXG5mdW5jdGlvbiBzZXRJbW1lZGlhdGVJbnRlcnZhbChmbiwgbXMpIHtcbiAgZm4oKTtcblxuICByZXR1cm4gc2V0SW50ZXJ2YWwoZm4sIG1zKTtcbn1cblxuZnVuY3Rpb24gY29tcHV0ZVZpZXdTdGF0ZSh7IHN0YXRlQ29udGV4dDogeyBtb2RlIH0sIHRhcmdldDogeyBvZmZzZXRIZWlnaHQsIHNjcm9sbEhlaWdodCwgc2Nyb2xsVG9wIH0gfSkge1xuICBjb25zdCBhdEJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIG9mZnNldEhlaWdodCA8IE5FQVJfRU5EX1RIUkVTSE9MRDtcbiAgY29uc3QgYXRUb3AgPSBzY3JvbGxUb3AgPCBORUFSX0VORF9USFJFU0hPTEQ7XG4gIGNvbnN0IGF0RW5kID0gbW9kZSA9PT0gJ3RvcCcgPyBhdFRvcCA6IGF0Qm90dG9tO1xuXG4gIHJldHVybiB7XG4gICAgYXRCb3R0b20sXG4gICAgYXRFbmQsXG4gICAgYXRTdGFydDogIWF0RW5kLFxuICAgIGF0VG9wXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbXBvc2VyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbCA9IHRoaXMuaGFuZGxlU2Nyb2xsLmJpbmQodGhpcyk7XG4gICAgdGhpcy5oYW5kbGVTY3JvbGxFbmQgPSB0aGlzLmhhbmRsZVNjcm9sbEVuZC5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5faWdub3JlU2Nyb2xsRXZlbnRCZWZvcmUgPSAwO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGZ1bmN0aW9uQ29udGV4dDoge1xuICAgICAgICBzY3JvbGxUbzogc2Nyb2xsVG9wID0+IHRoaXMuc2V0U3RhdGUoKHsgc3RhdGVDb250ZXh0IH0pID0+ICh7XG4gICAgICAgICAgc2Nyb2xsVG9wLFxuICAgICAgICAgIHN0YXRlQ29udGV4dDogdXBkYXRlSW4oc3RhdGVDb250ZXh0LCBbJ2FuaW1hdGluZyddLCAoKSA9PiB0cnVlKVxuICAgICAgICB9KSksXG4gICAgICAgIHNjcm9sbFRvQm90dG9tOiAoKSA9PiB0aGlzLnN0YXRlLmZ1bmN0aW9uQ29udGV4dC5zY3JvbGxUbygnMTAwJScpLFxuICAgICAgICBzY3JvbGxUb0VuZDogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IHsgZnVuY3Rpb25Db250ZXh0LCBzdGF0ZUNvbnRleHQgfSB9ID0gdGhpcztcblxuICAgICAgICAgIHN0YXRlQ29udGV4dC5tb2RlID09PSAndG9wJyA/IGZ1bmN0aW9uQ29udGV4dC5zY3JvbGxUb1RvcCgpIDogZnVuY3Rpb25Db250ZXh0LnNjcm9sbFRvQm90dG9tKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNjcm9sbFRvU3RhcnQ6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHN0YXRlOiB7IGZ1bmN0aW9uQ29udGV4dCwgc3RhdGVDb250ZXh0IH0gfSA9IHRoaXM7XG5cbiAgICAgICAgICBzdGF0ZUNvbnRleHQubW9kZSA9PT0gJ3RvcCcgPyBmdW5jdGlvbkNvbnRleHQuc2Nyb2xsVG9Cb3R0b20oKSA6IGZ1bmN0aW9uQ29udGV4dC5zY3JvbGxUb1RvcCgpO1xuICAgICAgICB9LFxuICAgICAgICBzY3JvbGxUb1RvcDogKCkgPT4gdGhpcy5zdGF0ZS5mdW5jdGlvbkNvbnRleHQuc2Nyb2xsVG8oMClcbiAgICAgIH0sXG4gICAgICBpbnRlcm5hbENvbnRleHQ6IHtcbiAgICAgICAgb2Zmc2V0SGVpZ2h0OiAwLFxuICAgICAgICBzY3JvbGxIZWlnaHQ6IDAsXG4gICAgICAgIHNldFRhcmdldDogdGFyZ2V0ID0+IHRoaXMuc2V0U3RhdGUoKCkgPT4gKHsgdGFyZ2V0IH0pKVxuICAgICAgfSxcbiAgICAgIHNjcm9sbFRvcDogcHJvcHMubW9kZSA9PT0gJ3RvcCcgPyAwIDogJzEwMCUnLFxuICAgICAgc3RhdGVDb250ZXh0OiB7XG4gICAgICAgIGFuaW1hdGluZzogZmFsc2UsXG4gICAgICAgIGF0Qm90dG9tOiB0cnVlLFxuICAgICAgICBhdEVuZDogdHJ1ZSxcbiAgICAgICAgYXRUb3A6IHRydWUsXG4gICAgICAgIG1vZGU6IHByb3BzLm1vZGUsXG4gICAgICAgIHN0aWNreTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHRhcmdldDogbnVsbFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmVuYWJsZVdvcmtlcigpO1xuICB9XG5cbiAgZGlzYWJsZVdvcmtlcigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3N0aWNreUNoZWNrVGltZW91dCk7XG4gIH1cblxuICBlbmFibGVXb3JrZXIoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9zdGlja3lDaGVja1RpbWVvdXQpO1xuXG4gICAgbGV0IHN0aWNreUJ1dE5vdEF0RW5kU2luY2UgPSBmYWxzZTtcblxuICAgIHRoaXMuX3N0aWNreUNoZWNrVGltZW91dCA9IHNldEltbWVkaWF0ZUludGVydmFsKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXRlIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCB7IHN0YXRlQ29udGV4dDogeyBzdGlja3kgfSwgdGFyZ2V0IH0gPSBzdGF0ZTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgc3RpY2t5XG4gICAgICAgICAgJiYgdGFyZ2V0XG4gICAgICAgICAgJiYgIWNvbXB1dGVWaWV3U3RhdGUoc3RhdGUpLmF0RW5kXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICghc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSkge1xuICAgICAgICAgICAgc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA9IERhdGUubm93KCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChEYXRlLm5vdygpIC0gc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA+IFNDUk9MTF9ERUNJU0lPTl9EVVJBVElPTikge1xuICAgICAgICAgICAgLy8gUXVpcmtzOiBJbiBGaXJlZm94LCBhZnRlciB1c2VyIHNjcm9sbCBkb3duLCBGaXJlZm94IGRvIHR3byB0aGluZ3M6XG4gICAgICAgICAgICAvLyAgICAgICAgIDEuIFNldCB0byBhIG5ldyBcInNjcm9sbFRvcFwiXG4gICAgICAgICAgICAvLyAgICAgICAgIDIuIEZpcmUgXCJzY3JvbGxcIiBldmVudFxuICAgICAgICAgICAgLy8gICAgICAgICBGb3Igd2hhdCB3ZSBvYnNlcnZlZCwgIzEgaXMgZmlyZWQgYWJvdXQgMjBtcyBiZWZvcmUgIzIuIFRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgdGhpcyBzdGlja3lDaGVja1RpbWVvdXQgaXMgYmVpbmcgc2NoZWR1bGVkIGJldHdlZW4gMSBhbmQgMi5cbiAgICAgICAgICAgIC8vICAgICAgICAgVGhhdCBtZWFucywgaWYgd2UganVzdCBsb29rIGF0ICMxIHRvIGRlY2lkZSBpZiB3ZSBzaG91bGQgc2Nyb2xsLCB3ZSB3aWxsIGFsd2F5cyBzY3JvbGwsIGluIG9wcG9zZSB0byB0aGUgdXNlcidzIGludGVudGlvbi5cbiAgICAgICAgICAgIC8vIFJlcHJvOiBPcGVuIEZpcmVmb3gsIHNldCBjaGVja0ludGVydmFsIHRvIGEgbG93ZXIgbnVtYmVyLCBhbmQgdHJ5IHRvIHNjcm9sbCBieSBkcmFnZ2luZyB0aGUgc2Nyb2xsIGhhbmRsZXIuIEl0IHdpbGwganVtcCBiYWNrLlxuXG4gICAgICAgICAgICBzdGF0ZS5mdW5jdGlvbkNvbnRleHQuc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgICAgIHN0aWNreUJ1dE5vdEF0RW5kU2luY2UgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RpY2t5QnV0Tm90QXRFbmRTaW5jZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgTWF0aC5tYXgoTUlOX0NIRUNLX0lOVEVSVkFMLCB0aGlzLnByb3BzLmNoZWNrSW50ZXJ2YWwpIHx8IE1JTl9DSEVDS19JTlRFUlZBTFxuICAgICk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLmRpc2FibGVXb3JrZXIoKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSgoeyBzdGF0ZUNvbnRleHQgfSkgPT4gKHtcbiAgICAgIHN0YXRlQ29udGV4dDoge1xuICAgICAgICAuLi5zdGF0ZUNvbnRleHQsXG4gICAgICAgIG1vZGU6IG5leHRQcm9wcy5tb2RlID09PSAndG9wJyA/ICd0b3AnIDogJ2JvdHRvbSdcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBoYW5kbGVTY3JvbGwoeyB0aW1lU3RhbXBMb3cgfSkge1xuICAgIC8vIEN1cnJlbnRseSwgdGhlcmUgYXJlIG5vIHJlbGlhYmxlIHdheSB0byBjaGVjayBpZiB0aGUgXCJzY3JvbGxcIiBldmVudCBpcyB0cmlnZ2VyIGR1ZSB0b1xuICAgIC8vIHVzZXIgZ2VzdHVyZSwgcHJvZ3JhbW1hdGljIHNjcm9sbGluZywgb3IgQ2hyb21lLXN5bnRoZXNpemVkIFwic2Nyb2xsXCIgZXZlbnQgdG8gY29tcGVuc2F0ZSBzaXplIGNoYW5nZS5cbiAgICAvLyBUaHVzLCB3ZSB1c2Ugb3VyIGJlc3QtZWZmb3J0IHRvIGd1ZXNzIGlmIGl0IGlzIHRyaWdnZXJlZCBieSB1c2VyIGdlc3R1cmUsIGFuZCBkaXNhYmxlIHN0aWNreSBpZiBpdCBpcyBoZWFkaW5nIHRvd2FyZHMgdGhlIHN0YXJ0IGRpcmVjdGlvbi5cblxuICAgIGlmICh0aW1lU3RhbXBMb3cgPD0gdGhpcy5faWdub3JlU2Nyb2xsRXZlbnRCZWZvcmUpIHtcbiAgICAgIC8vIFNpbmNlIHdlIGRlYm91bmNlIFwic2Nyb2xsXCIgZXZlbnQsIHRoaXMgaGFuZGxlciBtaWdodCBiZSBjYWxsZWQgYWZ0ZXIgc3BpbmVUby5vbkVuZCAoYS5rLmEuIGFydGlmaWNpYWwgc2Nyb2xsaW5nKS5cbiAgICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZGVib3VuY2VkIGV2ZW50IGZpcmVkIGFmdGVyIHNjcm9sbEVuZCwgYmVjYXVzZSB3aXRob3V0IHNraXBwaW5nIHRoZW0sIHRoZSB1c2VySW5pdGlhdGVkU2Nyb2xsIGNhbGN1bGF0ZWQgYmVsb3cgd2lsbCBub3QgYmUgYWNjdXJhdGUuXG4gICAgICAvLyBUaHVzLCBvbiBhIGZhc3QgbWFjaGluZSwgYWRkaW5nIGVsZW1lbnRzIHN1cGVyIGZhc3Qgd2lsbCBsb3NlIHRoZSBcInN0aWNraW5lc3NcIi5cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzYWJsZVdvcmtlcigpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSA9PiB7XG4gICAgICBjb25zdCB7IHRhcmdldCB9ID0gc3RhdGU7XG5cbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgY29uc3QgeyBpbnRlcm5hbENvbnRleHQsIHNjcm9sbFRvcCwgc3RhdGVDb250ZXh0IH0gPSBzdGF0ZTtcbiAgICAgICAgY29uc3QgeyBhdEJvdHRvbSwgYXRFbmQsIGF0U3RhcnQsIGF0VG9wIH0gPSBjb21wdXRlVmlld1N0YXRlKHN0YXRlKTtcbiAgICAgICAgbGV0IG5leHRJbnRlcm5hbENvbnRleHQgPSBpbnRlcm5hbENvbnRleHQ7XG4gICAgICAgIGxldCBuZXh0U3RhdGVDb250ZXh0ID0gc3RhdGVDb250ZXh0O1xuXG4gICAgICAgIG5leHRTdGF0ZUNvbnRleHQgPSB1cGRhdGVJbihuZXh0U3RhdGVDb250ZXh0LCBbJ2F0Qm90dG9tJ10sICgpID0+IGF0Qm90dG9tKTtcbiAgICAgICAgbmV4dFN0YXRlQ29udGV4dCA9IHVwZGF0ZUluKG5leHRTdGF0ZUNvbnRleHQsIFsnYXRFbmQnXSwgKCkgPT4gYXRFbmQpO1xuICAgICAgICBuZXh0U3RhdGVDb250ZXh0ID0gdXBkYXRlSW4obmV4dFN0YXRlQ29udGV4dCwgWydhdFN0YXJ0J10sICgpID0+IGF0U3RhcnQpO1xuICAgICAgICBuZXh0U3RhdGVDb250ZXh0ID0gdXBkYXRlSW4obmV4dFN0YXRlQ29udGV4dCwgWydhdFRvcCddLCAoKSA9PiBhdFRvcCk7XG5cbiAgICAgICAgLy8gQ2hyb21lIHdpbGwgZW1pdCBcInN5bnRoZXRpY1wiIHNjcm9sbCBldmVudCBpZiB0aGUgY29udGFpbmVyIGlzIHJlc2l6ZWQgb3IgYW4gZWxlbWVudCBpcyBhZGRlZFxuICAgICAgICAvLyBXZSBuZWVkIHRvIGlnbm9yZSB0aGVzZSBcInN5bnRoZXRpY1wiIGV2ZW50c1xuICAgICAgICAvLyBSZXBybzogSW4gcGxheWdyb3VuZCwgcHJlc3MgNC0xLTUtMS0xIChzbWFsbCwgYWRkIG9uZSwgbm9ybWFsLCBhZGQgb25lLCBhZGQgb25lKVxuICAgICAgICAvLyAgICAgICAgTm9tYXR0ZXIgaG93IGZhc3Qgb3Igc2xvdyB0aGUgc2VxdWVuY2UgaXMgYmVpbmcgcHJlc3NzZWQsIGl0IHNob3VsZCBzdGlsbCBzdGljayB0byB0aGUgYm90dG9tXG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0SGVpZ2h0LCBzY3JvbGxIZWlnaHQgfSA9IHRhcmdldDtcbiAgICAgICAgY29uc3QgcmVzaXplZCA9IG9mZnNldEhlaWdodCAhPT0gaW50ZXJuYWxDb250ZXh0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgZWxlbWVudENoYW5nZWQgPSBzY3JvbGxIZWlnaHQgIT09IGludGVybmFsQ29udGV4dC5zY3JvbGxIZWlnaHQ7XG5cbiAgICAgICAgaWYgKHJlc2l6ZWQpIHtcbiAgICAgICAgICBuZXh0SW50ZXJuYWxDb250ZXh0ID0gdXBkYXRlSW4obmV4dEludGVybmFsQ29udGV4dCwgWydvZmZzZXRIZWlnaHQnXSwgKCkgPT4gb2Zmc2V0SGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbGVtZW50Q2hhbmdlZCkge1xuICAgICAgICAgIG5leHRJbnRlcm5hbENvbnRleHQgPSB1cGRhdGVJbihuZXh0SW50ZXJuYWxDb250ZXh0LCBbJ3Njcm9sbEhlaWdodCddLCAoKSA9PiBzY3JvbGxIZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RpY2t5IG1lYW5zOlxuICAgICAgICAvLyAtIElmIGl0IGlzIHNjcm9sbGVkIHByb2dyYW1hdGljYWxseSwgd2UgYXJlIHN0aWxsIGluIHN0aWNreSBtb2RlXG4gICAgICAgIC8vIC0gSWYgaXQgaXMgc2Nyb2xsZWQgYnkgdGhlIHVzZXIsIHRoZW4gc3RpY2t5IG1lYW5zIGlmIHdlIGFyZSBhdCB0aGUgZW5kXG5cbiAgICAgICAgLy8gT25seSB1cGRhdGUgc3RpY2tpbmVzcyBpZiB0aGUgc2Nyb2xsIGV2ZW50IGlzIG5vdCBkdWUgdG8gc3ludGhldGljIHNjcm9sbCBkb25lIGJ5IENocm9tZVxuICAgICAgICBpZiAoIXJlc2l6ZWQgJiYgIWVsZW1lbnRDaGFuZ2VkKSB7XG4gICAgICAgICAgbmV4dFN0YXRlQ29udGV4dCA9IHVwZGF0ZUluKG5leHRTdGF0ZUNvbnRleHQsIFsnc3RpY2t5J10sICgpID0+IHN0YXRlQ29udGV4dC5hbmltYXRpbmcgPyB0cnVlIDogYXRFbmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgbm8gc2Nyb2xsVG9wIGlzIHNldCAobm90IGluIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcgbW9kZSksIHdlIHNob3VsZCBzZXQgXCJhbmltYXRpbmdcIiB0byBmYWxzZVxuICAgICAgICAvLyBcImFuaW1hdGluZ1wiIGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBcInN0aWNreVwiIHByb3BlcnR5XG4gICAgICAgIGlmIChzY3JvbGxUb3AgPT09IG51bGwpIHtcbiAgICAgICAgICBuZXh0U3RhdGVDb250ZXh0ID0gdXBkYXRlSW4obmV4dFN0YXRlQ29udGV4dCwgWydhbmltYXRpbmcnXSwgKCkgPT4gZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pbnRlcm5hbENvbnRleHQgPT09IG5leHRJbnRlcm5hbENvbnRleHQgPyB7fSA6IHsgaW50ZXJuYWxDb250ZXh0OiBuZXh0SW50ZXJuYWxDb250ZXh0IH0sXG4gICAgICAgICAgLi4uc3RhdGVDb250ZXh0ID09PSBuZXh0U3RhdGVDb250ZXh0ID8ge30gOiB7IHN0YXRlQ29udGV4dDogbmV4dFN0YXRlQ29udGV4dCB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSwgKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZS5zdGF0ZUNvbnRleHQuc3RpY2t5ICYmIHRoaXMuZW5hYmxlV29ya2VyKCk7XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVTY3JvbGxFbmQoKSB7XG4gICAgLy8gV2Ugc2hvdWxkIGlnbm9yZSBkZWJvdW5jaW5nIGhhbmRsZVNjcm9sbCB0aGF0IGVtaXQgYmVmb3JlIHRoaXMgdGltZVxuICAgIHRoaXMuX2lnbm9yZVNjcm9sbEV2ZW50QmVmb3JlID0gRGF0ZS5ub3coKTtcblxuICAgIHRoaXMuc2V0U3RhdGUoKCkgPT4gKHsgc2Nyb2xsVG9wOiBudWxsIH0pKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBoYW5kbGVTY3JvbGwsXG4gICAgICBoYW5kbGVTY3JvbGxFbmQsXG4gICAgICBwcm9wczogeyBjaGlsZHJlbiwgZGVib3VuY2UgfSxcbiAgICAgIHN0YXRlOiB7IGZ1bmN0aW9uQ29udGV4dCwgaW50ZXJuYWxDb250ZXh0LCBzY3JvbGxUb3AsIHN0YXRlQ29udGV4dCwgdGFyZ2V0IH1cbiAgICB9ID0gdGhpcztcblxuICAgIHJldHVybiAoXG4gICAgICA8SW50ZXJuYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXsgaW50ZXJuYWxDb250ZXh0IH0+XG4gICAgICAgIDxGdW5jdGlvbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9eyBmdW5jdGlvbkNvbnRleHQgfT5cbiAgICAgICAgICA8U3RhdGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXsgc3RhdGVDb250ZXh0IH0+XG4gICAgICAgICAgICB7IGNoaWxkcmVuIH1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgPEV2ZW50U3B5XG4gICAgICAgICAgICAgICAgICBkZWJvdW5jZT17IGRlYm91bmNlIH1cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJzY3JvbGxcIlxuICAgICAgICAgICAgICAgICAgb25FdmVudD17IGhhbmRsZVNjcm9sbCB9XG4gICAgICAgICAgICAgICAgICB0YXJnZXQ9eyB0YXJnZXQgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRhcmdldCAmJiBzY3JvbGxUb3AgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICA8U3BpbmVUb1xuICAgICAgICAgICAgICAgICAgbmFtZT1cInNjcm9sbFRvcFwiXG4gICAgICAgICAgICAgICAgICBvbkVuZD17IGhhbmRsZVNjcm9sbEVuZCB9XG4gICAgICAgICAgICAgICAgICB0YXJnZXQ9eyB0YXJnZXQgfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9eyBzY3JvbGxUb3AgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9TdGF0ZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIDwvRnVuY3Rpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9JbnRlcm5hbENvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxufVxuXG5Db21wb3Nlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoZWNrSW50ZXJ2YWw6IDEwMCxcbiAgZGVib3VuY2U6IDE3XG59O1xuXG5Db21wb3Nlci5wcm9wVHlwZXMgPSB7XG4gIGNoZWNrSW50ZXJ2YWw6IFByb3BUeXBlcy5udW1iZXIsXG4gIGRlYm91bmNlOiBQcm9wVHlwZXMubnVtYmVyXG59O1xuIl19

@@ -22,2 +22,5 @@ "use strict";

},
scrollToStart: function scrollToStart() {
return 0;
},
scrollToTop: function scrollToTop() {

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

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

@@ -13,7 +13,6 @@ "use strict";

var context = _react.default.createContext({
_handleUpdate: function _handleUpdate() {
offsetHeight: 0,
scrollHeight: 0,
setTarget: function setTarget() {
return 0;
},
_setTarget: function _setTarget() {
return 0;
}

@@ -25,2 +24,2 @@ });

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

@@ -13,6 +13,8 @@ "use strict";

var context = _react.default.createContext({
animating: false,
atBottom: true,
atEnd: true,
atTop: true,
mode: 'bottom'
mode: 'bottom',
sticky: true
});

@@ -23,2 +25,2 @@

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9TdGF0ZUNvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImF0Qm90dG9tIiwiYXRFbmQiLCJhdFRvcCIsIm1vZGUiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUEsSUFBTUEsT0FBTyxHQUFHQyxlQUFNQyxhQUFOLENBQW9CO0FBQ2xDQyxFQUFBQSxRQUFRLEVBQUUsSUFEd0I7QUFFbENDLEVBQUFBLEtBQUssRUFBRSxJQUYyQjtBQUdsQ0MsRUFBQUEsS0FBSyxFQUFFLElBSDJCO0FBSWxDQyxFQUFBQSxJQUFJLEVBQUU7QUFKNEIsQ0FBcEIsQ0FBaEI7O0FBT0FOLE9BQU8sQ0FBQ08sV0FBUixHQUFzQiw0QkFBdEI7ZUFFZVAsTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IGNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgYXRCb3R0b206IHRydWUsXG4gIGF0RW5kOiB0cnVlLFxuICBhdFRvcDogdHJ1ZSxcbiAgbW9kZTogJ2JvdHRvbSdcbn0pO1xuXG5jb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Njcm9sbFRvQm90dG9tU3RhdGVDb250ZXh0JztcblxuZXhwb3J0IGRlZmF1bHQgY29udGV4dFxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY3JvbGxUb0JvdHRvbS9TdGF0ZUNvbnRleHQuanMiXSwibmFtZXMiOlsiY29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImFuaW1hdGluZyIsImF0Qm90dG9tIiwiYXRFbmQiLCJhdFRvcCIsIm1vZGUiLCJzdGlja3kiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUEsSUFBTUEsT0FBTyxHQUFHQyxlQUFNQyxhQUFOLENBQW9CO0FBQ2xDQyxFQUFBQSxTQUFTLEVBQUUsS0FEdUI7QUFFbENDLEVBQUFBLFFBQVEsRUFBRSxJQUZ3QjtBQUdsQ0MsRUFBQUEsS0FBSyxFQUFFLElBSDJCO0FBSWxDQyxFQUFBQSxLQUFLLEVBQUUsSUFKMkI7QUFLbENDLEVBQUFBLElBQUksRUFBRSxRQUw0QjtBQU1sQ0MsRUFBQUEsTUFBTSxFQUFFO0FBTjBCLENBQXBCLENBQWhCOztBQVNBUixPQUFPLENBQUNTLFdBQVIsR0FBc0IsNEJBQXRCO2VBRWVULE8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCBjb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gIGFuaW1hdGluZzogZmFsc2UsXG4gIGF0Qm90dG9tOiB0cnVlLFxuICBhdEVuZDogdHJ1ZSxcbiAgYXRUb3A6IHRydWUsXG4gIG1vZGU6ICdib3R0b20nLFxuICBzdGlja3k6IHRydWVcbn0pO1xuXG5jb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Njcm9sbFRvQm90dG9tU3RhdGVDb250ZXh0JztcblxuZXhwb3J0IGRlZmF1bHQgY29udGV4dFxuIl19
{
"name": "react-scroll-to-bottom",
"version": "1.3.2-master.a1d5777",
"version": "1.3.2-master.d0df2f1",
"description": "React container that will auto scroll to bottom",

@@ -5,0 +5,0 @@ "keywords": [