Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

contain-by-screen

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

contain-by-screen - npm Package Compare versions

Comparing version 1.1.0 to 1.1.1

8

.eslintrc.js

@@ -9,7 +9,6 @@ module.exports = {

},
"extends": ["eslint:recommended", "plugin:react/recommended"],
"extends": ["eslint:recommended"],
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
},

@@ -19,5 +18,8 @@ "sourceType": "module"

"plugins": [
"react"
"flowtype"
],
"rules": {
"flowtype/define-flow-type": 1,
"flowtype/require-valid-file-annotation": ["error", "always"],
"indent": ["error", 2],

@@ -24,0 +26,0 @@ "linebreak-style": ["error", "unix"],

@@ -63,4 +63,4 @@ 'use strict';

var coord = positionAndAlign(elRect, anchorRect, choice, buffers);
var _top = coord.top;
var _left = coord.left;
var _top = coord.top,
_left = coord.left;

@@ -105,5 +105,5 @@ if (_top - buffers.all - buffers.top >= 0 && _left - buffers.all - buffers.left >= 0 && _top + elRect.height + buffers.all + buffers.bottom <= window.innerHeight && _left + elRect.width + buffers.all + buffers.right <= window.innerWidth) {

function positionAndAlign(elRect, anchorRect, _ref, buffers) {
var position = _ref.position;
var hAlign = _ref.hAlign;
var vAlign = _ref.vAlign;
var position = _ref.position,
hAlign = _ref.hAlign,
vAlign = _ref.vAlign;

@@ -191,2 +191,2 @@ var top = 0,

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjb250YWluQnlTY3JlZW4iLCJlbGVtZW50IiwiYW5jaG9yUG9pbnQiLCJvcHRpb25zIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInN0eWxlIiwicG9zaXRpb24iLCJjb25zb2xlIiwiZXJyb3IiLCJlbFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJhbmNob3JSZWN0IiwiYnVmZmVycyIsImFsbCIsImJ1ZmZlciIsInRvcCIsInRvcEJ1ZmZlciIsImJvdHRvbSIsImJvdHRvbUJ1ZmZlciIsImxlZnQiLCJsZWZ0QnVmZmVyIiwicmlnaHQiLCJyaWdodEJ1ZmZlciIsInBvc2l0aW9ucyIsImZvcmNlUG9zaXRpb24iLCJmaWx0ZXIiLCJCb29sZWFuIiwiY29uY2F0IiwiaEFsaWducyIsImhBbGlnbiIsImZvcmNlSEFsaWduIiwidkFsaWducyIsInZBbGlnbiIsImZvcmNlVkFsaWduIiwiYWxsUG9zc2libGVDaG9pY2VzIiwibWFwIiwiY2hvaWNlQW5kQ29vcmQiLCJpIiwibGVuZ3RoIiwiY2hvaWNlIiwiY29vcmQiLCJwb3NpdGlvbkFuZEFsaWduIiwiaGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJ3aWR0aCIsImlubmVyV2lkdGgiLCJlbCIsInJlY3QiLCJNYXRoIiwicm91bmQiLCJmbG9vciIsImNlaWwiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztrQkFxQ3dCQSxlOztBQW5DeEI7Ozs7QUFDQTs7Ozs7O0FBa0NlLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQStDQyxXQUEvQyxFQUF5RUMsT0FBekUsRUFDUjtBQUNMLE1BQUlDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixJQUF5Q0MsT0FBT0MsZ0JBQXBELEVBQXNFO0FBQ3BFLFFBQU1DLFFBQVFGLE9BQU9DLGdCQUFQLENBQXdCUCxPQUF4QixDQUFkO0FBQ0Es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V3ZDLFdBQVdRLElBQVgsR0FBa0JWLE9BQU9tQyxLQUF6QixHQUFpQ2hDLFFBQVFDLEdBQXpDLEdBQStDRCxRQUFRUyxLQUFsRSxDQUFQO0FBQ0E7QUFDRixXQUFLLE9BQUw7QUFDRUYsZUFBTzZCLEtBQUtHLElBQUwsQ0FBVXhDLFdBQVdVLEtBQVgsR0FBbUJULFFBQVFDLEdBQTNCLEdBQWlDRCxRQUFRTyxJQUFuRCxDQUFQO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSWlDLEtBQUosQ0FBVSxtQkFBVixDQUFOO0FBUFQ7QUFTQSxZQUFRcEIsTUFBUjtBQUNBLFdBQUssUUFBTDtBQUNFakIsY0FBTWlDLEtBQUtDLEtBQUwsQ0FBVyxDQUFDdEMsV0FBV0ksR0FBWCxHQUFpQkosV0FBV00sTUFBNUIsR0FBcUNSLE9BQU9pQyxNQUE3QyxJQUFxRCxDQUFoRSxDQUFOO0FBQ0E7QUFDRixXQUFLLEtBQUw7QUFDRTNCLGNBQU1pQyxLQUFLQyxLQUFMLENBQVd0QyxXQUFXSSxHQUF0QixDQUFOO0FBQ0E7QUFDRixXQUFLLFFBQUw7QUFDRUEsY0FBTWlDLEtBQUtDLEtBQUwsQ0FBV3RDLFdBQVdNLE1BQVgsR0FBb0JSLE9BQU9pQyxNQUF0QyxDQUFOO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSVUsS0FBSixDQUFVLG1CQUFWLENBQU47QUFWVDtBQVlEO0FBQ0QsU0FBTyxFQUFDckMsUUFBRCxFQUFNSSxVQUFOLEVBQVA7QUFDRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC91bmlxJztcblxuZXhwb3J0IHR5cGUgUG9zaXRpb24gPSAndG9wJ3wnYm90dG9tJ3wnbGVmdCd8J3JpZ2h0J3wnY292ZXInO1xuZXhwb3J0IHR5cGUgSEFsaWduID0gJ2NlbnRlcid8J2xlZnQnfCdyaWdodCc7XG5leHBvcnQgdHlwZSBWQWxpZ24gPSAnY2VudGVyJ3wndG9wJ3wnYm90dG9tJztcbmV4cG9ydCB0eXBlIENob2ljZSA9IHtcbiAgcG9zaXRpb246IFBvc2l0aW9uO1xuICBoQWxpZ246IEhBbGlnbjtcbiAgdkFsaWduOiBWQWxpZ247XG59O1xuXG5leHBvcnQgdHlwZSBPcHRpb25zID0ge1xuICBwb3NpdGlvbj86ID9Qb3NpdGlvbjtcbiAgZm9yY2VQb3NpdGlvbj86ID9ib29sZWFuO1xuICBoQWxpZ24/OiA/SEFsaWduO1xuICBmb3JjZUhBbGlnbj86ID9ib29sZWFuO1xuICB2QWxpZ24/OiA/VkFsaWduO1xuICBmb3JjZVZBbGlnbj86ID9ib29sZWFuO1xuICBidWZmZXI/OiA/bnVtYmVyO1xuICB0b3BCdWZmZXI/OiA/bnVtYmVyO1xuICBib3R0b21CdWZmZXI/OiA/bnVtYmVyO1xuICBsZWZ0QnVmZmVyPzogP251bWJlcjtcbiAgcmlnaHRCdWZmZXI/OiA/bnVtYmVyO1xufTtcblxudHlwZSBSZWN0ID0geyAvLyBTaW1pbGFyIHRvIENsaWVudFJlY3QsIGJ1dCBub3QgYSBjbGFzc1xuICB0b3A6IG51bWJlcjtcbiAgYm90dG9tOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIHJpZ2h0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb250YWluQnlTY3JlZW4oZWxlbWVudDogSFRNTEVsZW1lbnQsIGFuY2hvclBvaW50OiBIVE1MRWxlbWVudCwgb3B0aW9uczogT3B0aW9ucyk6XG5DaG9pY2Uge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSkge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgaWYgKHN0eWxlLnBvc2l0aW9uICE9PSAnZml4ZWQnKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignY29udGFpbkJ5U2NyZWVuIG9ubHkgd29ya3Mgb24gZml4ZWQgcG9zaXRpb24gZWxlbWVudHMnLCBlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBlbFJlY3Q6IFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCk7XG4gIGNvbnN0IGFuY2hvclJlY3Q6IFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoYW5jaG9yUG9pbnQpO1xuXG4gIGNvbnN0IGJ1ZmZlcnMgPSB7XG4gICAgYWxsOiBvcHRpb25zLmJ1ZmZlciB8fCAwLFxuICAgIHRvcDogb3B0aW9ucy50b3BCdWZmZXIgfHwgMCxcbiAgICBib3R0b206IG9wdGlvbnMuYm90dG9tQnVmZmVyIHx8IDAsXG4gICAgbGVmdDogb3B0aW9ucy5sZWZ0QnVmZmVyIHx8IDAsXG4gICAgcmlnaHQ6IG9wdGlvbnMucmlnaHRCdWZmZXIgfHwgMFxuICB9O1xuXG4gIGNvbnN0IHBvc2l0aW9uczogUG9zaXRpb25bXSA9IG9wdGlvbnMucG9zaXRpb24gJiYgb3B0aW9ucy5mb3JjZVBvc2l0aW9uID9cbiAgICBbb3B0aW9ucy5wb3NpdGlvbl0gOlxuICAgIHVuaXEoW29wdGlvbnMucG9zaXRpb25dLmZpbHRlcihCb29sZWFuKS5jb25jYXQoWyd0b3AnLCdib3R0b20nLCdsZWZ0JywncmlnaHQnXSkpO1xuICBjb25zdCBoQWxpZ25zOiBIQWxpZ25bXSA9IG9wdGlvbnMuaEFsaWduICYmIG9wdGlvbnMuZm9yY2VIQWxpZ24gP1xuICAgIFtvcHRpb25zLmhBbGlnbl0gOlxuICAgIHVuaXEoW29wdGlvbnMuaEFsaWduXS5maWx0ZXIoQm9vbGVhbikuY29uY2F0KFsnY2VudGVyJywnbGVmdCcsJ3JpZ2h0J10pKTtcbiAgY29uc3QgdkFsaWduczogVkFsaWduW10gPSBvcHRpb25zLnZBbGlnbiAmJiBvcHRpb25zLmZvcmNlVkFsaWduID9cbiAgICBbb3B0aW9ucy52QWxpZ25dIDpcbiAgICB1bmlxKFtvcHRpb25zLnZBbGlnbl0uZmlsdGVyKEJvb2xlYW4pLmNvbmNhdChbJ2NlbnRlcicsJ3RvcCcsJ2JvdHRvbSddKSk7XG5cbiAgY29uc3QgYWxsUG9zc2libGVDaG9pY2VzID0gZmxhdHRlbihwb3NpdGlvbnMubWFwKHBvc2l0aW9uID0+XG4gICAgKHBvc2l0aW9uID09PSAnY292ZXInKSA/XG4gICAgICBmbGF0dGVuKGhBbGlnbnMubWFwKGhBbGlnbiA9PiB2QWxpZ25zLm1hcCh2QWxpZ24gPT4gKHtwb3NpdGlvbiwgaEFsaWduLCB2QWxpZ259KSkpKSA6XG4gICAgKHBvc2l0aW9uID09PSAndG9wJyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbScpID9cbiAgICAgIGhBbGlnbnMubWFwKGhBbGlnbiA9PiAoe3Bvc2l0aW9uLCBoQWxpZ24sIHZBbGlnbjogJ2NlbnRlcid9KSkgOlxuICAgIHZBbGlnbnMubWFwKHZBbGlnbiA9PiAoe3Bvc2l0aW9uLCBoQWxpZ246ICdjZW50ZXInLCB2QWxpZ259KSlcbiAgKSk7XG5cbiAgbGV0IGNob2ljZUFuZENvb3JkID0gbnVsbDtcbiAgZm9yIChsZXQgaT0wOyBpIDwgYWxsUG9zc2libGVDaG9pY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hvaWNlID0gYWxsUG9zc2libGVDaG9pY2VzW2ldO1xuICAgIGNvbnN0IGNvb3JkID0gcG9zaXRpb25BbmRBbGlnbihlbFJlY3QsIGFuY2hvclJlY3QsIGNob2ljZSwgYnVmZmVycyk7XG4gICAgY29uc3Qge3RvcCwgbGVmdH0gPSBjb29yZDtcbiAgICBpZiAoXG4gICAgICB0b3AtYnVmZmVycy5hbGwtYnVmZmVycy50b3AgPj0gMCAmJlxuICAgICAgbGVmdC1idWZmZXJzLmFsbC1idWZmZXJzLmxlZnQgPj0gMCAmJlxuICAgICAgdG9wK2VsUmVjdC5oZWlnaHQrYnVmZmVycy5hbGwrYnVmZmVycy5ib3R0b20gPD0gd2luZG93LmlubmVySGVpZ2h0ICYmXG4gICAgICBsZWZ0K2VsUmVjdC53aWR0aCtidWZmZXJzLmFsbCtidWZmZXJzLnJpZ2h0IDw9IHdpbmRvdy5pbm5lcldpZHRoXG4gICAgKSB7XG4gICAgICBjaG9pY2VBbmRDb29yZCA9IHtjaG9pY2UsIGNvb3JkfTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIGlmIHdlIGZhaWxlZCB0byBmaW5kIGEgcG9zaXRpb24gdGhhdCBmaXQgb24gdGhlIHNjcmVlbi5cbiAgaWYgKCFjaG9pY2VBbmRDb29yZCkge1xuICAgIGNvbnN0IGNob2ljZSA9IHtcbiAgICAgIHBvc2l0aW9uOiBvcHRpb25zLnBvc2l0aW9ufHwndG9wJyxcbiAgICAgIGhBbGlnbjogb3B0aW9ucy5oQWxpZ258fCdjZW50ZXInLFxuICAgICAgdkFsaWduOiBvcHRpb25zLnZBbGlnbnx8J2NlbnRlcidcbiAgICB9O1xuICAgIGNob2ljZUFuZENvb3JkID0ge1xuICAgICAgY2hvaWNlLFxuICAgICAgY29vcmQ6IHBvc2l0aW9uQW5kQWxpZ24oZWxSZWN0LCBhbmNob3JSZWN0LCBjaG9pY2UsIGJ1ZmZlcnMpXG4gICAgfTtcbiAgfVxuXG4gIGVsZW1lbnQuc3R5bGUudG9wID0gYCR7Y2hvaWNlQW5kQ29vcmQuY29vcmQudG9wfXB4YDtcbiAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7Y2hvaWNlQW5kQ29vcmQuY29vcmQubGVmdH1weGA7XG5cbiAgcmV0dXJuIGNob2ljZUFuZENvb3JkLmNob2ljZTtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsOiBFbGVtZW50KTogUmVjdCB7XG4gIGxldCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGlmICghKCd3aWR0aCcgaW4gcmVjdCkpIHtcbiAgICAvLyBJRSA8OSBzdXBwb3J0XG4gICAgcmVjdCA9IE9iamVjdC5hc3NpZ24oKHtcbiAgICAgIHdpZHRoOiByZWN0LnJpZ2h0LXJlY3QubGVmdCxcbiAgICAgIGhlaWdodDogcmVjdC5ib3R0b20tcmVjdC50b3BcbiAgICB9OiBPYmplY3QpLCByZWN0KTtcbiAgfVxuICByZXR1cm4gcmVjdDtcbn1cblxuZnVuY3Rpb24gcG9zaXRpb25BbmRBbGlnbihlbFJlY3Q6IFJlY3QsIGFuY2hvclJlY3Q6IFJlY3QsIHtwb3NpdGlvbiwgaEFsaWduLCB2QWxpZ259OiBDaG9pY2UsIGJ1ZmZlcnMpOiB7dG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlcn0ge1xuICBsZXQgdG9wPTAsIGxlZnQ9MDtcbiAgaWYgKHBvc2l0aW9uID09PSAnY292ZXInKSB7XG4gICAgc3dpdGNoIChoQWxpZ24pIHtcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgbGVmdCA9IE1hdGgucm91bmQoKGFuY2hvclJlY3QubGVmdCArIGFuY2hvclJlY3QucmlnaHQgLSBlbFJlY3Qud2lkdGgpLzIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBsZWZ0ID0gTWF0aC5mbG9vcihhbmNob3JSZWN0LmxlZnQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgbGVmdCA9IE1hdGguY2VpbChhbmNob3JSZWN0LnJpZ2h0IC0gZWxSZWN0LndpZHRoKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gICAgc3dpdGNoICh2QWxpZ24pIHtcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC50b3AgKyBhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpLzIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHRvcCA9IE1hdGguZmxvb3IoYW5jaG9yUmVjdC50b3ApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHRvcCA9IE1hdGguY2VpbChhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3RvcCcgfHwgcG9zaXRpb24gPT09ICdib3R0b20nKSB7XG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICB0b3AgPSBNYXRoLmZsb29yKGFuY2hvclJlY3QudG9wIC0gZWxSZWN0LmhlaWdodCAtIGJ1ZmZlcnMuYWxsIC0gYnVmZmVycy5ib3R0b20pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHRvcCA9IE1hdGguY2VpbChhbmNob3JSZWN0LmJvdHRvbSArIGJ1ZmZlcnMuYWxsICsgYnVmZmVycy50b3ApO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgICBzd2l0Y2ggKGhBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICBsZWZ0ID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC5sZWZ0ICsgYW5jaG9yUmVjdC5yaWdodCAtIGVsUmVjdC53aWR0aCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIGxlZnQgPSBNYXRoLnJvdW5kKGFuY2hvclJlY3QubGVmdCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICBsZWZ0ID0gTWF0aC5yb3VuZChhbmNob3JSZWN0LnJpZ2h0IC0gZWxSZWN0LndpZHRoKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgbGVmdCA9IE1hdGguZmxvb3IoYW5jaG9yUmVjdC5sZWZ0IC0gZWxSZWN0LndpZHRoIC0gYnVmZmVycy5hbGwgLSBidWZmZXJzLnJpZ2h0KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIGxlZnQgPSBNYXRoLmNlaWwoYW5jaG9yUmVjdC5yaWdodCArIGJ1ZmZlcnMuYWxsICsgYnVmZmVycy5sZWZ0KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gICAgc3dpdGNoICh2QWxpZ24pIHtcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC50b3AgKyBhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpLzIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHRvcCA9IE1hdGgucm91bmQoYW5jaG9yUmVjdC50b3ApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHRvcCA9IE1hdGgucm91bmQoYW5jaG9yUmVjdC5ib3R0b20gLSBlbFJlY3QuaGVpZ2h0KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHt0b3AsIGxlZnR9O1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjb250YWluQnlTY3JlZW4iLCJlbGVtZW50IiwiYW5jaG9yUG9pbnQiLCJvcHRpb25zIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInN0eWxlIiwicG9zaXRpb24iLCJjb25zb2xlIiwiZXJyb3IiLCJlbFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJhbmNob3JSZWN0IiwiYnVmZmVycyIsImFsbCIsImJ1ZmZlciIsInRvcCIsInRvcEJ1ZmZlciIsImJvdHRvbSIsImJvdHRvbUJ1ZmZlciIsImxlZnQiLCJsZWZ0QnVmZmVyIiwicmlnaHQiLCJyaWdodEJ1ZmZlciIsInBvc2l0aW9ucyIsImZvcmNlUG9zaXRpb24iLCJmaWx0ZXIiLCJCb29sZWFuIiwiY29uY2F0IiwiaEFsaWducyIsImhBbGlnbiIsImZvcmNlSEFsaWduIiwidkFsaWducyIsInZBbGlnbiIsImZvcmNlVkFsaWduIiwiYWxsUG9zc2libGVDaG9pY2VzIiwibWFwIiwiY2hvaWNlQW5kQ29vcmQiLCJpIiwibGVuZ3RoIiwiY2hvaWNlIiwiY29vcmQiLCJwb3NpdGlvbkFuZEFsaWduIiwiaGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJ3aWR0aCIsImlubmVyV2lkdGgiLCJlbCIsInJlY3QiLCJNYXRoIiwicm91bmQiLCJmbG9vciIsImNlaWwiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztrQkFxQ3dCQSxlOztBQW5DeEI7Ozs7QUFDQTs7Ozs7O0FBa0NlLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQStDQyxXQUEvQyxFQUF5RUMsT0FBekUsRUFDUjtBQUNMLE1BQUlDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixJQUF5Q0MsT0FBT0MsZ0JBQXBELEVBQXNFO0FBQ3BFLFFBQU1DLFFBQVFGLE9BQU9DLGdCQUFQLENBQXdCUCxPQUF4QixDQUFkO0FBQ0Es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V3ZDLFdBQVdRLElBQVgsR0FBa0JWLE9BQU9tQyxLQUF6QixHQUFpQ2hDLFFBQVFDLEdBQXpDLEdBQStDRCxRQUFRUyxLQUFsRSxDQUFQO0FBQ0E7QUFDRixXQUFLLE9BQUw7QUFDRUYsZUFBTzZCLEtBQUtHLElBQUwsQ0FBVXhDLFdBQVdVLEtBQVgsR0FBbUJULFFBQVFDLEdBQTNCLEdBQWlDRCxRQUFRTyxJQUFuRCxDQUFQO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSWlDLEtBQUosQ0FBVSxtQkFBVixDQUFOO0FBUFQ7QUFTQSxZQUFRcEIsTUFBUjtBQUNBLFdBQUssUUFBTDtBQUNFakIsY0FBTWlDLEtBQUtDLEtBQUwsQ0FBVyxDQUFDdEMsV0FBV0ksR0FBWCxHQUFpQkosV0FBV00sTUFBNUIsR0FBcUNSLE9BQU9pQyxNQUE3QyxJQUFxRCxDQUFoRSxDQUFOO0FBQ0E7QUFDRixXQUFLLEtBQUw7QUFDRTNCLGNBQU1pQyxLQUFLQyxLQUFMLENBQVd0QyxXQUFXSSxHQUF0QixDQUFOO0FBQ0E7QUFDRixXQUFLLFFBQUw7QUFDRUEsY0FBTWlDLEtBQUtDLEtBQUwsQ0FBV3RDLFdBQVdNLE1BQVgsR0FBb0JSLE9BQU9pQyxNQUF0QyxDQUFOO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSVUsS0FBSixDQUFVLG1CQUFWLENBQU47QUFWVDtBQVlEO0FBQ0QsU0FBTyxFQUFDckMsUUFBRCxFQUFNSSxVQUFOLEVBQVA7QUFDRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC91bmlxJztcblxuZXhwb3J0IHR5cGUgUG9zaXRpb24gPSAndG9wJ3wnYm90dG9tJ3wnbGVmdCd8J3JpZ2h0J3wnY292ZXInO1xuZXhwb3J0IHR5cGUgSEFsaWduID0gJ2NlbnRlcid8J2xlZnQnfCdyaWdodCc7XG5leHBvcnQgdHlwZSBWQWxpZ24gPSAnY2VudGVyJ3wndG9wJ3wnYm90dG9tJztcbmV4cG9ydCB0eXBlIENob2ljZSA9IHtcbiAgcG9zaXRpb246IFBvc2l0aW9uO1xuICBoQWxpZ246IEhBbGlnbjtcbiAgdkFsaWduOiBWQWxpZ247XG59O1xuXG5leHBvcnQgdHlwZSBPcHRpb25zID0ge1xuICBwb3NpdGlvbj86ID9Qb3NpdGlvbjtcbiAgZm9yY2VQb3NpdGlvbj86ID9ib29sZWFuO1xuICBoQWxpZ24/OiA/SEFsaWduO1xuICBmb3JjZUhBbGlnbj86ID9ib29sZWFuO1xuICB2QWxpZ24/OiA/VkFsaWduO1xuICBmb3JjZVZBbGlnbj86ID9ib29sZWFuO1xuICBidWZmZXI/OiA/bnVtYmVyO1xuICB0b3BCdWZmZXI/OiA/bnVtYmVyO1xuICBib3R0b21CdWZmZXI/OiA/bnVtYmVyO1xuICBsZWZ0QnVmZmVyPzogP251bWJlcjtcbiAgcmlnaHRCdWZmZXI/OiA/bnVtYmVyO1xufTtcblxudHlwZSBSZWN0ID0geyAvLyBTaW1pbGFyIHRvIENsaWVudFJlY3QsIGJ1dCBub3QgYSBjbGFzc1xuICB0b3A6IG51bWJlcjtcbiAgYm90dG9tOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIHJpZ2h0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb250YWluQnlTY3JlZW4oZWxlbWVudDogSFRNTEVsZW1lbnQsIGFuY2hvclBvaW50OiBIVE1MRWxlbWVudCwgb3B0aW9uczogT3B0aW9ucyk6XG5DaG9pY2Uge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSkge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgaWYgKHN0eWxlLnBvc2l0aW9uICE9PSAnZml4ZWQnKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignY29udGFpbkJ5U2NyZWVuIG9ubHkgd29ya3Mgb24gZml4ZWQgcG9zaXRpb24gZWxlbWVudHMnLCBlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBlbFJlY3Q6IFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCk7XG4gIGNvbnN0IGFuY2hvclJlY3Q6IFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoYW5jaG9yUG9pbnQpO1xuXG4gIGNvbnN0IGJ1ZmZlcnMgPSB7XG4gICAgYWxsOiBvcHRpb25zLmJ1ZmZlciB8fCAwLFxuICAgIHRvcDogb3B0aW9ucy50b3BCdWZmZXIgfHwgMCxcbiAgICBib3R0b206IG9wdGlvbnMuYm90dG9tQnVmZmVyIHx8IDAsXG4gICAgbGVmdDogb3B0aW9ucy5sZWZ0QnVmZmVyIHx8IDAsXG4gICAgcmlnaHQ6IG9wdGlvbnMucmlnaHRCdWZmZXIgfHwgMFxuICB9O1xuXG4gIGNvbnN0IHBvc2l0aW9uczogUG9zaXRpb25bXSA9IG9wdGlvbnMucG9zaXRpb24gJiYgb3B0aW9ucy5mb3JjZVBvc2l0aW9uID9cbiAgICBbb3B0aW9ucy5wb3NpdGlvbl0gOlxuICAgIHVuaXEoW29wdGlvbnMucG9zaXRpb25dLmZpbHRlcihCb29sZWFuKS5jb25jYXQoWyd0b3AnLCdib3R0b20nLCdsZWZ0JywncmlnaHQnXSkpO1xuICBjb25zdCBoQWxpZ25zOiBIQWxpZ25bXSA9IG9wdGlvbnMuaEFsaWduICYmIG9wdGlvbnMuZm9yY2VIQWxpZ24gP1xuICAgIFtvcHRpb25zLmhBbGlnbl0gOlxuICAgIHVuaXEoW29wdGlvbnMuaEFsaWduXS5maWx0ZXIoQm9vbGVhbikuY29uY2F0KFsnY2VudGVyJywnbGVmdCcsJ3JpZ2h0J10pKTtcbiAgY29uc3QgdkFsaWduczogVkFsaWduW10gPSBvcHRpb25zLnZBbGlnbiAmJiBvcHRpb25zLmZvcmNlVkFsaWduID9cbiAgICBbb3B0aW9ucy52QWxpZ25dIDpcbiAgICB1bmlxKFtvcHRpb25zLnZBbGlnbl0uZmlsdGVyKEJvb2xlYW4pLmNvbmNhdChbJ2NlbnRlcicsJ3RvcCcsJ2JvdHRvbSddKSk7XG5cbiAgY29uc3QgYWxsUG9zc2libGVDaG9pY2VzID0gZmxhdHRlbihwb3NpdGlvbnMubWFwKHBvc2l0aW9uID0+XG4gICAgKHBvc2l0aW9uID09PSAnY292ZXInKSA/XG4gICAgICBmbGF0dGVuKGhBbGlnbnMubWFwKGhBbGlnbiA9PiB2QWxpZ25zLm1hcCh2QWxpZ24gPT4gKHtwb3NpdGlvbiwgaEFsaWduLCB2QWxpZ259KSkpKSA6XG4gICAgICAocG9zaXRpb24gPT09ICd0b3AnIHx8IHBvc2l0aW9uID09PSAnYm90dG9tJykgP1xuICAgICAgICBoQWxpZ25zLm1hcChoQWxpZ24gPT4gKHtwb3NpdGlvbiwgaEFsaWduLCB2QWxpZ246ICdjZW50ZXInfSkpIDpcbiAgICAgICAgdkFsaWducy5tYXAodkFsaWduID0+ICh7cG9zaXRpb24sIGhBbGlnbjogJ2NlbnRlcicsIHZBbGlnbn0pKVxuICApKTtcblxuICBsZXQgY2hvaWNlQW5kQ29vcmQgPSBudWxsO1xuICBmb3IgKGxldCBpPTA7IGkgPCBhbGxQb3NzaWJsZUNob2ljZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaG9pY2UgPSBhbGxQb3NzaWJsZUNob2ljZXNbaV07XG4gICAgY29uc3QgY29vcmQgPSBwb3NpdGlvbkFuZEFsaWduKGVsUmVjdCwgYW5jaG9yUmVjdCwgY2hvaWNlLCBidWZmZXJzKTtcbiAgICBjb25zdCB7dG9wLCBsZWZ0fSA9IGNvb3JkO1xuICAgIGlmIChcbiAgICAgIHRvcC1idWZmZXJzLmFsbC1idWZmZXJzLnRvcCA+PSAwICYmXG4gICAgICBsZWZ0LWJ1ZmZlcnMuYWxsLWJ1ZmZlcnMubGVmdCA+PSAwICYmXG4gICAgICB0b3ArZWxSZWN0LmhlaWdodCtidWZmZXJzLmFsbCtidWZmZXJzLmJvdHRvbSA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgJiZcbiAgICAgIGxlZnQrZWxSZWN0LndpZHRoK2J1ZmZlcnMuYWxsK2J1ZmZlcnMucmlnaHQgPD0gd2luZG93LmlubmVyV2lkdGhcbiAgICApIHtcbiAgICAgIGNob2ljZUFuZENvb3JkID0ge2Nob2ljZSwgY29vcmR9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbGJhY2sgaWYgd2UgZmFpbGVkIHRvIGZpbmQgYSBwb3NpdGlvbiB0aGF0IGZpdCBvbiB0aGUgc2NyZWVuLlxuICBpZiAoIWNob2ljZUFuZENvb3JkKSB7XG4gICAgY29uc3QgY2hvaWNlID0ge1xuICAgICAgcG9zaXRpb246IG9wdGlvbnMucG9zaXRpb258fCd0b3AnLFxuICAgICAgaEFsaWduOiBvcHRpb25zLmhBbGlnbnx8J2NlbnRlcicsXG4gICAgICB2QWxpZ246IG9wdGlvbnMudkFsaWdufHwnY2VudGVyJ1xuICAgIH07XG4gICAgY2hvaWNlQW5kQ29vcmQgPSB7XG4gICAgICBjaG9pY2UsXG4gICAgICBjb29yZDogcG9zaXRpb25BbmRBbGlnbihlbFJlY3QsIGFuY2hvclJlY3QsIGNob2ljZSwgYnVmZmVycylcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudC5zdHlsZS50b3AgPSBgJHtjaG9pY2VBbmRDb29yZC5jb29yZC50b3B9cHhgO1xuICBlbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtjaG9pY2VBbmRDb29yZC5jb29yZC5sZWZ0fXB4YDtcblxuICByZXR1cm4gY2hvaWNlQW5kQ29vcmQuY2hvaWNlO1xufVxuXG5mdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWw6IEVsZW1lbnQpOiBSZWN0IHtcbiAgbGV0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgaWYgKCEoJ3dpZHRoJyBpbiByZWN0KSkge1xuICAgIC8vIElFIDw5IHN1cHBvcnRcbiAgICByZWN0ID0gT2JqZWN0LmFzc2lnbigoe1xuICAgICAgd2lkdGg6IHJlY3QucmlnaHQtcmVjdC5sZWZ0LFxuICAgICAgaGVpZ2h0OiByZWN0LmJvdHRvbS1yZWN0LnRvcFxuICAgIH06IE9iamVjdCksIHJlY3QpO1xuICB9XG4gIHJldHVybiByZWN0O1xufVxuXG5mdW5jdGlvbiBwb3NpdGlvbkFuZEFsaWduKGVsUmVjdDogUmVjdCwgYW5jaG9yUmVjdDogUmVjdCwge3Bvc2l0aW9uLCBoQWxpZ24sIHZBbGlnbn06IENob2ljZSwgYnVmZmVycyk6IHt0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyfSB7XG4gIGxldCB0b3A9MCwgbGVmdD0wO1xuICBpZiAocG9zaXRpb24gPT09ICdjb3ZlcicpIHtcbiAgICBzd2l0Y2ggKGhBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICBsZWZ0ID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC5sZWZ0ICsgYW5jaG9yUmVjdC5yaWdodCAtIGVsUmVjdC53aWR0aCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIGxlZnQgPSBNYXRoLmZsb29yKGFuY2hvclJlY3QubGVmdCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICBsZWZ0ID0gTWF0aC5jZWlsKGFuY2hvclJlY3QucmlnaHQgLSBlbFJlY3Qud2lkdGgpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHZBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICB0b3AgPSBNYXRoLnJvdW5kKChhbmNob3JSZWN0LnRvcCArIGFuY2hvclJlY3QuYm90dG9tIC0gZWxSZWN0LmhlaWdodCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0b3AnOlxuICAgICAgdG9wID0gTWF0aC5mbG9vcihhbmNob3JSZWN0LnRvcCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgdG9wID0gTWF0aC5jZWlsKGFuY2hvclJlY3QuYm90dG9tIC0gZWxSZWN0LmhlaWdodCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBub3QgaGFwcGVuJyk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAndG9wJyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHRvcCA9IE1hdGguZmxvb3IoYW5jaG9yUmVjdC50b3AgLSBlbFJlY3QuaGVpZ2h0IC0gYnVmZmVycy5hbGwgLSBidWZmZXJzLmJvdHRvbSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgdG9wID0gTWF0aC5jZWlsKGFuY2hvclJlY3QuYm90dG9tICsgYnVmZmVycy5hbGwgKyBidWZmZXJzLnRvcCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBub3QgaGFwcGVuJyk7XG4gICAgfVxuICAgIHN3aXRjaCAoaEFsaWduKSB7XG4gICAgY2FzZSAnY2VudGVyJzpcbiAgICAgIGxlZnQgPSBNYXRoLnJvdW5kKChhbmNob3JSZWN0LmxlZnQgKyBhbmNob3JSZWN0LnJpZ2h0IC0gZWxSZWN0LndpZHRoKS8yKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgbGVmdCA9IE1hdGgucm91bmQoYW5jaG9yUmVjdC5sZWZ0KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIGxlZnQgPSBNYXRoLnJvdW5kKGFuY2hvclJlY3QucmlnaHQgLSBlbFJlY3Qud2lkdGgpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBsZWZ0ID0gTWF0aC5mbG9vcihhbmNob3JSZWN0LmxlZnQgLSBlbFJlY3Qud2lkdGggLSBidWZmZXJzLmFsbCAtIGJ1ZmZlcnMucmlnaHQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgbGVmdCA9IE1hdGguY2VpbChhbmNob3JSZWN0LnJpZ2h0ICsgYnVmZmVycy5hbGwgKyBidWZmZXJzLmxlZnQpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHZBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICB0b3AgPSBNYXRoLnJvdW5kKChhbmNob3JSZWN0LnRvcCArIGFuY2hvclJlY3QuYm90dG9tIC0gZWxSZWN0LmhlaWdodCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0b3AnOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZChhbmNob3JSZWN0LnRvcCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZChhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge3RvcCwgbGVmdH07XG59XG4iXX0=
{
"name": "contain-by-screen",
"version": "1.1.0",
"version": "1.1.1",
"description": "Position a dropdown element near a button in a way that fits on the screen.",
"main": "js/index.js",
"scripts": {
"prepublish": "babel -s inline -d js/ src/ && flow-copy-source -v src js",
"prepare": "rimraf js && babel -s inline -d js/ src/ && flow-copy-source -v src js",
"test": "npm run lint && npm run flow_check && mocha",

@@ -35,3 +35,3 @@ "flow_check": "flow check",

"babel-cli": "^6.14.0",
"babel-eslint": "^6.1.2",
"babel-eslint": "^7.2.3",
"babel-plugin-add-module-exports": "^0.2.1",

@@ -43,13 +43,14 @@ "babel-plugin-transform-class-properties": "^6.11.5",

"babel-register": "^6.14.0",
"eslint": "^3.4.0",
"eslint-plugin-react": "^6.2.0",
"flow-bin": "^0.32.0",
"eslint": "^4.3.0",
"eslint-plugin-flowtype": "^2.35.0",
"flow-bin": "^0.51.1",
"flow-copy-source": "^1.0.1",
"mocha": "^3.0.2"
"mocha": "^3.0.2",
"rimraf": "^2.6.1"
},
"dependencies": {
"babel-runtime": "^6.11.6",
"envify": "^3.4.1",
"babel-runtime": "^6.23.0",
"envify": "^4.1.0",
"lodash": "^4.6.1"
}
}

@@ -57,18 +57,20 @@ # contain-by-screen

this much larger in all directions, requiring it to be placed with the given
amount of space between it, the anchor element when position is not "cover",
and the edges of the screen. The buffer option is useful if the element has
amount of space away from the anchor element (when position is not "cover") and
the edges of the screen. The buffer option is useful if the element has
children which are positioned such that they escape the boundaries of the
element. Buffers do not affect alignment with the anchor element.
`topBuffer` specifies an additional buffer space only for the top edge.
`topBuffer`, `bottomBuffer`, `leftBuffer`, and `rightBuffer` specify an
additional buffer space for a specific edge.
`bottomBuffer` specifies an additional buffer space only for the bottom edge.
## Related
`leftBuffer` specifies an additional buffer space only for the left edge.
The project [react-float-anchor](https://github.com/StreakYC/react-float-anchor)
is a React wrapper around this function, and
[react-menu-list](https://github.com/StreakYC/react-menu-list) is a library that
uses it for building interactive menus.
`rightBuffer` specifies an additional buffer space only for the right edge.
## Types
Full [Flow](http://flowtype.org/) type declarations for this module are
Full [Flow](https://flowtype.org/) type declarations for this module are
included!

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc