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.2.1 to 1.3.0

.editorconfig

111

js/index.js

@@ -1,26 +0,18 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
exports.default = containByScreen;
var _flatten = require('lodash/flatten');
var _flatten = _interopRequireDefault(require("lodash/flatten"));
var _flatten2 = _interopRequireDefault(_flatten);
var _uniq = _interopRequireDefault(require("lodash/uniq"));
var _uniq = require('lodash/uniq');
var _uniq2 = _interopRequireDefault(_uniq);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function containByScreen(element, anchorPoint, options) {
if (process.env.NODE_ENV !== 'production' && window.getComputedStyle) {
var style = window.getComputedStyle(element);
if (style.position !== 'fixed') {

@@ -34,3 +26,2 @@ // eslint-disable-next-line no-console

var anchorRect = getBoundingClientRect(anchorPoint);
var buffers = {

@@ -43,37 +34,49 @@ all: options.buffer || 0,

};
var optionPositions = Array.isArray(options.position) ? options.position : [options.position].filter(Boolean);
var optionHAligns = Array.isArray(options.hAlign) ? options.hAlign : [options.hAlign].filter(Boolean);
var optionVAligns = Array.isArray(options.vAlign) ? options.vAlign : [options.vAlign].filter(Boolean);
var positions = optionPositions.length > 0 && options.forcePosition ? optionPositions : (0, _uniq2.default)(optionPositions.concat(['top', 'bottom', 'left', 'right']));
var hAligns = optionHAligns.length > 0 && options.forceHAlign ? optionHAligns : (0, _uniq2.default)(optionHAligns.concat(['center', 'left', 'right']));
var vAligns = optionVAligns.length > 0 && options.forceVAlign ? optionVAligns : (0, _uniq2.default)(optionVAligns.concat(['center', 'top', 'bottom']));
var allPossibleChoices = (0, _flatten2.default)(positions.map(function (position) {
return position === 'cover' ? (0, _flatten2.default)(hAligns.map(function (hAlign) {
var positions = optionPositions.length > 0 && options.forcePosition ? optionPositions : (0, _uniq.default)(optionPositions.concat(['top', 'bottom', 'left', 'right']));
var hAligns = optionHAligns.length > 0 && options.forceHAlign ? optionHAligns : (0, _uniq.default)(optionHAligns.concat(['center', 'left', 'right']));
var vAligns = optionVAligns.length > 0 && options.forceVAlign ? optionVAligns : (0, _uniq.default)(optionVAligns.concat(['center', 'top', 'bottom']));
var allPossibleChoices = (0, _flatten.default)(positions.map(function (position) {
return position === 'cover' ? (0, _flatten.default)(hAligns.map(function (hAlign) {
return vAligns.map(function (vAlign) {
return { position: position, hAlign: hAlign, vAlign: vAlign };
return {
position: position,
hAlign: hAlign,
vAlign: vAlign
};
});
})) : position === 'top' || position === 'bottom' ? hAligns.map(function (hAlign) {
return { position: position, hAlign: hAlign, vAlign: 'center' };
return {
position: position,
hAlign: hAlign,
vAlign: 'center'
};
}) : vAligns.map(function (vAlign) {
return { position: position, hAlign: 'center', vAlign: vAlign };
return {
position: position,
hAlign: 'center',
vAlign: vAlign
};
});
}));
var choiceAndCoord = null;
var choiceAndCoord = null;
for (var i = 0; i < allPossibleChoices.length; i++) {
var choice = allPossibleChoices[i];
var coord = positionAndAlign(elRect, anchorRect, choice, buffers);
var _top = coord.top,
_left = coord.left;
var top = coord.top,
left = coord.left;
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) {
choiceAndCoord = { choice: choice, coord: coord };
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) {
choiceAndCoord = {
choice: choice,
coord: coord
};
break;
}
}
} // Fallback if we failed to find a position that fit on the screen.
// Fallback if we failed to find a position that fit on the screen.
if (!choiceAndCoord) {

@@ -91,5 +94,4 @@ var _choice = {

element.style.top = choiceAndCoord.coord.top + 'px';
element.style.left = choiceAndCoord.coord.left + 'px';
element.style.top = "".concat(choiceAndCoord.coord.top, "px");
element.style.left = "".concat(choiceAndCoord.coord.left, "px");
return choiceAndCoord.choice;

@@ -100,5 +102,6 @@ }

var rect = el.getBoundingClientRect();
if (!('width' in rect)) {
// IE <9 support
rect = (0, _assign2.default)({
rect = Object.assign({
width: rect.right - rect.left,

@@ -108,2 +111,3 @@ height: rect.bottom - rect.top

}
return rect;

@@ -116,5 +120,5 @@ }

vAlign = _ref.vAlign;
var top = 0,
left = 0;
if (position === 'cover') {

@@ -125,11 +129,15 @@ switch (hAlign) {

break;
case 'left':
left = Math.floor(anchorRect.left);
break;
case 'right':
left = Math.ceil(anchorRect.right - elRect.width);
break;
default:
throw new Error('Should not happen');
}
switch (vAlign) {

@@ -139,8 +147,11 @@ case 'center':

break;
case 'top':
top = Math.floor(anchorRect.top);
break;
case 'bottom':
top = Math.ceil(anchorRect.bottom - elRect.height);
break;
default:

@@ -154,8 +165,11 @@ throw new Error('Should not happen');

break;
case 'bottom':
top = Math.ceil(anchorRect.bottom + buffers.all + buffers.top);
break;
default:
throw new Error('Should not happen');
}
switch (hAlign) {

@@ -165,8 +179,11 @@ case 'center':

break;
case 'left':
left = Math.round(anchorRect.left);
break;
case 'right':
left = Math.round(anchorRect.right - elRect.width);
break;
default:

@@ -180,8 +197,11 @@ throw new Error('Should not happen');

break;
case 'right':
left = Math.ceil(anchorRect.right + buffers.all + buffers.left);
break;
default:
throw new Error('Should not happen');
}
switch (vAlign) {

@@ -191,8 +211,11 @@ case 'center':

break;
case 'top':
top = Math.round(anchorRect.top);
break;
case 'bottom':
top = Math.round(anchorRect.bottom - elRect.height);
break;
default:

@@ -202,5 +225,11 @@ throw new Error('Should not happen');

}
return { top: top, left: left };
return {
top: top,
left: left
};
}
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjb250YWluQnlTY3JlZW4iLCJlbGVtZW50IiwiYW5jaG9yUG9pbnQiLCJvcHRpb25zIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInN0eWxlIiwicG9zaXRpb24iLCJjb25zb2xlIiwiZXJyb3IiLCJlbFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJhbmNob3JSZWN0IiwiYnVmZmVycyIsImFsbCIsImJ1ZmZlciIsInRvcCIsInRvcEJ1ZmZlciIsImJvdHRvbSIsImJvdHRvbUJ1ZmZlciIsImxlZnQiLCJsZWZ0QnVmZmVyIiwicmlnaHQiLCJyaWdodEJ1ZmZlciIsIm9wdGlvblBvc2l0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsIkJvb2xlYW4iLCJvcHRpb25IQWxpZ25zIiwiaEFsaWduIiwib3B0aW9uVkFsaWducyIsInZBbGlnbiIsInBvc2l0aW9ucyIsImxlbmd0aCIsImZvcmNlUG9zaXRpb24iLCJjb25jYXQiLCJoQWxpZ25zIiwiZm9yY2VIQWxpZ24iLCJ2QWxpZ25zIiwiZm9yY2VWQWxpZ24iLCJhbGxQb3NzaWJsZUNob2ljZXMiLCJtYXAiLCJjaG9pY2VBbmRDb29yZCIsImkiLCJjaG9pY2UiLCJjb29yZCIsInBvc2l0aW9uQW5kQWxpZ24iLCJoZWlnaHQiLCJpbm5lckhlaWdodCIsIndpZHRoIiwiaW5uZXJXaWR0aCIsImVsIiwicmVjdCIsIk1hdGgiLCJyb3VuZCIsImZsb29yIiwiY2VpbCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O2tCQXlDd0JBLGU7O0FBdkN4Qjs7OztBQUNBOzs7Ozs7QUFzQ2UsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBK0NDLFdBQS9DLEVBQXlFQyxPQUF6RSxFQUNSO0FBQ0wsTUFBSUMsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLElBQXlDQyxPQUFPQyxnQkFBcEQsRUFBc0U7QUFDcEUsUUFBTUMsUUFBUUYsT0FBT0MsZ0JBQVAsQ0FBd0JQLE9BQXhCLENBQWQ7QUFDQSxRQUFJUSxNQUFNQyxRQUFOLEtBQW1CLE9BQXZCLEVBQWdDO0FBQzlCO0FBQ0FDLGNBQVFDLEtBQVIsQ0FBYyx1REFBZCxFQUF1RVgsT0FBdkU7QUFDRDtBQUNGOztBQUVELE1BQU1ZLFNBQWVDLHNCQUFzQmIsT0FBdEIsQ0FBckI7QUFDQSxNQUFNYyxhQUFtQkQsc0JBQXNCWixXQUF0QixDQUF6Qjs7QUFFQSxNQUFNYyxVQUFVO0FBQ2RDLFNBQUtkLFFBQVFlLE1BQVIsSUFBa0IsQ0FEVDtBQUVkQyxTQUFLaEIsUUFBUWlCLFNBQVIsSUFBcUIsQ0FGWjtBQUdkQyxZQUFRbEIsUUFBUW1CLFlBQVIsSUFBd0IsQ0FIbEI7QUFJZEMsVUFBTXBCLFFBQVFxQixVQUFSLElBQXNCLENBSmQ7QUFLZEMsV0FBT3RCLFFBQVF1QixXQUFSLElBQXVCO0FBTGhCLEdBQWhCOztBQVFBLE1BQU1DLGtCQUFrQkMsTUFBTUMsT0FBTixDQUFjMUIsUUFBUU8sUUFBdEIsSUFBa0NQLFFBQVFPLFFBQTFDLEdBQXFELENBQUNQLFFBQVFPLFFBQVQsRUFBbUJvQixNQUFuQixDQUEwQkMsT0FBMUIsQ0FBN0U7QUFDQSxNQUFNQyxnQkFBZ0JKLE1BQU1DLE9BQU4sQ0FBYzFCLFFBQVE4QixNQUF0QixJQUFnQzlCLFFBQVE4QixNQUF4QyxHQUFpRCxDQUFDOUIsUUFBUThCLE1BQVQsRUFBaUJILE1BQWpCLENBQXdCQyxPQUF4QixDQUF2RTtBQUNBLE1BQU1HLGdCQUFnQk4sTUFBTUMsT0FBTixDQUFjMUIsUUFBUWdDLE1BQXRCLElBQWdDaEMsUUFBUWdDLE1BQXhDLEdBQWlELENBQUNoQyxRQUFRZ0MsTUFBVCxFQUFpQkwsTUFBakIsQ0FBd0JDLE9BQXhCLENBQXZFOztBQUVBLE1BQU1LLFlBQThCVCxnQkFBZ0JVLE1BQWhCLEdBQXlCLENBQXpCLElBQThCbEMsUUFBUW1DLGFBQXRDLEdBQ2xDWCxlQURrQyxHQUVsQyxvQkFBS0EsZ0JBQWdCWSxNQUFoQixDQUF1QixDQUFDLEtBQUQsRUFBTyxRQUFQLEVBQWdCLE1BQWhCLEVBQXVCLE9BQXZCLENBQXZCLENBQUwsQ0FGRjtBQUdBLE1BQU1DLFVBQTBCUixjQUFjSyxNQUFkLEdBQXVCLENBQXZCLElBQTRCbEMsUUFBUXNDLFdBQXBDLEdBQzlCVCxhQUQ4QixHQUU5QixvQkFBS0EsY0FBY08sTUFBZCxDQUFxQixDQUFDLFFBQUQsRUFBVSxNQUFWLEVBQWlCLE9BQWpCLENBQXJCLENBQUwsQ0FGRjtBQUdBLE1BQU1HLFVBQTBCUixjQUFjRyxNQUFkLEdBQXVCLENBQXZCLElBQTRCbEMsUUFBUXdDLFdBQXBDLEdBQzlCVCxhQUQ4QixHQUU5QixvQkFBS0EsY0FBY0ssTUFBZCxDQUFxQixDQUFDLFFBQUQsRUFBVSxLQUFWLEVBQWdCLFFBQWhCLENBQXJCLENBQUwsQ0FGRjs7QUFJQSxNQUFNSyxxQkFBcUIsdUJBQVFSLFVBQVVTLEdBQVYsQ0FBYztBQUFBLFdBQzlDbkMsYUFBYSxPQUFkLEdBQ0UsdUJBQVE4QixRQUFRSyxHQUFSLENBQVk7QUFBQSxhQUFVSCxRQUFRRyxHQUFSLENBQVk7QUFBQSxlQUFXLEVBQUNuQyxrQkFBRCxFQUFXdUIsY0FBWCxFQUFtQkUsY0FBbkIsRUFBWDtBQUFBLE9BQVosQ0FBVjtBQUFBLEtBQVosQ0FBUixDQURGLEdBRUd6QixhQUFhLEtBQWIsSUFBc0JBLGFBQWEsUUFBcEMsR0FDRThCLFFBQVFLLEdBQVIsQ0FBWTtBQUFBLGFBQVcsRUFBQ25DLGtCQUFELEVBQVd1QixjQUFYLEVBQW1CRSxRQUFRLFFBQTNCLEVBQVg7QUFBQSxLQUFaLENBREYsR0FFRU8sUUFBUUcsR0FBUixDQUFZO0FBQUEsYUFBVyxFQUFDbkMsa0JBQUQsRUFBV3VCLFFBQVEsUUFBbkIsRUFBNkJFLGNBQTdCLEVBQVg7QUFBQSxLQUFaLENBTDJDO0FBQUEsR0FBZCxDQUFSLENBQTNCOztBQVFBLE1BQUlXLGlCQUFpQixJQUFyQjtBQUNBLE9BQUssSUFBSUMsSUFBRSxDQUFYLEVBQWNBLElBQUlILG1CQUFtQlAsTUFBckMsRUFBNkNVLEdBQTdDLEVBQWtEO0FBQ2hELFFBQU1DLFNBQVNKLG1CQUFtQkcsQ0FBbkIsQ0FBZjtBQUNBLFFBQU1FLFFBQVFDLGlCQUFpQnJDLE1BQWpCLEVBQXlCRSxVQUF6QixFQUFxQ2lDLE1BQXJDLEVBQTZDaEMsT0FBN0MsQ0FBZDtBQUZnRCxRQUd6Q0csSUFIeUMsR0FHNUI4QixLQUg0QixDQUd6QzlCLEdBSHlDO0FBQUEsUUFHcENJLEtBSG9DLEdBRzVCMEIsS0FINEIsQ0FHcEMxQixJQUhvQzs7QUFJaEQsUUFDRUosT0FBSUgsUUFBUUMsR0FBWixHQUFnQkQsUUFBUUcsR0FBeEIsSUFBK0IsQ0FBL0IsSUFDQUksUUFBS1AsUUFBUUMsR0FBYixHQUFpQkQsUUFBUU8sSUFBekIsSUFBaUMsQ0FEakMsSUFFQUosT0FBSU4sT0FBT3NDLE1BQVgsR0FBa0JuQyxRQUFRQyxHQUExQixHQUE4QkQsUUFBUUssTUFBdEMsSUFBZ0RkLE9BQU82QyxXQUZ2RCxJQUdBN0IsUUFBS1YsT0FBT3dDLEtBQVosR0FBa0JyQyxRQUFRQyxHQUExQixHQUE4QkQsUUFBUVMsS0FBdEMsSUFBK0NsQixPQUFPK0MsVUFKeEQsRUFLRTtBQUNBUix1QkFBaUIsRUFBQ0UsY0FBRCxFQUFTQyxZQUFULEVBQWpCO0FBQ0E7QUFDRDtBQUNGOztBQUVEO0FBQ0EsTUFBSSxDQUFDSCxjQUFMLEVBQXFCO0FBQ25CLFFBQU1FLFVBQVM7QUFDYnRDLGdCQUFVaUIsZ0JBQWdCLENBQWhCLEtBQW9CLEtBRGpCO0FBRWJNLGNBQVFELGNBQWMsQ0FBZCxLQUFrQixRQUZiO0FBR2JHLGNBQVFELGNBQWMsQ0FBZCxLQUFrQjtBQUhiLEtBQWY7QUFLQVkscUJBQWlCO0FBQ2ZFLHFCQURlO0FBRWZDLGFBQU9DLGlCQUFpQnJDLE1BQWpCLEVBQXlCRSxVQUF6QixFQUFxQ2lDLE9BQXJDLEVBQTZDaEMsT0FBN0M7QUFGUSxLQUFqQjtBQUlEOztBQUVEZixVQUFRUSxLQUFSLENBQWNVLEdBQWQsR0FBdUIyQixlQUFlRyxLQUFmLENBQXFCOUIsR0FBNUM7QUFDQWxCLFVBQVFRLEtBQVIsQ0FBY2MsSUFBZCxHQUF3QnVCLGVBQWVHLEtBQWYsQ0FBcUIxQixJQUE3Qzs7QUFFQSxTQUFPdUIsZUFBZUUsTUFBdEI7QUFDRDs7QUFFRCxTQUFTbEMscUJBQVQsQ0FBK0J5QyxFQUEvQixFQUFrRDtBQUNoRCxNQUFJQyxPQUFPRCxHQUFHekMscUJBQUgsRUFBWDtBQUNBLE1BQUksRUFBRSxXQUFXMEMsSUFBYixDQUFKLEVBQXdCO0FBQ3RCO0FBQ0FBLFdBQU8sc0JBQWU7QUFDcEJILGFBQU9HLEtBQUsvQixLQUFMLEdBQVcrQixLQUFLakMsSUFESDtBQUVwQjRCLGNBQVFLLEtBQUtuQyxNQUFMLEdBQVltQyxLQUFLckM7QUFGTCxLQUFmLEVBR0txQyxJQUhMLENBQVA7QUFJRDtBQUNELFNBQU9BLElBQVA7QUFDRDs7QUFFRCxTQUFTTixnQkFBVCxDQUEwQnJDLE1BQTFCLEVBQXdDRSxVQUF4QyxRQUE4RkMsT0FBOUYsRUFBb0k7QUFBQSxNQUF6RU4sUUFBeUUsUUFBekVBLFFBQXlFO0FBQUEsTUFBL0R1QixNQUErRCxRQUEvREEsTUFBK0Q7QUFBQSxNQUF2REUsTUFBdUQsUUFBdkRBLE1BQXVEOztBQUNsSSxNQUFJaEIsTUFBSSxDQUFSO0FBQUEsTUFBV0ksT0FBSyxDQUFoQjtBQUNBLE1BQUliLGFBQWEsT0FBakIsRUFBMEI7QUFDeEIsWUFBUXVCLE1BQVI7QUFDQSxXQUFLLFFBQUw7QUFDRVYsZUFBT2tDLEtBQUtDLEtBQUwsQ0FBVyxDQUFDM0MsV0FBV1EsSUFBWCxHQUFrQlIsV0FBV1UsS0FBN0IsR0FBcUNaLE9BQU93QyxLQUE3QyxJQUFvRCxDQUEvRCxDQUFQO0FBQ0E7QUFDRixXQUFLLE1BQUw7QUFDRTlCLGVBQU9rQyxLQUFLRSxLQUFMLENBQVc1QyxXQUFXUSxJQUF0QixDQUFQO0FBQ0E7QUFDRixXQUFLLE9BQUw7QUFDRUEsZUFBT2tDLEtBQUtHLElBQUwsQ0FBVTdDLFdBQVdVLEtBQVgsR0FBbUJaLE9BQU93QyxLQUFwQyxDQUFQO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSVEsS0FBSixDQUFVLG1CQUFWLENBQU47QUFWVDtBQVlBLFlBQVExQixNQUFSO0FBQ0EsV0FBSyxRQUFMO0FBQ0VoQixjQUFNc0MsS0FBS0MsS0FBTCxDQUFXLENBQUMzQyxXQUFXSSxHQUFYLEdBQWlCSixXQUFXTSxNQUE1QixHQUFxQ1IsT0FBT3NDLE1BQTdDLElBQXFELENBQWhFLENBQU47QUFDQTtBQUNGLFdBQUssS0FBTDtBQUNFaEMsY0FBTXNDLEtBQUtFLEtBQUwsQ0FBVzVDLFdBQVdJLEdBQXRCLENBQU47QUFDQTtBQUNGLFdBQUssUUFBTDtBQUNFQSxjQUFNc0MsS0FBS0csSUFBTCxDQUFVN0MsV0FBV00sTUFBWCxHQUFvQlIsT0FBT3NDLE1BQXJDLENBQU47QUFDQTtBQUNGO0FBQVMsY0FBTSxJQUFJVSxLQUFKLENBQVUsbUJBQVYsQ0FBTjtBQVZUO0FBWUQsR0F6QkQsTUF5Qk8sSUFBSW5ELGFBQWEsS0FBYixJQUFzQkEsYUFBYSxRQUF2QyxFQUFpRDtBQUN0RCxZQUFRQSxRQUFSO0FBQ0EsV0FBSyxLQUFMO0FBQ0VTLGNBQU1zQyxLQUFLRSxLQUFMLENBQVc1QyxXQUFXSSxHQUFYLEdBQWlCTixPQUFPc0MsTUFBeEIsR0FBaUNuQyxRQUFRQyxHQUF6QyxHQUErQ0QsUUFBUUssTUFBbEUsQ0FBTjtBQUNBO0FBQ0YsV0FBSyxRQUFMO0FBQ0VGLGNBQU1zQyxLQUFLRyxJQUFMLENBQVU3QyxXQUFXTSxNQUFYLEdBQW9CTCxRQUFRQyxHQUE1QixHQUFrQ0QsUUFBUUcsR0FBcEQsQ0FBTjtBQUNBO0FBQ0Y7QUFBUyxjQUFNLElBQUkwQyxLQUFKLENBQVUsbUJBQVYsQ0FBTjtBQVBUO0FBU0EsWUFBUTVCLE1BQVI7QUFDQSxXQUFLLFFBQUw7QUFDRVYsZUFBT2tDLEtBQUtDLEtBQUwsQ0FBVyxDQUFDM0MsV0FBV1EsSUFBWCxHQUFrQlIsV0FBV1UsS0FBN0IsR0FBcUNaLE9BQU93QyxLQUE3QyxJQUFvRCxDQUEvRCxDQUFQO0FBQ0E7QUFDRixXQUFLLE1BQUw7QUFDRTlCLGVBQU9rQyxLQUFLQyxLQUFMLENBQVczQyxXQUFXUSxJQUF0QixDQUFQO0FBQ0E7QUFDRixXQUFLLE9BQUw7QUFDRUEsZUFBT2tDLEtBQUtDLEtBQUwsQ0FBVzNDLFdBQVdVLEtBQVgsR0FBbUJaLE9BQU93QyxLQUFyQyxDQUFQO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSVEsS0FBSixDQUFVLG1CQUFWLENBQU47QUFWVDtBQVlELEdBdEJNLE1Bc0JBO0FBQ0wsWUFBUW5ELFFBQVI7QUFDQSxXQUFLLE1BQUw7QUFDRWEsZUFBT2tDLEtBQUtFLEtBQUwsQ0FBVzVDLFdBQVdRLElBQVgsR0FBa0JWLE9BQU93QyxLQUF6QixHQUFpQ3JDLFFBQVFDLEdBQXpDLEdBQStDRCxRQUFRUyxLQUFsRSxDQUFQO0FBQ0E7QUFDRixXQUFLLE9BQUw7QUFDRUYsZUFBT2tDLEtBQUtHLElBQUwsQ0FBVTdDLFdBQVdVLEtBQVgsR0FBbUJULFFBQVFDLEdBQTNCLEdBQWlDRCxRQUFRTyxJQUFuRCxDQUFQO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSXNDLEtBQUosQ0FBVSxtQkFBVixDQUFOO0FBUFQ7QUFTQSxZQUFRMUIsTUFBUjtBQUNBLFdBQUssUUFBTDtBQUNFaEIsY0FBTXNDLEtBQUtDLEtBQUwsQ0FBVyxDQUFDM0MsV0FBV0ksR0FBWCxHQUFpQkosV0FBV00sTUFBNUIsR0FBcUNSLE9BQU9zQyxNQUE3QyxJQUFxRCxDQUFoRSxDQUFOO0FBQ0E7QUFDRixXQUFLLEtBQUw7QUFDRWhDLGNBQU1zQyxLQUFLQyxLQUFMLENBQVczQyxXQUFXSSxHQUF0QixDQUFOO0FBQ0E7QUFDRixXQUFLLFFBQUw7QUFDRUEsY0FBTXNDLEtBQUtDLEtBQUwsQ0FBVzNDLFdBQVdNLE1BQVgsR0FBb0JSLE9BQU9zQyxNQUF0QyxDQUFOO0FBQ0E7QUFDRjtBQUFTLGNBQU0sSUFBSVUsS0FBSixDQUFVLG1CQUFWLENBQU47QUFWVDtBQVlEO0FBQ0QsU0FBTyxFQUFDMUMsUUFBRCxFQUFNSSxVQUFOLEVBQVA7QUFDRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC91bmlxJztcblxudHlwZSBQb3NpdGlvbk9wdGlvbiA9ICd0b3AnfCdib3R0b20nfCdsZWZ0J3wncmlnaHQnfCdjb3Zlcic7XG50eXBlIEhBbGlnbk9wdGlvbiA9ICdjZW50ZXInfCdsZWZ0J3wncmlnaHQnO1xudHlwZSBWQWxpZ25PcHRpb24gPSAnY2VudGVyJ3wndG9wJ3wnYm90dG9tJztcblxuZXhwb3J0IHR5cGUgUG9zaXRpb24gPSBQb3NpdGlvbk9wdGlvbiB8IFBvc2l0aW9uT3B0aW9uW107XG5leHBvcnQgdHlwZSBIQWxpZ24gPSBIQWxpZ25PcHRpb24gfCBIQWxpZ25PcHRpb25bXTtcbmV4cG9ydCB0eXBlIFZBbGlnbiA9IFZBbGlnbk9wdGlvbiB8IFZBbGlnbk9wdGlvbltdO1xuZXhwb3J0IHR5cGUgQ2hvaWNlID0ge1xuICBwb3NpdGlvbjogUG9zaXRpb25PcHRpb247XG4gIGhBbGlnbjogSEFsaWduT3B0aW9uO1xuICB2QWxpZ246IFZBbGlnbk9wdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIE9wdGlvbnMgPSB7XG4gIHBvc2l0aW9uPzogP1Bvc2l0aW9uO1xuICBmb3JjZVBvc2l0aW9uPzogP2Jvb2xlYW47XG4gIGhBbGlnbj86ID9IQWxpZ247XG4gIGZvcmNlSEFsaWduPzogP2Jvb2xlYW47XG4gIHZBbGlnbj86ID9WQWxpZ247XG4gIGZvcmNlVkFsaWduPzogP2Jvb2xlYW47XG4gIGJ1ZmZlcj86ID9udW1iZXI7XG4gIHRvcEJ1ZmZlcj86ID9udW1iZXI7XG4gIGJvdHRvbUJ1ZmZlcj86ID9udW1iZXI7XG4gIGxlZnRCdWZmZXI/OiA/bnVtYmVyO1xuICByaWdodEJ1ZmZlcj86ID9udW1iZXI7XG59O1xuXG50eXBlIFJlY3QgPSB7IC8vIFNpbWlsYXIgdG8gQ2xpZW50UmVjdCwgYnV0IG5vdCBhIGNsYXNzXG4gIHRvcDogbnVtYmVyO1xuICBib3R0b206IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgcmlnaHQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnRhaW5CeVNjcmVlbihlbGVtZW50OiBIVE1MRWxlbWVudCwgYW5jaG9yUG9pbnQ6IEhUTUxFbGVtZW50LCBvcHRpb25zOiBPcHRpb25zKTpcbkNob2ljZSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKSB7XG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICBpZiAoc3R5bGUucG9zaXRpb24gIT09ICdmaXhlZCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKCdjb250YWluQnlTY3JlZW4gb25seSB3b3JrcyBvbiBmaXhlZCBwb3NpdGlvbiBlbGVtZW50cycsIGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGVsUmVjdDogUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTtcbiAgY29uc3QgYW5jaG9yUmVjdDogUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChhbmNob3JQb2ludCk7XG5cbiAgY29uc3QgYnVmZmVycyA9IHtcbiAgICBhbGw6IG9wdGlvbnMuYnVmZmVyIHx8IDAsXG4gICAgdG9wOiBvcHRpb25zLnRvcEJ1ZmZlciB8fCAwLFxuICAgIGJvdHRvbTogb3B0aW9ucy5ib3R0b21CdWZmZXIgfHwgMCxcbiAgICBsZWZ0OiBvcHRpb25zLmxlZnRCdWZmZXIgfHwgMCxcbiAgICByaWdodDogb3B0aW9ucy5yaWdodEJ1ZmZlciB8fCAwXG4gIH07XG5cbiAgY29uc3Qgb3B0aW9uUG9zaXRpb25zID0gQXJyYXkuaXNBcnJheShvcHRpb25zLnBvc2l0aW9uKSA/IG9wdGlvbnMucG9zaXRpb24gOiBbb3B0aW9ucy5wb3NpdGlvbl0uZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBvcHRpb25IQWxpZ25zID0gQXJyYXkuaXNBcnJheShvcHRpb25zLmhBbGlnbikgPyBvcHRpb25zLmhBbGlnbiA6IFtvcHRpb25zLmhBbGlnbl0uZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBvcHRpb25WQWxpZ25zID0gQXJyYXkuaXNBcnJheShvcHRpb25zLnZBbGlnbikgPyBvcHRpb25zLnZBbGlnbiA6IFtvcHRpb25zLnZBbGlnbl0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gIGNvbnN0IHBvc2l0aW9uczogUG9zaXRpb25PcHRpb25bXSA9IG9wdGlvblBvc2l0aW9ucy5sZW5ndGggPiAwICYmIG9wdGlvbnMuZm9yY2VQb3NpdGlvbiA/XG4gICAgb3B0aW9uUG9zaXRpb25zIDpcbiAgICB1bmlxKG9wdGlvblBvc2l0aW9ucy5jb25jYXQoWyd0b3AnLCdib3R0b20nLCdsZWZ0JywncmlnaHQnXSkpO1xuICBjb25zdCBoQWxpZ25zOiBIQWxpZ25PcHRpb25bXSA9IG9wdGlvbkhBbGlnbnMubGVuZ3RoID4gMCAmJiBvcHRpb25zLmZvcmNlSEFsaWduID9cbiAgICBvcHRpb25IQWxpZ25zIDpcbiAgICB1bmlxKG9wdGlvbkhBbGlnbnMuY29uY2F0KFsnY2VudGVyJywnbGVmdCcsJ3JpZ2h0J10pKTtcbiAgY29uc3QgdkFsaWduczogVkFsaWduT3B0aW9uW10gPSBvcHRpb25WQWxpZ25zLmxlbmd0aCA+IDAgJiYgb3B0aW9ucy5mb3JjZVZBbGlnbiA/XG4gICAgb3B0aW9uVkFsaWducyA6XG4gICAgdW5pcShvcHRpb25WQWxpZ25zLmNvbmNhdChbJ2NlbnRlcicsJ3RvcCcsJ2JvdHRvbSddKSk7XG5cbiAgY29uc3QgYWxsUG9zc2libGVDaG9pY2VzID0gZmxhdHRlbihwb3NpdGlvbnMubWFwKHBvc2l0aW9uID0+XG4gICAgKHBvc2l0aW9uID09PSAnY292ZXInKSA/XG4gICAgICBmbGF0dGVuKGhBbGlnbnMubWFwKGhBbGlnbiA9PiB2QWxpZ25zLm1hcCh2QWxpZ24gPT4gKHtwb3NpdGlvbiwgaEFsaWduLCB2QWxpZ259KSkpKSA6XG4gICAgICAocG9zaXRpb24gPT09ICd0b3AnIHx8IHBvc2l0aW9uID09PSAnYm90dG9tJykgP1xuICAgICAgICBoQWxpZ25zLm1hcChoQWxpZ24gPT4gKHtwb3NpdGlvbiwgaEFsaWduLCB2QWxpZ246ICdjZW50ZXInfSkpIDpcbiAgICAgICAgdkFsaWducy5tYXAodkFsaWduID0+ICh7cG9zaXRpb24sIGhBbGlnbjogJ2NlbnRlcicsIHZBbGlnbn0pKVxuICApKTtcblxuICBsZXQgY2hvaWNlQW5kQ29vcmQgPSBudWxsO1xuICBmb3IgKGxldCBpPTA7IGkgPCBhbGxQb3NzaWJsZUNob2ljZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaG9pY2UgPSBhbGxQb3NzaWJsZUNob2ljZXNbaV07XG4gICAgY29uc3QgY29vcmQgPSBwb3NpdGlvbkFuZEFsaWduKGVsUmVjdCwgYW5jaG9yUmVjdCwgY2hvaWNlLCBidWZmZXJzKTtcbiAgICBjb25zdCB7dG9wLCBsZWZ0fSA9IGNvb3JkO1xuICAgIGlmIChcbiAgICAgIHRvcC1idWZmZXJzLmFsbC1idWZmZXJzLnRvcCA+PSAwICYmXG4gICAgICBsZWZ0LWJ1ZmZlcnMuYWxsLWJ1ZmZlcnMubGVmdCA+PSAwICYmXG4gICAgICB0b3ArZWxSZWN0LmhlaWdodCtidWZmZXJzLmFsbCtidWZmZXJzLmJvdHRvbSA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgJiZcbiAgICAgIGxlZnQrZWxSZWN0LndpZHRoK2J1ZmZlcnMuYWxsK2J1ZmZlcnMucmlnaHQgPD0gd2luZG93LmlubmVyV2lkdGhcbiAgICApIHtcbiAgICAgIGNob2ljZUFuZENvb3JkID0ge2Nob2ljZSwgY29vcmR9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbGJhY2sgaWYgd2UgZmFpbGVkIHRvIGZpbmQgYSBwb3NpdGlvbiB0aGF0IGZpdCBvbiB0aGUgc2NyZWVuLlxuICBpZiAoIWNob2ljZUFuZENvb3JkKSB7XG4gICAgY29uc3QgY2hvaWNlID0ge1xuICAgICAgcG9zaXRpb246IG9wdGlvblBvc2l0aW9uc1swXXx8J3RvcCcsXG4gICAgICBoQWxpZ246IG9wdGlvbkhBbGlnbnNbMF18fCdjZW50ZXInLFxuICAgICAgdkFsaWduOiBvcHRpb25WQWxpZ25zWzBdfHwnY2VudGVyJ1xuICAgIH07XG4gICAgY2hvaWNlQW5kQ29vcmQgPSB7XG4gICAgICBjaG9pY2UsXG4gICAgICBjb29yZDogcG9zaXRpb25BbmRBbGlnbihlbFJlY3QsIGFuY2hvclJlY3QsIGNob2ljZSwgYnVmZmVycylcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudC5zdHlsZS50b3AgPSBgJHtjaG9pY2VBbmRDb29yZC5jb29yZC50b3B9cHhgO1xuICBlbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtjaG9pY2VBbmRDb29yZC5jb29yZC5sZWZ0fXB4YDtcblxuICByZXR1cm4gY2hvaWNlQW5kQ29vcmQuY2hvaWNlO1xufVxuXG5mdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWw6IEVsZW1lbnQpOiBSZWN0IHtcbiAgbGV0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgaWYgKCEoJ3dpZHRoJyBpbiByZWN0KSkge1xuICAgIC8vIElFIDw5IHN1cHBvcnRcbiAgICByZWN0ID0gT2JqZWN0LmFzc2lnbigoe1xuICAgICAgd2lkdGg6IHJlY3QucmlnaHQtcmVjdC5sZWZ0LFxuICAgICAgaGVpZ2h0OiByZWN0LmJvdHRvbS1yZWN0LnRvcFxuICAgIH06IE9iamVjdCksIHJlY3QpO1xuICB9XG4gIHJldHVybiByZWN0O1xufVxuXG5mdW5jdGlvbiBwb3NpdGlvbkFuZEFsaWduKGVsUmVjdDogUmVjdCwgYW5jaG9yUmVjdDogUmVjdCwge3Bvc2l0aW9uLCBoQWxpZ24sIHZBbGlnbn06IENob2ljZSwgYnVmZmVycyk6IHt0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyfSB7XG4gIGxldCB0b3A9MCwgbGVmdD0wO1xuICBpZiAocG9zaXRpb24gPT09ICdjb3ZlcicpIHtcbiAgICBzd2l0Y2ggKGhBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICBsZWZ0ID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC5sZWZ0ICsgYW5jaG9yUmVjdC5yaWdodCAtIGVsUmVjdC53aWR0aCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIGxlZnQgPSBNYXRoLmZsb29yKGFuY2hvclJlY3QubGVmdCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICBsZWZ0ID0gTWF0aC5jZWlsKGFuY2hvclJlY3QucmlnaHQgLSBlbFJlY3Qud2lkdGgpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHZBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICB0b3AgPSBNYXRoLnJvdW5kKChhbmNob3JSZWN0LnRvcCArIGFuY2hvclJlY3QuYm90dG9tIC0gZWxSZWN0LmhlaWdodCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0b3AnOlxuICAgICAgdG9wID0gTWF0aC5mbG9vcihhbmNob3JSZWN0LnRvcCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgdG9wID0gTWF0aC5jZWlsKGFuY2hvclJlY3QuYm90dG9tIC0gZWxSZWN0LmhlaWdodCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBub3QgaGFwcGVuJyk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAndG9wJyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHRvcCA9IE1hdGguZmxvb3IoYW5jaG9yUmVjdC50b3AgLSBlbFJlY3QuaGVpZ2h0IC0gYnVmZmVycy5hbGwgLSBidWZmZXJzLmJvdHRvbSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgdG9wID0gTWF0aC5jZWlsKGFuY2hvclJlY3QuYm90dG9tICsgYnVmZmVycy5hbGwgKyBidWZmZXJzLnRvcCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBub3QgaGFwcGVuJyk7XG4gICAgfVxuICAgIHN3aXRjaCAoaEFsaWduKSB7XG4gICAgY2FzZSAnY2VudGVyJzpcbiAgICAgIGxlZnQgPSBNYXRoLnJvdW5kKChhbmNob3JSZWN0LmxlZnQgKyBhbmNob3JSZWN0LnJpZ2h0IC0gZWxSZWN0LndpZHRoKS8yKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgbGVmdCA9IE1hdGgucm91bmQoYW5jaG9yUmVjdC5sZWZ0KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIGxlZnQgPSBNYXRoLnJvdW5kKGFuY2hvclJlY3QucmlnaHQgLSBlbFJlY3Qud2lkdGgpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBsZWZ0ID0gTWF0aC5mbG9vcihhbmNob3JSZWN0LmxlZnQgLSBlbFJlY3Qud2lkdGggLSBidWZmZXJzLmFsbCAtIGJ1ZmZlcnMucmlnaHQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgbGVmdCA9IE1hdGguY2VpbChhbmNob3JSZWN0LnJpZ2h0ICsgYnVmZmVycy5hbGwgKyBidWZmZXJzLmxlZnQpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHZBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICB0b3AgPSBNYXRoLnJvdW5kKChhbmNob3JSZWN0LnRvcCArIGFuY2hvclJlY3QuYm90dG9tIC0gZWxSZWN0LmhlaWdodCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0b3AnOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZChhbmNob3JSZWN0LnRvcCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZChhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge3RvcCwgbGVmdH07XG59XG4iXX0=
module.exports = exports.default;
module.exports.default = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjb250YWluQnlTY3JlZW4iLCJlbGVtZW50IiwiYW5jaG9yUG9pbnQiLCJvcHRpb25zIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInN0eWxlIiwicG9zaXRpb24iLCJjb25zb2xlIiwiZXJyb3IiLCJlbFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJhbmNob3JSZWN0IiwiYnVmZmVycyIsImFsbCIsImJ1ZmZlciIsInRvcCIsInRvcEJ1ZmZlciIsImJvdHRvbSIsImJvdHRvbUJ1ZmZlciIsImxlZnQiLCJsZWZ0QnVmZmVyIiwicmlnaHQiLCJyaWdodEJ1ZmZlciIsIm9wdGlvblBvc2l0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsIkJvb2xlYW4iLCJvcHRpb25IQWxpZ25zIiwiaEFsaWduIiwib3B0aW9uVkFsaWducyIsInZBbGlnbiIsInBvc2l0aW9ucyIsImxlbmd0aCIsImZvcmNlUG9zaXRpb24iLCJjb25jYXQiLCJoQWxpZ25zIiwiZm9yY2VIQWxpZ24iLCJ2QWxpZ25zIiwiZm9yY2VWQWxpZ24iLCJhbGxQb3NzaWJsZUNob2ljZXMiLCJtYXAiLCJjaG9pY2VBbmRDb29yZCIsImkiLCJjaG9pY2UiLCJjb29yZCIsInBvc2l0aW9uQW5kQWxpZ24iLCJoZWlnaHQiLCJpbm5lckhlaWdodCIsIndpZHRoIiwiaW5uZXJXaWR0aCIsImVsIiwicmVjdCIsIk9iamVjdCIsImFzc2lnbiIsIk1hdGgiLCJyb3VuZCIsImZsb29yIiwiY2VpbCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFzQ2UsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBK0NDLFdBQS9DLEVBQXlFQyxPQUF6RSxFQUNSO0FBQ0wsTUFBSUMsT0FBTyxDQUFDQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsSUFBeUNDLE1B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QUl3QyxLQUFKLENBQVUsbUJBQVYsQ0FBTjtBQVBUOztBQVNBLFlBQVE1QixNQUFSO0FBQ0EsV0FBSyxRQUFMO0FBQ0VoQixRQUFBQSxHQUFHLEdBQUd3QyxJQUFJLENBQUNDLEtBQUwsQ0FBVyxDQUFDN0MsVUFBVSxDQUFDSSxHQUFYLEdBQWlCSixVQUFVLENBQUNNLE1BQTVCLEdBQXFDUixNQUFNLENBQUNzQyxNQUE3QyxJQUFxRCxDQUFoRSxDQUFOO0FBQ0E7O0FBQ0YsV0FBSyxLQUFMO0FBQ0VoQyxRQUFBQSxHQUFHLEdBQUd3QyxJQUFJLENBQUNDLEtBQUwsQ0FBVzdDLFVBQVUsQ0FBQ0ksR0FBdEIsQ0FBTjtBQUNBOztBQUNGLFdBQUssUUFBTDtBQUNFQSxRQUFBQSxHQUFHLEdBQUd3QyxJQUFJLENBQUNDLEtBQUwsQ0FBVzdDLFVBQVUsQ0FBQ00sTUFBWCxHQUFvQlIsTUFBTSxDQUFDc0MsTUFBdEMsQ0FBTjtBQUNBOztBQUNGO0FBQVMsY0FBTSxJQUFJWSxLQUFKLENBQVUsbUJBQVYsQ0FBTjtBQVZUO0FBWUQ7O0FBQ0QsU0FBTztBQUFDNUMsSUFBQUEsR0FBRyxFQUFIQSxHQUFEO0FBQU1JLElBQUFBLElBQUksRUFBSkE7QUFBTixHQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgZmxhdHRlbiBmcm9tICdsb2Rhc2gvZmxhdHRlbic7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5cbnR5cGUgUG9zaXRpb25PcHRpb24gPSAndG9wJ3wnYm90dG9tJ3wnbGVmdCd8J3JpZ2h0J3wnY292ZXInO1xudHlwZSBIQWxpZ25PcHRpb24gPSAnY2VudGVyJ3wnbGVmdCd8J3JpZ2h0JztcbnR5cGUgVkFsaWduT3B0aW9uID0gJ2NlbnRlcid8J3RvcCd8J2JvdHRvbSc7XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uID0gUG9zaXRpb25PcHRpb24gfCBQb3NpdGlvbk9wdGlvbltdO1xuZXhwb3J0IHR5cGUgSEFsaWduID0gSEFsaWduT3B0aW9uIHwgSEFsaWduT3B0aW9uW107XG5leHBvcnQgdHlwZSBWQWxpZ24gPSBWQWxpZ25PcHRpb24gfCBWQWxpZ25PcHRpb25bXTtcbmV4cG9ydCB0eXBlIENob2ljZSA9IHtcbiAgcG9zaXRpb246IFBvc2l0aW9uT3B0aW9uO1xuICBoQWxpZ246IEhBbGlnbk9wdGlvbjtcbiAgdkFsaWduOiBWQWxpZ25PcHRpb247XG59O1xuXG5leHBvcnQgdHlwZSBPcHRpb25zID0ge1xuICBwb3NpdGlvbj86ID9Qb3NpdGlvbjtcbiAgZm9yY2VQb3NpdGlvbj86ID9ib29sZWFuO1xuICBoQWxpZ24/OiA/SEFsaWduO1xuICBmb3JjZUhBbGlnbj86ID9ib29sZWFuO1xuICB2QWxpZ24/OiA/VkFsaWduO1xuICBmb3JjZVZBbGlnbj86ID9ib29sZWFuO1xuICBidWZmZXI/OiA/bnVtYmVyO1xuICB0b3BCdWZmZXI/OiA/bnVtYmVyO1xuICBib3R0b21CdWZmZXI/OiA/bnVtYmVyO1xuICBsZWZ0QnVmZmVyPzogP251bWJlcjtcbiAgcmlnaHRCdWZmZXI/OiA/bnVtYmVyO1xufTtcblxudHlwZSBSZWN0ID0geyAvLyBTaW1pbGFyIHRvIENsaWVudFJlY3QsIGJ1dCBub3QgYSBjbGFzc1xuICB0b3A6IG51bWJlcjtcbiAgYm90dG9tOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIHJpZ2h0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb250YWluQnlTY3JlZW4oZWxlbWVudDogSFRNTEVsZW1lbnQsIGFuY2hvclBvaW50OiBIVE1MRWxlbWVudCwgb3B0aW9uczogT3B0aW9ucyk6XG5DaG9pY2Uge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSkge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgaWYgKHN0eWxlLnBvc2l0aW9uICE9PSAnZml4ZWQnKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignY29udGFpbkJ5U2NyZWVuIG9ubHkgd29ya3Mgb24gZml4ZWQgcG9zaXRpb24gZWxlbWVudHMnLCBlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBlbFJlY3Q6IFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCk7XG4gIGNvbnN0IGFuY2hvclJlY3Q6IFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoYW5jaG9yUG9pbnQpO1xuXG4gIGNvbnN0IGJ1ZmZlcnMgPSB7XG4gICAgYWxsOiBvcHRpb25zLmJ1ZmZlciB8fCAwLFxuICAgIHRvcDogb3B0aW9ucy50b3BCdWZmZXIgfHwgMCxcbiAgICBib3R0b206IG9wdGlvbnMuYm90dG9tQnVmZmVyIHx8IDAsXG4gICAgbGVmdDogb3B0aW9ucy5sZWZ0QnVmZmVyIHx8IDAsXG4gICAgcmlnaHQ6IG9wdGlvbnMucmlnaHRCdWZmZXIgfHwgMFxuICB9O1xuXG4gIGNvbnN0IG9wdGlvblBvc2l0aW9ucyA9IEFycmF5LmlzQXJyYXkob3B0aW9ucy5wb3NpdGlvbikgPyBvcHRpb25zLnBvc2l0aW9uIDogW29wdGlvbnMucG9zaXRpb25dLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3Qgb3B0aW9uSEFsaWducyA9IEFycmF5LmlzQXJyYXkob3B0aW9ucy5oQWxpZ24pID8gb3B0aW9ucy5oQWxpZ24gOiBbb3B0aW9ucy5oQWxpZ25dLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3Qgb3B0aW9uVkFsaWducyA9IEFycmF5LmlzQXJyYXkob3B0aW9ucy52QWxpZ24pID8gb3B0aW9ucy52QWxpZ24gOiBbb3B0aW9ucy52QWxpZ25dLmZpbHRlcihCb29sZWFuKTtcblxuICBjb25zdCBwb3NpdGlvbnM6IFBvc2l0aW9uT3B0aW9uW10gPSBvcHRpb25Qb3NpdGlvbnMubGVuZ3RoID4gMCAmJiBvcHRpb25zLmZvcmNlUG9zaXRpb24gP1xuICAgIG9wdGlvblBvc2l0aW9ucyA6XG4gICAgdW5pcShvcHRpb25Qb3NpdGlvbnMuY29uY2F0KFsndG9wJywnYm90dG9tJywnbGVmdCcsJ3JpZ2h0J10pKTtcbiAgY29uc3QgaEFsaWduczogSEFsaWduT3B0aW9uW10gPSBvcHRpb25IQWxpZ25zLmxlbmd0aCA+IDAgJiYgb3B0aW9ucy5mb3JjZUhBbGlnbiA/XG4gICAgb3B0aW9uSEFsaWducyA6XG4gICAgdW5pcShvcHRpb25IQWxpZ25zLmNvbmNhdChbJ2NlbnRlcicsJ2xlZnQnLCdyaWdodCddKSk7XG4gIGNvbnN0IHZBbGlnbnM6IFZBbGlnbk9wdGlvbltdID0gb3B0aW9uVkFsaWducy5sZW5ndGggPiAwICYmIG9wdGlvbnMuZm9yY2VWQWxpZ24gP1xuICAgIG9wdGlvblZBbGlnbnMgOlxuICAgIHVuaXEob3B0aW9uVkFsaWducy5jb25jYXQoWydjZW50ZXInLCd0b3AnLCdib3R0b20nXSkpO1xuXG4gIGNvbnN0IGFsbFBvc3NpYmxlQ2hvaWNlcyA9IGZsYXR0ZW4ocG9zaXRpb25zLm1hcChwb3NpdGlvbiA9PlxuICAgIChwb3NpdGlvbiA9PT0gJ2NvdmVyJykgP1xuICAgICAgZmxhdHRlbihoQWxpZ25zLm1hcChoQWxpZ24gPT4gdkFsaWducy5tYXAodkFsaWduID0+ICh7cG9zaXRpb24sIGhBbGlnbiwgdkFsaWdufSkpKSkgOlxuICAgICAgKHBvc2l0aW9uID09PSAndG9wJyB8fCBwb3NpdGlvbiA9PT0gJ2JvdHRvbScpID9cbiAgICAgICAgaEFsaWducy5tYXAoaEFsaWduID0+ICh7cG9zaXRpb24sIGhBbGlnbiwgdkFsaWduOiAnY2VudGVyJ30pKSA6XG4gICAgICAgIHZBbGlnbnMubWFwKHZBbGlnbiA9PiAoe3Bvc2l0aW9uLCBoQWxpZ246ICdjZW50ZXInLCB2QWxpZ259KSlcbiAgKSk7XG5cbiAgbGV0IGNob2ljZUFuZENvb3JkID0gbnVsbDtcbiAgZm9yIChsZXQgaT0wOyBpIDwgYWxsUG9zc2libGVDaG9pY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hvaWNlID0gYWxsUG9zc2libGVDaG9pY2VzW2ldO1xuICAgIGNvbnN0IGNvb3JkID0gcG9zaXRpb25BbmRBbGlnbihlbFJlY3QsIGFuY2hvclJlY3QsIGNob2ljZSwgYnVmZmVycyk7XG4gICAgY29uc3Qge3RvcCwgbGVmdH0gPSBjb29yZDtcbiAgICBpZiAoXG4gICAgICB0b3AtYnVmZmVycy5hbGwtYnVmZmVycy50b3AgPj0gMCAmJlxuICAgICAgbGVmdC1idWZmZXJzLmFsbC1idWZmZXJzLmxlZnQgPj0gMCAmJlxuICAgICAgdG9wK2VsUmVjdC5oZWlnaHQrYnVmZmVycy5hbGwrYnVmZmVycy5ib3R0b20gPD0gd2luZG93LmlubmVySGVpZ2h0ICYmXG4gICAgICBsZWZ0K2VsUmVjdC53aWR0aCtidWZmZXJzLmFsbCtidWZmZXJzLnJpZ2h0IDw9IHdpbmRvdy5pbm5lcldpZHRoXG4gICAgKSB7XG4gICAgICBjaG9pY2VBbmRDb29yZCA9IHtjaG9pY2UsIGNvb3JkfTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIGlmIHdlIGZhaWxlZCB0byBmaW5kIGEgcG9zaXRpb24gdGhhdCBmaXQgb24gdGhlIHNjcmVlbi5cbiAgaWYgKCFjaG9pY2VBbmRDb29yZCkge1xuICAgIGNvbnN0IGNob2ljZSA9IHtcbiAgICAgIHBvc2l0aW9uOiBvcHRpb25Qb3NpdGlvbnNbMF18fCd0b3AnLFxuICAgICAgaEFsaWduOiBvcHRpb25IQWxpZ25zWzBdfHwnY2VudGVyJyxcbiAgICAgIHZBbGlnbjogb3B0aW9uVkFsaWduc1swXXx8J2NlbnRlcidcbiAgICB9O1xuICAgIGNob2ljZUFuZENvb3JkID0ge1xuICAgICAgY2hvaWNlLFxuICAgICAgY29vcmQ6IHBvc2l0aW9uQW5kQWxpZ24oZWxSZWN0LCBhbmNob3JSZWN0LCBjaG9pY2UsIGJ1ZmZlcnMpXG4gICAgfTtcbiAgfVxuXG4gIGVsZW1lbnQuc3R5bGUudG9wID0gYCR7Y2hvaWNlQW5kQ29vcmQuY29vcmQudG9wfXB4YDtcbiAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7Y2hvaWNlQW5kQ29vcmQuY29vcmQubGVmdH1weGA7XG5cbiAgcmV0dXJuIGNob2ljZUFuZENvb3JkLmNob2ljZTtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsOiBFbGVtZW50KTogUmVjdCB7XG4gIGxldCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGlmICghKCd3aWR0aCcgaW4gcmVjdCkpIHtcbiAgICAvLyBJRSA8OSBzdXBwb3J0XG4gICAgcmVjdCA9IE9iamVjdC5hc3NpZ24oKHtcbiAgICAgIHdpZHRoOiByZWN0LnJpZ2h0LXJlY3QubGVmdCxcbiAgICAgIGhlaWdodDogcmVjdC5ib3R0b20tcmVjdC50b3BcbiAgICB9OiBPYmplY3QpLCByZWN0KTtcbiAgfVxuICByZXR1cm4gcmVjdDtcbn1cblxuZnVuY3Rpb24gcG9zaXRpb25BbmRBbGlnbihlbFJlY3Q6IFJlY3QsIGFuY2hvclJlY3Q6IFJlY3QsIHtwb3NpdGlvbiwgaEFsaWduLCB2QWxpZ259OiBDaG9pY2UsIGJ1ZmZlcnMpOiB7dG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlcn0ge1xuICBsZXQgdG9wPTAsIGxlZnQ9MDtcbiAgaWYgKHBvc2l0aW9uID09PSAnY292ZXInKSB7XG4gICAgc3dpdGNoIChoQWxpZ24pIHtcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgbGVmdCA9IE1hdGgucm91bmQoKGFuY2hvclJlY3QubGVmdCArIGFuY2hvclJlY3QucmlnaHQgLSBlbFJlY3Qud2lkdGgpLzIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBsZWZ0ID0gTWF0aC5mbG9vcihhbmNob3JSZWN0LmxlZnQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgbGVmdCA9IE1hdGguY2VpbChhbmNob3JSZWN0LnJpZ2h0IC0gZWxSZWN0LndpZHRoKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gICAgc3dpdGNoICh2QWxpZ24pIHtcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC50b3AgKyBhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpLzIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHRvcCA9IE1hdGguZmxvb3IoYW5jaG9yUmVjdC50b3ApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHRvcCA9IE1hdGguY2VpbChhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3RvcCcgfHwgcG9zaXRpb24gPT09ICdib3R0b20nKSB7XG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICB0b3AgPSBNYXRoLmZsb29yKGFuY2hvclJlY3QudG9wIC0gZWxSZWN0LmhlaWdodCAtIGJ1ZmZlcnMuYWxsIC0gYnVmZmVycy5ib3R0b20pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHRvcCA9IE1hdGguY2VpbChhbmNob3JSZWN0LmJvdHRvbSArIGJ1ZmZlcnMuYWxsICsgYnVmZmVycy50b3ApO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGhhcHBlbicpO1xuICAgIH1cbiAgICBzd2l0Y2ggKGhBbGlnbikge1xuICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICBsZWZ0ID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC5sZWZ0ICsgYW5jaG9yUmVjdC5yaWdodCAtIGVsUmVjdC53aWR0aCkvMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIGxlZnQgPSBNYXRoLnJvdW5kKGFuY2hvclJlY3QubGVmdCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICBsZWZ0ID0gTWF0aC5yb3VuZChhbmNob3JSZWN0LnJpZ2h0IC0gZWxSZWN0LndpZHRoKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgbGVmdCA9IE1hdGguZmxvb3IoYW5jaG9yUmVjdC5sZWZ0IC0gZWxSZWN0LndpZHRoIC0gYnVmZmVycy5hbGwgLSBidWZmZXJzLnJpZ2h0KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIGxlZnQgPSBNYXRoLmNlaWwoYW5jaG9yUmVjdC5yaWdodCArIGJ1ZmZlcnMuYWxsICsgYnVmZmVycy5sZWZ0KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gICAgc3dpdGNoICh2QWxpZ24pIHtcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgdG9wID0gTWF0aC5yb3VuZCgoYW5jaG9yUmVjdC50b3AgKyBhbmNob3JSZWN0LmJvdHRvbSAtIGVsUmVjdC5oZWlnaHQpLzIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHRvcCA9IE1hdGgucm91bmQoYW5jaG9yUmVjdC50b3ApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIHRvcCA9IE1hdGgucm91bmQoYW5jaG9yUmVjdC5ib3R0b20gLSBlbFJlY3QuaGVpZ2h0KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHt0b3AsIGxlZnR9O1xufVxuIl19
The MIT License (MIT)
Copyright (c) 2016 Chris Cowan <agentme49@gmail.com>
Copyright (c) 2018 Chris Cowan <agentme49@gmail.com>

@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy

{
"name": "contain-by-screen",
"version": "1.2.1",
"version": "1.3.0",
"description": "Position a dropdown element near a button in a way that fits on the screen.",
"main": "js/index.js",
"sideEffects": false,
"scripts": {
"prepare": "rimraf js && babel -s inline -d js/ src/ && flow-copy-source -v src js",
"test": "npm run lint && npm run flow_check && mocha",
"test": "yarn run lint && yarn run flow_check && mocha && tsc",
"flow_check": "flow check",

@@ -15,3 +16,3 @@ "lint": "eslint .",

"type": "git",
"url": "git+https://github.com/AgentME/contain-by-screen.git"
"url": "git+https://github.com/Macil/contain-by-screen.git"
},

@@ -31,26 +32,32 @@ "keywords": [

"bugs": {
"url": "https://github.com/AgentME/contain-by-screen/issues"
"url": "https://github.com/Macil/contain-by-screen/issues"
},
"homepage": "https://github.com/AgentME/contain-by-screen#readme",
"homepage": "https://github.com/Macil/contain-by-screen#readme",
"devDependencies": {
"babel-cli": "^6.14.0",
"babel-eslint": "^8.2.3",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-class-properties": "^6.11.5",
"babel-plugin-transform-flow-strip-types": "^6.14.0",
"babel-plugin-transform-runtime": "^6.12.0",
"babel-preset-es2015": "^6.14.0",
"babel-register": "^6.14.0",
"eslint": "^4.3.0",
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/plugin-transform-runtime": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"@babel/register": "^7.0.0",
"babel-eslint": "^9.0.0",
"babel-plugin-add-module-exports": "^1.0.0",
"eslint": "^5.0.0",
"eslint-plugin-flowtype": "^2.35.0",
"flow-bin": "^0.74.0",
"flow-bin": "^0.81.0",
"flow-copy-source": "^2.0.0",
"mocha": "^5.2.0",
"rimraf": "^2.6.1"
"rimraf": "^2.6.1",
"typescript": "^3.0.3"
},
"dependencies": {
"babel-runtime": "^6.23.0",
"@babel/runtime": "^7.0.0",
"envify": "^4.1.0",
"lodash": "^4.6.1"
},
"greenkeeper": {
"ignore": [
"flow-bin"
]
}
}
# contain-by-screen
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/AgentME/contain-by-screen/blob/master/LICENSE.txt) [![npm version](https://img.shields.io/npm/v/contain-by-screen.svg?style=flat)](https://www.npmjs.com/package/contain-by-screen) [![CircleCI Status](https://circleci.com/gh/AgentME/contain-by-screen.svg?style=shield)](https://circleci.com/gh/AgentME/contain-by-screen) [![Greenkeeper badge](https://badges.greenkeeper.io/AgentME/contain-by-screen.svg)](https://greenkeeper.io/)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Macil/contain-by-screen/blob/master/LICENSE.txt) [![npm version](https://img.shields.io/npm/v/contain-by-screen.svg?style=flat)](https://www.npmjs.com/package/contain-by-screen) [![CircleCI Status](https://circleci.com/gh/Macil/contain-by-screen.svg?style=shield)](https://circleci.com/gh/Macil/contain-by-screen) [![Greenkeeper badge](https://badges.greenkeeper.io/Macil/contain-by-screen.svg)](https://greenkeeper.io/)

@@ -76,3 +76,4 @@ This function is for positioning an element next to another in a way that fits

Full [Flow](https://flowtype.org/) type declarations for this module are
included!
Both [TypeScript](https://www.typescriptlang.org/) and
[Flow](https://flowtype.org/) type definitions for this module are included!
The type definitions won't require any configuration to use.
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