react-focus-trap
Advanced tools
Comparing version 2.3.3 to 2.4.0
{ | ||
"name": "react-focus-trap", | ||
"version": "2.3.3", | ||
"version": "2.4.0", | ||
"description": "Traps focus for accessible dropdowns and modal content.", | ||
@@ -5,0 +5,0 @@ "main": "src/focus-trap.js", |
'use strict'; | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
/** | ||
@@ -22,83 +30,116 @@ * FocalPoint | ||
var FocalPoint = React.createClass({ | ||
displayName: 'FocalPoint', | ||
getDefaultProps: function getDefaultProps() { | ||
return { | ||
element: 'div' | ||
}; | ||
}, | ||
contains: function contains(element) { | ||
return this.refs.root.contains(element); | ||
}, | ||
focus: function focus() { | ||
if (this.contains(document.activeElement) === false) { | ||
this.refs.root.focus(); | ||
var FocalPoint = function (_React$Component) { | ||
_inherits(FocalPoint, _React$Component); | ||
function FocalPoint() { | ||
var _ref; | ||
var _temp, _this, _ret; | ||
_classCallCheck(this, FocalPoint); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
}, | ||
trapFocus: function trapFocus(e) { | ||
clearTimeout(timer); | ||
timer = setTimeout(function (_) { | ||
return stack[stack.length - 1].focus(); | ||
}, 10); | ||
}, | ||
returnFocus: function returnFocus() { | ||
var anchor = this.state.anchor; | ||
// When transitioning between pages using hash route state, | ||
// this anchor is some times lost. Do not attempt to focus | ||
// on a non-existent anchor. | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = FocalPoint.__proto__ || Object.getPrototypeOf(FocalPoint)).call.apply(_ref, [this].concat(args))), _this), _this._onBlur = function (event) { | ||
var current = stack[stack.length - 1]; | ||
if (anchor && (typeof anchor === 'undefined' ? 'undefined' : _typeof(anchor)) === 'object' && typeof anchor.focus === 'function') { | ||
anchor.focus(); | ||
if (current && current.contains(event.target) === false) { | ||
event.preventDefault(); | ||
_this.trapFocus(); | ||
} | ||
}, _temp), _possibleConstructorReturn(_this, _ret); | ||
} | ||
_createClass(FocalPoint, [{ | ||
key: 'contains', | ||
value: function contains(element) { | ||
return this.refs.root.contains(element); | ||
} | ||
}, | ||
componentWillMount: function componentWillMount() { | ||
if (typeof document !== 'undefined') { | ||
this.setState({ anchor: document.activeElement }); | ||
}, { | ||
key: 'focus', | ||
value: function focus() { | ||
if (this.contains(document.activeElement) === false) { | ||
this.refs.root.focus(); | ||
} | ||
} | ||
}, | ||
componentDidMount: function componentDidMount() { | ||
stack.push(this); | ||
}, { | ||
key: 'trapFocus', | ||
value: function trapFocus(e) { | ||
clearTimeout(timer); | ||
timer = setTimeout(function (_) { | ||
return stack[stack.length - 1].focus(); | ||
}, 10); | ||
} | ||
}, { | ||
key: 'returnFocus', | ||
value: function returnFocus() { | ||
var anchor = this.state.anchor; | ||
this.trapFocus(); | ||
// When transitioning between pages using hash route state, | ||
// this anchor is some times lost. Do not attempt to focus | ||
// on a non-existent anchor. | ||
document.addEventListener('focus', this._onBlur, true); | ||
}, | ||
componentWillUnmount: function componentWillUnmount() { | ||
var _this = this; | ||
if (anchor && (typeof anchor === 'undefined' ? 'undefined' : _typeof(anchor)) === 'object' && typeof anchor.focus === 'function') { | ||
anchor.focus(); | ||
} | ||
} | ||
}, { | ||
key: 'componentWillMount', | ||
value: function componentWillMount() { | ||
if (typeof document !== 'undefined') { | ||
this.setState({ anchor: document.activeElement }); | ||
} | ||
} | ||
}, { | ||
key: 'componentDidMount', | ||
value: function componentDidMount() { | ||
stack.push(this); | ||
stack = stack.filter(function (i) { | ||
return i !== _this; | ||
}); | ||
this.trapFocus(); | ||
document.removeEventListener('focus', this._onBlur, true); | ||
document.addEventListener('focus', this._onBlur, true); | ||
} | ||
}, { | ||
key: 'componentWillUnmount', | ||
value: function componentWillUnmount() { | ||
var _this2 = this; | ||
clearTimeout(timer); | ||
stack = stack.filter(function (i) { | ||
return i !== _this2; | ||
}); | ||
this.returnFocus(); | ||
}, | ||
render: function render() { | ||
var _props = this.props; | ||
var children = _props.children; | ||
var Element = _props.element; | ||
var className = _props.className; | ||
document.removeEventListener('focus', this._onBlur, true); | ||
clearTimeout(timer); | ||
return React.createElement( | ||
Element, | ||
{ ref: 'root', tabIndex: '0', className: className }, | ||
children | ||
); | ||
}, | ||
_onBlur: function _onBlur(event) { | ||
var current = stack[stack.length - 1]; | ||
this.returnFocus(); | ||
} | ||
}, { | ||
key: 'render', | ||
value: function render() { | ||
var _props = this.props, | ||
children = _props.children, | ||
Element = _props.element, | ||
className = _props.className; | ||
if (current && current.contains(event.target) === false) { | ||
event.preventDefault(); | ||
this.trapFocus(); | ||
return React.createElement( | ||
Element, | ||
{ ref: 'root', tabIndex: '0', className: className }, | ||
children | ||
); | ||
} | ||
} | ||
}); | ||
}]); | ||
return FocalPoint; | ||
}(React.Component); | ||
FocalPoint.defaultProps = { | ||
element: 'div' | ||
}; | ||
module.exports = FocalPoint; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb2NhbC1wb2ludC5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7OztBQUtBLElBQUksUUFBUSxRQUFRLE9BQVIsQ0FBWjtBQUNBLElBQUksUUFBUSxFQUFaO0FBQ0EsSUFBSSxRQUFRLElBQVo7O0FBRUE7Ozs7QUFJQSxJQUFJLE9BQU8sUUFBUCxLQUFvQixXQUFwQixJQUFtQyxTQUFTLGFBQWhELEVBQStEO0FBQzdELFFBQU0sSUFBTixDQUFXLFNBQVMsYUFBcEI7QUFDRDs7QUFFRCxJQUFJLGFBQWEsTUFBTSxXQUFOLENBQWtCO0FBQUE7QUFFakMsaUJBRmlDLDZCQUVmO0FBQ2hCLFdBQU87QUFDTCxlQUFVO0FBREwsS0FBUDtBQUdELEdBTmdDO0FBUWpDLFVBUmlDLG9CQVF4QixPQVJ3QixFQVFmO0FBQ2hCLFdBQU8sS0FBSyxJQUFMLENBQVUsSUFBVixDQUFlLFFBQWYsQ0FBd0IsT0FBeEIsQ0FBUDtBQUNELEdBVmdDO0FBWWpDLE9BWmlDLG1CQVl6QjtBQUNOLFFBQUksS0FBSyxRQUFMLENBQWMsU0FBUyxhQUF2QixNQUEwQyxLQUE5QyxFQUFxRDtBQUNuRCxXQUFLLElBQUwsQ0FBVSxJQUFWLENBQWUsS0FBZjtBQUNEO0FBQ0YsR0FoQmdDO0FBa0JqQyxXQWxCaUMscUJBa0J2QixDQWxCdUIsRUFrQnBCO0FBQ1gsaUJBQWEsS0FBYjtBQUNBLFlBQVEsV0FBVztBQUFBLGFBQUssTUFBTSxNQUFNLE1BQU4sR0FBZSxDQUFyQixFQUF3QixLQUF4QixFQUFMO0FBQUEsS0FBWCxFQUFpRCxFQUFqRCxDQUFSO0FBQ0QsR0FyQmdDO0FBdUJqQyxhQXZCaUMseUJBdUJuQjtBQUFBLFFBQ04sTUFETSxHQUNLLEtBQUssS0FEVixDQUNOLE1BRE07O0FBR1o7QUFDQTtBQUNBOztBQUNBLFFBQUksVUFBVSxRQUFPLE1BQVAseUNBQU8sTUFBUCxPQUFrQixRQUE1QixJQUF3QyxPQUFPLE9BQU8sS0FBZCxLQUF3QixVQUFwRSxFQUFnRjtBQUM5RSxhQUFPLEtBQVA7QUFDRDtBQUNGLEdBaENnQztBQWtDakMsb0JBbENpQyxnQ0FrQ1o7QUFDbkIsUUFBSSxPQUFPLFFBQVAsS0FBb0IsV0FBeEIsRUFBcUM7QUFDbkMsV0FBSyxRQUFMLENBQWMsRUFBRSxRQUFRLFNBQVMsYUFBbkIsRUFBZDtBQUNEO0FBQ0YsR0F0Q2dDO0FBd0NqQyxtQkF4Q2lDLCtCQXdDYjtBQUNsQixVQUFNLElBQU4sQ0FBVyxJQUFYOztBQUVBLFNBQUssU0FBTDs7QUFFQSxhQUFTLGdCQUFULENBQTBCLE9BQTFCLEVBQW1DLEtBQUssT0FBeEMsRUFBaUQsSUFBakQ7QUFDRCxHQTlDZ0M7QUFnRGpDLHNCQWhEaUMsa0NBZ0RWO0FBQUE7O0FBQ3JCLFlBQVEsTUFBTSxNQUFOLENBQWE7QUFBQSxhQUFLLFdBQUw7QUFBQSxLQUFiLENBQVI7O0FBRUEsYUFBUyxtQkFBVCxDQUE2QixPQUE3QixFQUFzQyxLQUFLLE9BQTNDLEVBQW9ELElBQXBEOztBQUVBLGlCQUFhLEtBQWI7O0FBRUEsU0FBSyxXQUFMO0FBQ0QsR0F4RGdDO0FBMERqQyxRQTFEaUMsb0JBMER4QjtBQUFBLGlCQUN3QyxLQUFLLEtBRDdDO0FBQUEsUUFDRCxRQURDLFVBQ0QsUUFEQztBQUFBLFFBQ2lCLE9BRGpCLFVBQ1MsT0FEVDtBQUFBLFFBQzBCLFNBRDFCLFVBQzBCLFNBRDFCOzs7QUFHUCxXQUNFO0FBQUMsYUFBRDtBQUFBLFFBQVMsS0FBSSxNQUFiLEVBQW9CLFVBQVMsR0FBN0IsRUFBaUMsV0FBWSxTQUE3QztBQUNJO0FBREosS0FERjtBQUtELEdBbEVnQztBQW9FakMsU0FwRWlDLG1CQW9FekIsS0FwRXlCLEVBb0VsQjtBQUNiLFFBQUksVUFBVSxNQUFNLE1BQU0sTUFBTixHQUFlLENBQXJCLENBQWQ7O0FBRUEsUUFBSSxXQUFXLFFBQVEsUUFBUixDQUFpQixNQUFNLE1BQXZCLE1BQW1DLEtBQWxELEVBQXlEO0FBQ3ZELFlBQU0sY0FBTjtBQUNBLFdBQUssU0FBTDtBQUNEO0FBQ0Y7QUEzRWdDLENBQWxCLENBQWpCOztBQThFQSxPQUFPLE9BQVAsR0FBaUIsVUFBakIiLCJmaWxlIjoiZm9jYWwtcG9pbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvY2FsUG9pbnRcbiAqIFRoZSBjb250YWluZXIgdGhhdCB3aWxsIG1haW50YWluIGZvY3VzXG4gKi9cblxubGV0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKVxubGV0IHN0YWNrID0gW11cbmxldCB0aW1lciA9IG51bGxcblxuLyoqXG4gKiBUbyBzdXBwb3J0IHNlcnZlci1zaWRlIHJlbmRlcmluZywgZG8gbm90IHB1c2ggdGhlIGFjdGl2ZSBlbGVtZW50XG4gKiB3aGVuIG5vdCBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudFxuICovXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gIHN0YWNrLnB1c2goZG9jdW1lbnQuYWN0aXZlRWxlbWVudClcbn1cblxubGV0IEZvY2FsUG9pbnQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG5cbiAgZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBlbGVtZW50IDogJ2RpdidcbiAgICB9XG4gIH0sXG5cbiAgY29udGFpbnMoZWxlbWVudCkge1xuICAgIHJldHVybiB0aGlzLnJlZnMucm9vdC5jb250YWlucyhlbGVtZW50KVxuICB9LFxuXG4gIGZvY3VzKCkge1xuICAgIGlmICh0aGlzLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5yZWZzLnJvb3QuZm9jdXMoKVxuICAgIH1cbiAgfSxcblxuICB0cmFwRm9jdXMoZSkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lcilcbiAgICB0aW1lciA9IHNldFRpbWVvdXQoXyA9PiBzdGFja1tzdGFjay5sZW5ndGggLSAxXS5mb2N1cygpLCAxMClcbiAgfSxcblxuICByZXR1cm5Gb2N1cygpIHtcbiAgICBsZXQgeyBhbmNob3IgfSA9IHRoaXMuc3RhdGVcblxuICAgIC8vIFdoZW4gdHJhbnNpdGlvbmluZyBiZXR3ZWVuIHBhZ2VzIHVzaW5nIGhhc2ggcm91dGUgc3RhdGUsXG4gICAgLy8gdGhpcyBhbmNob3IgaXMgc29tZSB0aW1lcyBsb3N0LiBEbyBub3QgYXR0ZW1wdCB0byBmb2N1c1xuICAgIC8vIG9uIGEgbm9uLWV4aXN0ZW50IGFuY2hvci5cbiAgICBpZiAoYW5jaG9yICYmIHR5cGVvZiBhbmNob3IgPT09ICdvYmplY3QnICYmIHR5cGVvZiBhbmNob3IuZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGFuY2hvci5mb2N1cygpXG4gICAgfVxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFuY2hvcjogZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB9KVxuICAgIH1cbiAgfSxcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBzdGFjay5wdXNoKHRoaXMpXG5cbiAgICB0aGlzLnRyYXBGb2N1cygpXG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuX29uQmx1ciwgdHJ1ZSlcbiAgfSxcblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBzdGFjayA9IHN0YWNrLmZpbHRlcihpID0+IGkgIT09IHRoaXMpXG5cbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuX29uQmx1ciwgdHJ1ZSlcblxuICAgIGNsZWFyVGltZW91dCh0aW1lcilcblxuICAgIHRoaXMucmV0dXJuRm9jdXMoKVxuICB9LFxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgZWxlbWVudDpFbGVtZW50LCBjbGFzc05hbWUgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8RWxlbWVudCByZWY9XCJyb290XCIgdGFiSW5kZXg9XCIwXCIgY2xhc3NOYW1lPXsgY2xhc3NOYW1lIH0+XG4gICAgICAgIHsgY2hpbGRyZW4gfVxuICAgICAgPC9FbGVtZW50PlxuICAgIClcbiAgfSxcblxuICBfb25CbHVyKGV2ZW50KSB7XG4gICAgbGV0IGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXVxuXG4gICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQpID09PSBmYWxzZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgdGhpcy50cmFwRm9jdXMoKVxuICAgIH1cbiAgfVxufSlcblxubW9kdWxlLmV4cG9ydHMgPSBGb2NhbFBvaW50XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb2NhbC1wb2ludC5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsInJlcXVpcmUiLCJzdGFjayIsInRpbWVyIiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwicHVzaCIsIkZvY2FsUG9pbnQiLCJfb25CbHVyIiwiY3VycmVudCIsImxlbmd0aCIsImNvbnRhaW5zIiwiZXZlbnQiLCJ0YXJnZXQiLCJwcmV2ZW50RGVmYXVsdCIsInRyYXBGb2N1cyIsImVsZW1lbnQiLCJyZWZzIiwicm9vdCIsImZvY3VzIiwiZSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJhbmNob3IiLCJzdGF0ZSIsInNldFN0YXRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsImZpbHRlciIsImkiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmV0dXJuRm9jdXMiLCJwcm9wcyIsImNoaWxkcmVuIiwiRWxlbWVudCIsImNsYXNzTmFtZSIsIkNvbXBvbmVudCIsImRlZmF1bHRQcm9wcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7OztBQUtBLElBQUlBLFFBQVFDLFFBQVEsT0FBUixDQUFaO0FBQ0EsSUFBSUMsUUFBUSxFQUFaO0FBQ0EsSUFBSUMsUUFBUSxJQUFaOztBQUVBOzs7O0FBSUEsSUFBSSxPQUFPQyxRQUFQLEtBQW9CLFdBQXBCLElBQW1DQSxTQUFTQyxhQUFoRCxFQUErRDtBQUM3REgsUUFBTUksSUFBTixDQUFXRixTQUFTQyxhQUFwQjtBQUNEOztJQUVLRSxVOzs7Ozs7Ozs7Ozs7Ozs4TEFtRUpDLE8sR0FBVSxpQkFBUztBQUNqQixVQUFJQyxVQUFVUCxNQUFNQSxNQUFNUSxNQUFOLEdBQWUsQ0FBckIsQ0FBZDs7QUFFQSxVQUFJRCxXQUFXQSxRQUFRRSxRQUFSLENBQWlCQyxNQUFNQyxNQUF2QixNQUFtQyxLQUFsRCxFQUF5RDtBQUN2REQsY0FBTUUsY0FBTjtBQUNBLGNBQUtDLFNBQUw7QUFDRDtBQUNGLEs7Ozs7OzZCQXJFUUMsTyxFQUFTO0FBQ2hCLGFBQU8sS0FBS0MsSUFBTCxDQUFVQyxJQUFWLENBQWVQLFFBQWYsQ0FBd0JLLE9BQXhCLENBQVA7QUFDRDs7OzRCQUVPO0FBQ04sVUFBSSxLQUFLTCxRQUFMLENBQWNQLFNBQVNDLGFBQXZCLE1BQTBDLEtBQTlDLEVBQXFEO0FBQ25ELGFBQUtZLElBQUwsQ0FBVUMsSUFBVixDQUFlQyxLQUFmO0FBQ0Q7QUFDRjs7OzhCQUVTQyxDLEVBQUc7QUFDWEMsbUJBQWFsQixLQUFiO0FBQ0FBLGNBQVFtQixXQUFXO0FBQUEsZUFBS3BCLE1BQU1BLE1BQU1RLE1BQU4sR0FBZSxDQUFyQixFQUF3QlMsS0FBeEIsRUFBTDtBQUFBLE9BQVgsRUFBaUQsRUFBakQsQ0FBUjtBQUNEOzs7a0NBRWE7QUFBQSxVQUNOSSxNQURNLEdBQ0ssS0FBS0MsS0FEVixDQUNORCxNQURNOztBQUdaO0FBQ0E7QUFDQTs7QUFDQSxVQUNFQSxVQUFVLFFBQU9BLE1BQVAseUNBQU9BLE1BQVAsT0FBa0IsUUFBNUIsSUFBd0MsT0FBT0EsT0FBT0osS0FBZCxLQUF3QixVQURsRSxFQUVFO0FBQ0FJLGVBQU9KLEtBQVA7QUFDRDtBQUNGOzs7eUNBRW9CO0FBQ25CLFVBQUksT0FBT2YsUUFBUCxLQUFvQixXQUF4QixFQUFxQztBQUNuQyxhQUFLcUIsUUFBTCxDQUFjLEVBQUVGLFFBQVFuQixTQUFTQyxhQUFuQixFQUFkO0FBQ0Q7QUFDRjs7O3dDQUVtQjtBQUNsQkgsWUFBTUksSUFBTixDQUFXLElBQVg7O0FBRUEsV0FBS1MsU0FBTDs7QUFFQVgsZUFBU3NCLGdCQUFULENBQTBCLE9BQTFCLEVBQW1DLEtBQUtsQixPQUF4QyxFQUFpRCxJQUFqRDtBQUNEOzs7MkNBRXNCO0FBQUE7O0FBQ3JCTixjQUFRQSxNQUFNeUIsTUFBTixDQUFhO0FBQUEsZUFBS0MsWUFBTDtBQUFBLE9BQWIsQ0FBUjs7QUFFQXhCLGVBQVN5QixtQkFBVCxDQUE2QixPQUE3QixFQUFzQyxLQUFLckIsT0FBM0MsRUFBb0QsSUFBcEQ7O0FBRUFhLG1CQUFhbEIsS0FBYjs7QUFFQSxXQUFLMkIsV0FBTDtBQUNEOzs7NkJBRVE7QUFBQSxtQkFDeUMsS0FBS0MsS0FEOUM7QUFBQSxVQUNEQyxRQURDLFVBQ0RBLFFBREM7QUFBQSxVQUNrQkMsT0FEbEIsVUFDU2pCLE9BRFQ7QUFBQSxVQUMyQmtCLFNBRDNCLFVBQzJCQSxTQUQzQjs7O0FBR1AsYUFDRTtBQUFDLGVBQUQ7QUFBQSxVQUFTLEtBQUksTUFBYixFQUFvQixVQUFTLEdBQTdCLEVBQWlDLFdBQVdBLFNBQTVDO0FBQ0dGO0FBREgsT0FERjtBQUtEOzs7O0VBakVzQmhDLE1BQU1tQyxTOztBQUF6QjVCLFUsQ0FDRzZCLFksR0FBZTtBQUNwQnBCLFdBQVM7QUFEVyxDOzs7QUE0RXhCcUIsT0FBT0MsT0FBUCxHQUFpQi9CLFVBQWpCIiwiZmlsZSI6ImZvY2FsLXBvaW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb2NhbFBvaW50XG4gKiBUaGUgY29udGFpbmVyIHRoYXQgd2lsbCBtYWludGFpbiBmb2N1c1xuICovXG5cbmxldCBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0JylcbmxldCBzdGFjayA9IFtdXG5sZXQgdGltZXIgPSBudWxsXG5cbi8qKlxuICogVG8gc3VwcG9ydCBzZXJ2ZXItc2lkZSByZW5kZXJpbmcsIGRvIG5vdCBwdXNoIHRoZSBhY3RpdmUgZWxlbWVudFxuICogd2hlbiBub3QgaW4gdGhlIGJyb3dzZXIgZW52aXJvbm1lbnRcbiAqL1xuaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuICBzdGFjay5wdXNoKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpXG59XG5cbmNsYXNzIEZvY2FsUG9pbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGVsZW1lbnQ6ICdkaXYnXG4gIH1cblxuICBjb250YWlucyhlbGVtZW50KSB7XG4gICAgcmV0dXJuIHRoaXMucmVmcy5yb290LmNvbnRhaW5zKGVsZW1lbnQpXG4gIH1cblxuICBmb2N1cygpIHtcbiAgICBpZiAodGhpcy5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucmVmcy5yb290LmZvY3VzKClcbiAgICB9XG4gIH1cblxuICB0cmFwRm9jdXMoZSkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lcilcbiAgICB0aW1lciA9IHNldFRpbWVvdXQoXyA9PiBzdGFja1tzdGFjay5sZW5ndGggLSAxXS5mb2N1cygpLCAxMClcbiAgfVxuXG4gIHJldHVybkZvY3VzKCkge1xuICAgIGxldCB7IGFuY2hvciB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgLy8gV2hlbiB0cmFuc2l0aW9uaW5nIGJldHdlZW4gcGFnZXMgdXNpbmcgaGFzaCByb3V0ZSBzdGF0ZSxcbiAgICAvLyB0aGlzIGFuY2hvciBpcyBzb21lIHRpbWVzIGxvc3QuIERvIG5vdCBhdHRlbXB0IHRvIGZvY3VzXG4gICAgLy8gb24gYSBub24tZXhpc3RlbnQgYW5jaG9yLlxuICAgIGlmIChcbiAgICAgIGFuY2hvciAmJiB0eXBlb2YgYW5jaG9yID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgYW5jaG9yLmZvY3VzID09PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBhbmNob3IuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFuY2hvcjogZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHN0YWNrLnB1c2godGhpcylcblxuICAgIHRoaXMudHJhcEZvY3VzKClcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5fb25CbHVyLCB0cnVlKVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgc3RhY2sgPSBzdGFjay5maWx0ZXIoaSA9PiBpICE9PSB0aGlzKVxuXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLl9vbkJsdXIsIHRydWUpXG5cbiAgICBjbGVhclRpbWVvdXQodGltZXIpXG5cbiAgICB0aGlzLnJldHVybkZvY3VzKClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgZWxlbWVudDogRWxlbWVudCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEVsZW1lbnQgcmVmPVwicm9vdFwiIHRhYkluZGV4PVwiMFwiIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9FbGVtZW50PlxuICAgIClcbiAgfVxuXG4gIF9vbkJsdXIgPSBldmVudCA9PiB7XG4gICAgbGV0IGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXVxuXG4gICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQpID09PSBmYWxzZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgdGhpcy50cmFwRm9jdXMoKVxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEZvY2FsUG9pbnRcbiJdfQ== |
'use strict'; | ||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
var FocalPoint = require('./focal-point'); | ||
var React = require('react'); | ||
var FocusTrap = React.createClass({ | ||
displayName: 'FocusTrap', | ||
var FocusTrap = function (_React$Component) { | ||
_inherits(FocusTrap, _React$Component); | ||
function FocusTrap() { | ||
var _ref; | ||
propTypes: { | ||
active: React.PropTypes.bool, | ||
onExit: React.PropTypes.func | ||
}, | ||
var _temp, _this, _ret; | ||
getDefaultProps: function getDefaultProps() { | ||
return { | ||
active: true, | ||
className: 'focus-trap' | ||
}; | ||
}, | ||
render: function render() { | ||
var _props = this.props; | ||
var active = _props.active; | ||
var className = _props.className; | ||
var children = _props.children; | ||
var element = _props.element; | ||
var onExit = _props.onExit; | ||
_classCallCheck(this, FocusTrap); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
if (!active) return null; | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = FocusTrap.__proto__ || Object.getPrototypeOf(FocusTrap)).call.apply(_ref, [this].concat(args))), _this), _this._onKeyUp = function (event) { | ||
if (event.key === 'Escape' && 'onExit' in _this.props) { | ||
_this.props.onExit(); | ||
} | ||
}, _temp), _possibleConstructorReturn(_this, _ret); | ||
} | ||
return React.createElement( | ||
'div', | ||
{ className: className + '-wrapper', onKeyUp: this._onKeyUp }, | ||
React.createElement('div', { 'aria-hidden': 'true', className: className + '-backdrop', onClick: onExit }), | ||
React.createElement( | ||
FocalPoint, | ||
{ ref: 'focus', className: className, element: element }, | ||
children | ||
) | ||
); | ||
}, | ||
_onKeyUp: function _onKeyUp(e) { | ||
if (e.key === 'Escape' && 'onExit' in this.props) { | ||
this.props.onExit(); | ||
_createClass(FocusTrap, [{ | ||
key: 'render', | ||
value: function render() { | ||
var _props = this.props, | ||
active = _props.active, | ||
className = _props.className, | ||
children = _props.children, | ||
element = _props.element, | ||
onExit = _props.onExit; | ||
if (!active) return null; | ||
return React.createElement( | ||
'div', | ||
{ className: className + '-wrapper', onKeyUp: this._onKeyUp }, | ||
React.createElement('div', { | ||
'aria-hidden': 'true', | ||
className: className + '-backdrop', | ||
onClick: onExit | ||
}), | ||
React.createElement( | ||
FocalPoint, | ||
{ ref: 'focus', className: className, element: element }, | ||
children | ||
) | ||
); | ||
} | ||
} | ||
}); | ||
}]); | ||
return FocusTrap; | ||
}(React.Component); | ||
FocusTrap.defaultProps = { | ||
active: true, | ||
className: 'focus-trap' | ||
}; | ||
module.exports = FocusTrap; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb2N1cy10cmFwLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQUksYUFBYSxRQUFRLGVBQVIsQ0FBakI7QUFDQSxJQUFJLFFBQWEsUUFBUSxPQUFSLENBQWpCOztBQUVBLElBQUksWUFBWSxNQUFNLFdBQU4sQ0FBa0I7QUFBQTs7O0FBRWhDLGFBQVc7QUFDVCxZQUFTLE1BQU0sU0FBTixDQUFnQixJQURoQjtBQUVULFlBQVMsTUFBTSxTQUFOLENBQWdCO0FBRmhCLEdBRnFCOztBQU9oQyxpQkFQZ0MsNkJBT2Q7QUFDaEIsV0FBTztBQUNMLGNBQVksSUFEUDtBQUVMLGlCQUFZO0FBRlAsS0FBUDtBQUlELEdBWitCO0FBY2hDLFFBZGdDLG9CQWN2QjtBQUFBLGlCQUNnRCxLQUFLLEtBRHJEO0FBQUEsUUFDRCxNQURDLFVBQ0QsTUFEQztBQUFBLFFBQ08sU0FEUCxVQUNPLFNBRFA7QUFBQSxRQUNrQixRQURsQixVQUNrQixRQURsQjtBQUFBLFFBQzRCLE9BRDVCLFVBQzRCLE9BRDVCO0FBQUEsUUFDcUMsTUFEckMsVUFDcUMsTUFEckM7OztBQUdQLFFBQUksQ0FBQyxNQUFMLEVBQWMsT0FBTyxJQUFQOztBQUVkLFdBQ0U7QUFBQTtBQUFBLFFBQUssV0FBZ0IsU0FBaEIsYUFBTCxFQUE0QyxTQUFVLEtBQUssUUFBM0Q7QUFDRSxtQ0FBSyxlQUFZLE1BQWpCLEVBQXdCLFdBQWdCLFNBQWhCLGNBQXhCLEVBQWdFLFNBQVUsTUFBMUUsR0FERjtBQUVFO0FBQUMsa0JBQUQ7QUFBQSxVQUFZLEtBQUksT0FBaEIsRUFBd0IsV0FBWSxTQUFwQyxFQUFnRCxTQUFVLE9BQTFEO0FBQ0k7QUFESjtBQUZGLEtBREY7QUFRRCxHQTNCK0I7QUE2QmhDLFVBN0JnQyxvQkE2QnZCLENBN0J1QixFQTZCcEI7QUFDVixRQUFJLEVBQUUsR0FBRixLQUFVLFFBQVYsSUFBc0IsWUFBWSxLQUFLLEtBQTNDLEVBQWtEO0FBQ2hELFdBQUssS0FBTCxDQUFXLE1BQVg7QUFDRDtBQUNGO0FBakMrQixDQUFsQixDQUFoQjs7QUFvQ0EsT0FBTyxPQUFQLEdBQWlCLFNBQWpCIiwiZmlsZSI6ImZvY3VzLXRyYXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgRm9jYWxQb2ludCA9IHJlcXVpcmUoJy4vZm9jYWwtcG9pbnQnKVxubGV0IFJlYWN0ICAgICAgPSByZXF1aXJlKCdyZWFjdCcpXG5cbmxldCBGb2N1c1RyYXAgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG5cbiAgcHJvcFR5cGVzOiB7XG4gICAgYWN0aXZlIDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgb25FeGl0IDogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgfSxcblxuICBnZXREZWZhdWx0UHJvcHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGl2ZSAgICA6IHRydWUsXG4gICAgICBjbGFzc05hbWUgOiAnZm9jdXMtdHJhcCdcbiAgICB9XG4gIH0sXG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGFjdGl2ZSwgY2xhc3NOYW1lLCBjaGlsZHJlbiwgZWxlbWVudCwgb25FeGl0IH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoIWFjdGl2ZSApIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9eyBgJHsgY2xhc3NOYW1lIH0td3JhcHBlcmAgfSBvbktleVVwPXsgdGhpcy5fb25LZXlVcCB9PlxuICAgICAgICA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT17IGAkeyBjbGFzc05hbWUgfS1iYWNrZHJvcGAgfSBvbkNsaWNrPXsgb25FeGl0IH0gLz5cbiAgICAgICAgPEZvY2FsUG9pbnQgcmVmPSdmb2N1cycgY2xhc3NOYW1lPXsgY2xhc3NOYW1lIH0gZWxlbWVudD17IGVsZW1lbnQgfT5cbiAgICAgICAgICB7IGNoaWxkcmVuIH1cbiAgICAgICAgPC9Gb2NhbFBvaW50PlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9LFxuXG4gIF9vbktleVVwKGUpIHtcbiAgICBpZiAoZS5rZXkgPT09ICdFc2NhcGUnICYmICdvbkV4aXQnIGluIHRoaXMucHJvcHMpIHtcbiAgICAgIHRoaXMucHJvcHMub25FeGl0KClcbiAgICB9XG4gIH1cbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gRm9jdXNUcmFwXG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb2N1cy10cmFwLmpzIl0sIm5hbWVzIjpbIkZvY2FsUG9pbnQiLCJyZXF1aXJlIiwiUmVhY3QiLCJGb2N1c1RyYXAiLCJfb25LZXlVcCIsImV2ZW50Iiwia2V5IiwicHJvcHMiLCJvbkV4aXQiLCJhY3RpdmUiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsImVsZW1lbnQiLCJDb21wb25lbnQiLCJkZWZhdWx0UHJvcHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBSUEsYUFBYUMsUUFBUSxlQUFSLENBQWpCO0FBQ0EsSUFBSUMsUUFBUUQsUUFBUSxPQUFSLENBQVo7O0lBRU1FLFM7Ozs7Ozs7Ozs7Ozs7OzRMQXlCSkMsUSxHQUFXLGlCQUFTO0FBQ2xCLFVBQUlDLE1BQU1DLEdBQU4sS0FBYyxRQUFkLElBQTBCLFlBQVksTUFBS0MsS0FBL0MsRUFBc0Q7QUFDcEQsY0FBS0EsS0FBTCxDQUFXQyxNQUFYO0FBQ0Q7QUFDRixLOzs7Ozs2QkF2QlE7QUFBQSxtQkFDZ0QsS0FBS0QsS0FEckQ7QUFBQSxVQUNERSxNQURDLFVBQ0RBLE1BREM7QUFBQSxVQUNPQyxTQURQLFVBQ09BLFNBRFA7QUFBQSxVQUNrQkMsUUFEbEIsVUFDa0JBLFFBRGxCO0FBQUEsVUFDNEJDLE9BRDVCLFVBQzRCQSxPQUQ1QjtBQUFBLFVBQ3FDSixNQURyQyxVQUNxQ0EsTUFEckM7OztBQUdQLFVBQUksQ0FBQ0MsTUFBTCxFQUFhLE9BQU8sSUFBUDs7QUFFYixhQUNFO0FBQUE7QUFBQSxVQUFLLFdBQWNDLFNBQWQsYUFBTCxFQUF3QyxTQUFTLEtBQUtOLFFBQXREO0FBQ0U7QUFDRSx5QkFBWSxNQURkO0FBRUUscUJBQWNNLFNBQWQsY0FGRjtBQUdFLG1CQUFTRjtBQUhYLFVBREY7QUFNRTtBQUFDLG9CQUFEO0FBQUEsWUFBWSxLQUFJLE9BQWhCLEVBQXdCLFdBQVdFLFNBQW5DLEVBQThDLFNBQVNFLE9BQXZEO0FBQ0dEO0FBREg7QUFORixPQURGO0FBWUQ7Ozs7RUF2QnFCVCxNQUFNVyxTOztBQUF4QlYsUyxDQUNHVyxZLEdBQWU7QUFDcEJMLFVBQVEsSUFEWTtBQUVwQkMsYUFBVztBQUZTLEM7OztBQStCeEJLLE9BQU9DLE9BQVAsR0FBaUJiLFNBQWpCIiwiZmlsZSI6ImZvY3VzLXRyYXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgRm9jYWxQb2ludCA9IHJlcXVpcmUoJy4vZm9jYWwtcG9pbnQnKVxubGV0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKVxuXG5jbGFzcyBGb2N1c1RyYXAgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICBjbGFzc05hbWU6ICdmb2N1cy10cmFwJ1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7IGFjdGl2ZSwgY2xhc3NOYW1lLCBjaGlsZHJlbiwgZWxlbWVudCwgb25FeGl0IH0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7Y2xhc3NOYW1lfS13cmFwcGVyYH0gb25LZXlVcD17dGhpcy5fb25LZXlVcH0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7Y2xhc3NOYW1lfS1iYWNrZHJvcGB9XG4gICAgICAgICAgb25DbGljaz17b25FeGl0fVxuICAgICAgICAvPlxuICAgICAgICA8Rm9jYWxQb2ludCByZWY9XCJmb2N1c1wiIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBlbGVtZW50PXtlbGVtZW50fT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvRm9jYWxQb2ludD5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIF9vbktleVVwID0gZXZlbnQgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnICYmICdvbkV4aXQnIGluIHRoaXMucHJvcHMpIHtcbiAgICAgIHRoaXMucHJvcHMub25FeGl0KClcbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBGb2N1c1RyYXBcbiJdfQ== |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
19840
172
1