@lskjs/navbar
Version:
LSK ux subrepo: navbar
80 lines (61 loc) • 7.93 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useBootstrapPrefix = useBootstrapPrefix;
exports.createBootstrapComponent = createBootstrapComponent;
exports["default"] = exports.ThemeConsumer = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _forwardRef = _interopRequireDefault(require("@restart/context/forwardRef"));
var _react = _interopRequireWildcard(require("react"));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var ThemeContext = _react["default"].createContext({});
var Consumer = ThemeContext.Consumer,
Provider = ThemeContext.Provider;
exports.ThemeConsumer = Consumer;
function ThemeProvider(_ref) {
var prefixes = _ref.prefixes,
children = _ref.children;
var copiedPrefixes = (0, _react.useMemo)(function () {
return _objectSpread({}, prefixes);
}, [prefixes]);
return /*#__PURE__*/_react["default"].createElement(Provider, {
value: copiedPrefixes
}, children);
}
ThemeProvider.propTypes = {
prefixes: _propTypes["default"].object.isRequired
};
function useBootstrapPrefix(prefix, defaultPrefix) {
var prefixes = (0, _react.useContext)(ThemeContext);
return prefix || prefixes[defaultPrefix] || defaultPrefix;
}
function createBootstrapComponent(Component, opts) {
if (typeof opts === 'string') opts = {
prefix: opts
};
var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref
var _opts = opts,
prefix = _opts.prefix,
_opts$forwardRefAs = _opts.forwardRefAs,
forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;
return (0, _forwardRef["default"])(function (_ref2, ref) {
var props = (0, _extends2["default"])({}, _ref2);
props[forwardRefAs] = ref; // eslint-disable-next-line react/prop-types
var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, {
bsPrefix: bsPrefix
}));
}, {
displayName: "Bootstrap(".concat(Component.displayName || Component.name, ")")
});
}
var _default = ThemeProvider;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9UaGVtZVByb3ZpZGVyLmpzIl0sIm5hbWVzIjpbIlRoZW1lQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsIkNvbnN1bWVyIiwiUHJvdmlkZXIiLCJUaGVtZVByb3ZpZGVyIiwicHJlZml4ZXMiLCJjaGlsZHJlbiIsImNvcGllZFByZWZpeGVzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInVzZUJvb3RzdHJhcFByZWZpeCIsInByZWZpeCIsImRlZmF1bHRQcmVmaXgiLCJjcmVhdGVCb290c3RyYXBDb21wb25lbnQiLCJDb21wb25lbnQiLCJvcHRzIiwiaXNDbGFzc3kiLCJwcm90b3R5cGUiLCJpc1JlYWN0Q29tcG9uZW50IiwiZm9yd2FyZFJlZkFzIiwicmVmIiwicHJvcHMiLCJic1ByZWZpeCIsImRpc3BsYXlOYW1lIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsWUFBWSxHQUFHQyxrQkFBTUMsYUFBTixDQUFvQixFQUFwQixDQUFyQjs7SUFDUUMsUSxHQUF1QkgsWSxDQUF2QkcsUTtJQUFVQyxRLEdBQWFKLFksQ0FBYkksUTs7O0FBRWxCLFNBQVNDLGFBQVQsT0FBK0M7QUFBQSxNQUF0QkMsUUFBc0IsUUFBdEJBLFFBQXNCO0FBQUEsTUFBWkMsUUFBWSxRQUFaQSxRQUFZO0FBQzdDLE1BQU1DLGNBQWMsR0FBRyxvQkFBUTtBQUFBLDZCQUFZRixRQUFaO0FBQUEsR0FBUixFQUFpQyxDQUFDQSxRQUFELENBQWpDLENBQXZCO0FBRUEsc0JBQU8sZ0NBQUMsUUFBRDtBQUFVLElBQUEsS0FBSyxFQUFFRTtBQUFqQixLQUFrQ0QsUUFBbEMsQ0FBUDtBQUNEOztBQUVERixhQUFhLENBQUNJLFNBQWQsR0FBMEI7QUFDeEJILEVBQUFBLFFBQVEsRUFBRUksc0JBQVVDLE1BQVYsQ0FBaUJDO0FBREgsQ0FBMUI7O0FBSU8sU0FBU0Msa0JBQVQsQ0FBNEJDLE1BQTVCLEVBQW9DQyxhQUFwQyxFQUFtRDtBQUN4RCxNQUFNVCxRQUFRLEdBQUcsdUJBQVdOLFlBQVgsQ0FBakI7QUFDQSxTQUFPYyxNQUFNLElBQUlSLFFBQVEsQ0FBQ1MsYUFBRCxDQUFsQixJQUFxQ0EsYUFBNUM7QUFDRDs7QUFFRCxTQUFTQyx3QkFBVCxDQUFrQ0MsU0FBbEMsRUFBNkNDLElBQTdDLEVBQW1EO0FBQ2pELE1BQUksT0FBT0EsSUFBUCxLQUFnQixRQUFwQixFQUE4QkEsSUFBSSxHQUFHO0FBQUVKLElBQUFBLE1BQU0sRUFBRUk7QUFBVixHQUFQO0FBQzlCLE1BQU1DLFFBQVEsR0FBR0YsU0FBUyxDQUFDRyxTQUFWLElBQXVCSCxTQUFTLENBQUNHLFNBQVYsQ0FBb0JDLGdCQUE1RCxDQUZpRCxDQUdqRDs7QUFIaUQsY0FJZ0JILElBSmhCO0FBQUEsTUFJekNKLE1BSnlDLFNBSXpDQSxNQUp5QztBQUFBLGlDQUlqQ1EsWUFKaUM7QUFBQSxNQUlqQ0EsWUFKaUMsbUNBSWxCSCxRQUFRLEdBQUcsS0FBSCxHQUFXLFVBSkQ7QUFNakQsU0FBTyw0QkFDTCxpQkFBZUksR0FBZixFQUF1QjtBQUFBLFFBQWpCQyxLQUFpQjtBQUNyQkEsSUFBQUEsS0FBSyxDQUFDRixZQUFELENBQUwsR0FBc0JDLEdBQXRCLENBRHFCLENBRXJCOztBQUNBLFFBQU1FLFFBQVEsR0FBR1osa0JBQWtCLENBQUNXLEtBQUssQ0FBQ0MsUUFBUCxFQUFpQlgsTUFBakIsQ0FBbkM7QUFDQSx3QkFBTyxnQ0FBQyxTQUFELGdDQUFlVSxLQUFmO0FBQXNCLE1BQUEsUUFBUSxFQUFFQztBQUFoQyxPQUFQO0FBQ0QsR0FOSSxFQU9MO0FBQUVDLElBQUFBLFdBQVcsc0JBQWVULFNBQVMsQ0FBQ1MsV0FBVixJQUF5QlQsU0FBUyxDQUFDVSxJQUFsRDtBQUFiLEdBUEssQ0FBUDtBQVNEOztlQUdjdEIsYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgZm9yd2FyZFJlZiBmcm9tICdAcmVzdGFydC9jb250ZXh0L2ZvcndhcmRSZWYnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFRoZW1lQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xuY29uc3QgeyBDb25zdW1lciwgUHJvdmlkZXIgfSA9IFRoZW1lQ29udGV4dDtcblxuZnVuY3Rpb24gVGhlbWVQcm92aWRlcih7IHByZWZpeGVzLCBjaGlsZHJlbiB9KSB7XG4gIGNvbnN0IGNvcGllZFByZWZpeGVzID0gdXNlTWVtbygoKSA9PiAoeyAuLi5wcmVmaXhlcyB9KSwgW3ByZWZpeGVzXSk7XG5cbiAgcmV0dXJuIDxQcm92aWRlciB2YWx1ZT17Y29waWVkUHJlZml4ZXN9PntjaGlsZHJlbn08L1Byb3ZpZGVyPjtcbn1cblxuVGhlbWVQcm92aWRlci5wcm9wVHlwZXMgPSB7XG4gIHByZWZpeGVzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlQm9vdHN0cmFwUHJlZml4KHByZWZpeCwgZGVmYXVsdFByZWZpeCkge1xuICBjb25zdCBwcmVmaXhlcyA9IHVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcbiAgcmV0dXJuIHByZWZpeCB8fCBwcmVmaXhlc1tkZWZhdWx0UHJlZml4XSB8fCBkZWZhdWx0UHJlZml4O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCb290c3RyYXBDb21wb25lbnQoQ29tcG9uZW50LCBvcHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpIG9wdHMgPSB7IHByZWZpeDogb3B0cyB9O1xuICBjb25zdCBpc0NsYXNzeSA9IENvbXBvbmVudC5wcm90b3R5cGUgJiYgQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50O1xuICAvLyBJZiBpdCdzIGEgZnVuY3Rpb25hbCBjb21wb25lbnQgbWFrZSBzdXJlIHdlIGRvbid0IGJyZWFrIGl0IHdpdGggYSByZWZcbiAgY29uc3QgeyBwcmVmaXgsIGZvcndhcmRSZWZBcyA9IGlzQ2xhc3N5ID8gJ3JlZicgOiAnaW5uZXJSZWYnIH0gPSBvcHRzO1xuXG4gIHJldHVybiBmb3J3YXJkUmVmKFxuICAgICh7IC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgICAgcHJvcHNbZm9yd2FyZFJlZkFzXSA9IHJlZjtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9wcm9wLXR5cGVzXG4gICAgICBjb25zdCBic1ByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChwcm9wcy5ic1ByZWZpeCwgcHJlZml4KTtcbiAgICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wcm9wc30gYnNQcmVmaXg9e2JzUHJlZml4fSAvPjtcbiAgICB9LFxuICAgIHsgZGlzcGxheU5hbWU6IGBCb290c3RyYXAoJHtDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWV9KWAgfSxcbiAgKTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlQm9vdHN0cmFwQ29tcG9uZW50LCBDb25zdW1lciBhcyBUaGVtZUNvbnN1bWVyIH07XG5leHBvcnQgZGVmYXVsdCBUaGVtZVByb3ZpZGVyO1xuIl19
//# sourceMappingURL=ThemeProvider.js.map