UNPKG

@lskjs/navbar

Version:

LSK ux subrepo: navbar

88 lines (71 loc) 9.35 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _classnames = _interopRequireDefault(require("classnames")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _useEventCallback = _interopRequireDefault(require("@restart/hooks/useEventCallback")); var _NavContext = _interopRequireDefault(require("./NavContext")); var _SelectableContext = _interopRequireWildcard(require("./SelectableContext")); var propTypes = { active: _propTypes["default"].bool, role: _propTypes["default"].string, href: _propTypes["default"].string, tabIndex: _propTypes["default"].string, eventKey: _propTypes["default"].any, onclick: _propTypes["default"].func, as: _propTypes["default"].any, onClick: _propTypes["default"].func, onSelect: _propTypes["default"].func }; var defaultProps = { disabled: false }; var AbstractNavItem = _react["default"].forwardRef(function (_ref, ref) { var active = _ref.active, className = _ref.className, tabIndex = _ref.tabIndex, eventKey = _ref.eventKey, onSelect = _ref.onSelect, onClick = _ref.onClick, Component = _ref.as, props = (0, _objectWithoutProperties2["default"])(_ref, ["active", "className", "tabIndex", "eventKey", "onSelect", "onClick", "as"]); var navKey = (0, _SelectableContext.makeEventKey)(eventKey, props.href); var parentOnSelect = (0, _react.useContext)(_SelectableContext["default"]); var navContext = (0, _react.useContext)(_NavContext["default"]); var isActive = active; if (navContext) { if (!props.role && navContext.role === 'tablist') props.role = 'tab'; props['data-rb-event-key'] = navKey; props.id = navContext.getControllerId(navKey); props['aria-controls'] = navContext.getControlledId(navKey); isActive = active == null && navKey != null ? navContext.activeKey === navKey : active; } if (props.role === 'tab') { props.tabIndex = isActive ? tabIndex : -1; props['aria-selected'] = isActive; } var handleOnclick = (0, _useEventCallback["default"])(function (e) { if (onClick) onClick(e); if (navKey == null) return; if (onSelect) onSelect(navKey, e); if (parentOnSelect) parentOnSelect(navKey, e); }); return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, { ref: ref, onClick: handleOnclick, className: (0, _classnames["default"])(className, isActive && 'active') })); }); AbstractNavItem.propTypes = propTypes; AbstractNavItem.defaultProps = defaultProps; var _default = AbstractNavItem; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9BYnN0cmFjdE5hdkl0ZW0uanMiXSwibmFtZXMiOlsicHJvcFR5cGVzIiwiYWN0aXZlIiwiUHJvcFR5cGVzIiwiYm9vbCIsInJvbGUiLCJzdHJpbmciLCJocmVmIiwidGFiSW5kZXgiLCJldmVudEtleSIsImFueSIsIm9uY2xpY2siLCJmdW5jIiwiYXMiLCJvbkNsaWNrIiwib25TZWxlY3QiLCJkZWZhdWx0UHJvcHMiLCJkaXNhYmxlZCIsIkFic3RyYWN0TmF2SXRlbSIsIlJlYWN0IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsIkNvbXBvbmVudCIsInByb3BzIiwibmF2S2V5IiwicGFyZW50T25TZWxlY3QiLCJTZWxlY3RhYmxlQ29udGV4dCIsIm5hdkNvbnRleHQiLCJOYXZDb250ZXh0IiwiaXNBY3RpdmUiLCJpZCIsImdldENvbnRyb2xsZXJJZCIsImdldENvbnRyb2xsZWRJZCIsImFjdGl2ZUtleSIsImhhbmRsZU9uY2xpY2siLCJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQSxJQUFNQSxTQUFTLEdBQUc7QUFDaEJDLEVBQUFBLE1BQU0sRUFBRUMsc0JBQVVDLElBREY7QUFFaEJDLEVBQUFBLElBQUksRUFBRUYsc0JBQVVHLE1BRkE7QUFJaEJDLEVBQUFBLElBQUksRUFBRUosc0JBQVVHLE1BSkE7QUFLaEJFLEVBQUFBLFFBQVEsRUFBRUwsc0JBQVVHLE1BTEo7QUFNaEJHLEVBQUFBLFFBQVEsRUFBRU4sc0JBQVVPLEdBTko7QUFPaEJDLEVBQUFBLE9BQU8sRUFBRVIsc0JBQVVTLElBUEg7QUFTaEJDLEVBQUFBLEVBQUUsRUFBRVYsc0JBQVVPLEdBVEU7QUFVaEJJLEVBQUFBLE9BQU8sRUFBRVgsc0JBQVVTLElBVkg7QUFXaEJHLEVBQUFBLFFBQVEsRUFBRVosc0JBQVVTO0FBWEosQ0FBbEI7QUFjQSxJQUFNSSxZQUFZLEdBQUc7QUFDbkJDLEVBQUFBLFFBQVEsRUFBRTtBQURTLENBQXJCOztBQUlBLElBQU1DLGVBQWUsR0FBR0Msa0JBQU1DLFVBQU4sQ0FDdEIsZ0JBV0VDLEdBWEYsRUFZSztBQUFBLE1BVkRuQixNQVVDLFFBVkRBLE1BVUM7QUFBQSxNQVREb0IsU0FTQyxRQVREQSxTQVNDO0FBQUEsTUFSRGQsUUFRQyxRQVJEQSxRQVFDO0FBQUEsTUFQREMsUUFPQyxRQVBEQSxRQU9DO0FBQUEsTUFORE0sUUFNQyxRQU5EQSxRQU1DO0FBQUEsTUFMREQsT0FLQyxRQUxEQSxPQUtDO0FBQUEsTUFKR1MsU0FJSCxRQUpEVixFQUlDO0FBQUEsTUFIRVcsS0FHRjtBQUNILE1BQU1DLE1BQU0sR0FBRyxxQ0FBYWhCLFFBQWIsRUFBdUJlLEtBQUssQ0FBQ2pCLElBQTdCLENBQWY7QUFDQSxNQUFNbUIsY0FBYyxHQUFHLHVCQUFXQyw2QkFBWCxDQUF2QjtBQUNBLE1BQU1DLFVBQVUsR0FBRyx1QkFBV0Msc0JBQVgsQ0FBbkI7QUFFQSxNQUFJQyxRQUFRLEdBQUc1QixNQUFmOztBQUNBLE1BQUkwQixVQUFKLEVBQWdCO0FBQ2QsUUFBSSxDQUFDSixLQUFLLENBQUNuQixJQUFQLElBQWV1QixVQUFVLENBQUN2QixJQUFYLEtBQW9CLFNBQXZDLEVBQWtEbUIsS0FBSyxDQUFDbkIsSUFBTixHQUFhLEtBQWI7QUFFbERtQixJQUFBQSxLQUFLLENBQUMsbUJBQUQsQ0FBTCxHQUE2QkMsTUFBN0I7QUFDQUQsSUFBQUEsS0FBSyxDQUFDTyxFQUFOLEdBQVdILFVBQVUsQ0FBQ0ksZUFBWCxDQUEyQlAsTUFBM0IsQ0FBWDtBQUNBRCxJQUFBQSxLQUFLLENBQUMsZUFBRCxDQUFMLEdBQXlCSSxVQUFVLENBQUNLLGVBQVgsQ0FBMkJSLE1BQTNCLENBQXpCO0FBRUFLLElBQUFBLFFBQVEsR0FDTjVCLE1BQU0sSUFBSSxJQUFWLElBQWtCdUIsTUFBTSxJQUFJLElBQTVCLEdBQ0lHLFVBQVUsQ0FBQ00sU0FBWCxLQUF5QlQsTUFEN0IsR0FFSXZCLE1BSE47QUFJRDs7QUFFRCxNQUFJc0IsS0FBSyxDQUFDbkIsSUFBTixLQUFlLEtBQW5CLEVBQTBCO0FBQ3hCbUIsSUFBQUEsS0FBSyxDQUFDaEIsUUFBTixHQUFpQnNCLFFBQVEsR0FBR3RCLFFBQUgsR0FBYyxDQUFDLENBQXhDO0FBQ0FnQixJQUFBQSxLQUFLLENBQUMsZUFBRCxDQUFMLEdBQXlCTSxRQUF6QjtBQUNEOztBQUVELE1BQU1LLGFBQWEsR0FBRyxrQ0FBaUIsVUFBQUMsQ0FBQyxFQUFJO0FBQzFDLFFBQUl0QixPQUFKLEVBQWFBLE9BQU8sQ0FBQ3NCLENBQUQsQ0FBUDtBQUNiLFFBQUlYLE1BQU0sSUFBSSxJQUFkLEVBQW9CO0FBQ3BCLFFBQUlWLFFBQUosRUFBY0EsUUFBUSxDQUFDVSxNQUFELEVBQVNXLENBQVQsQ0FBUjtBQUNkLFFBQUlWLGNBQUosRUFBb0JBLGNBQWMsQ0FBQ0QsTUFBRCxFQUFTVyxDQUFULENBQWQ7QUFDckIsR0FMcUIsQ0FBdEI7QUFPQSxzQkFDRSxnQ0FBQyxTQUFELGdDQUNNWixLQUROO0FBRUUsSUFBQSxHQUFHLEVBQUVILEdBRlA7QUFHRSxJQUFBLE9BQU8sRUFBRWMsYUFIWDtBQUlFLElBQUEsU0FBUyxFQUFFLDRCQUFXYixTQUFYLEVBQXNCUSxRQUFRLElBQUksUUFBbEM7QUFKYixLQURGO0FBUUQsQ0FwRHFCLENBQXhCOztBQXVEQVosZUFBZSxDQUFDakIsU0FBaEIsR0FBNEJBLFNBQTVCO0FBQ0FpQixlQUFlLENBQUNGLFlBQWhCLEdBQStCQSxZQUEvQjtlQUVlRSxlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAcmVzdGFydC9ob29rcy91c2VFdmVudENhbGxiYWNrJztcblxuaW1wb3J0IE5hdkNvbnRleHQgZnJvbSAnLi9OYXZDb250ZXh0JztcbmltcG9ydCBTZWxlY3RhYmxlQ29udGV4dCwgeyBtYWtlRXZlbnRLZXkgfSBmcm9tICcuL1NlbGVjdGFibGVDb250ZXh0JztcblxuY29uc3QgcHJvcFR5cGVzID0ge1xuICBhY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICByb2xlOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIGhyZWY6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRhYkluZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBldmVudEtleTogUHJvcFR5cGVzLmFueSxcbiAgb25jbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgYXM6IFByb3BUeXBlcy5hbnksXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIGRpc2FibGVkOiBmYWxzZSxcbn07XG5cbmNvbnN0IEFic3RyYWN0TmF2SXRlbSA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBhY3RpdmUsXG4gICAgICBjbGFzc05hbWUsXG4gICAgICB0YWJJbmRleCxcbiAgICAgIGV2ZW50S2V5LFxuICAgICAgb25TZWxlY3QsXG4gICAgICBvbkNsaWNrLFxuICAgICAgYXM6IENvbXBvbmVudCxcbiAgICAgIC4uLnByb3BzXG4gICAgfSxcbiAgICByZWYsXG4gICkgPT4ge1xuICAgIGNvbnN0IG5hdktleSA9IG1ha2VFdmVudEtleShldmVudEtleSwgcHJvcHMuaHJlZik7XG4gICAgY29uc3QgcGFyZW50T25TZWxlY3QgPSB1c2VDb250ZXh0KFNlbGVjdGFibGVDb250ZXh0KTtcbiAgICBjb25zdCBuYXZDb250ZXh0ID0gdXNlQ29udGV4dChOYXZDb250ZXh0KTtcblxuICAgIGxldCBpc0FjdGl2ZSA9IGFjdGl2ZTtcbiAgICBpZiAobmF2Q29udGV4dCkge1xuICAgICAgaWYgKCFwcm9wcy5yb2xlICYmIG5hdkNvbnRleHQucm9sZSA9PT0gJ3RhYmxpc3QnKSBwcm9wcy5yb2xlID0gJ3RhYic7XG5cbiAgICAgIHByb3BzWydkYXRhLXJiLWV2ZW50LWtleSddID0gbmF2S2V5O1xuICAgICAgcHJvcHMuaWQgPSBuYXZDb250ZXh0LmdldENvbnRyb2xsZXJJZChuYXZLZXkpO1xuICAgICAgcHJvcHNbJ2FyaWEtY29udHJvbHMnXSA9IG5hdkNvbnRleHQuZ2V0Q29udHJvbGxlZElkKG5hdktleSk7XG5cbiAgICAgIGlzQWN0aXZlID1cbiAgICAgICAgYWN0aXZlID09IG51bGwgJiYgbmF2S2V5ICE9IG51bGxcbiAgICAgICAgICA/IG5hdkNvbnRleHQuYWN0aXZlS2V5ID09PSBuYXZLZXlcbiAgICAgICAgICA6IGFjdGl2ZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMucm9sZSA9PT0gJ3RhYicpIHtcbiAgICAgIHByb3BzLnRhYkluZGV4ID0gaXNBY3RpdmUgPyB0YWJJbmRleCA6IC0xO1xuICAgICAgcHJvcHNbJ2FyaWEtc2VsZWN0ZWQnXSA9IGlzQWN0aXZlO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZU9uY2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKGUgPT4ge1xuICAgICAgaWYgKG9uQ2xpY2spIG9uQ2xpY2soZSk7XG4gICAgICBpZiAobmF2S2V5ID09IG51bGwpIHJldHVybjtcbiAgICAgIGlmIChvblNlbGVjdCkgb25TZWxlY3QobmF2S2V5LCBlKTtcbiAgICAgIGlmIChwYXJlbnRPblNlbGVjdCkgcGFyZW50T25TZWxlY3QobmF2S2V5LCBlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29tcG9uZW50XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9uY2xpY2t9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc05hbWUsIGlzQWN0aXZlICYmICdhY3RpdmUnKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfSxcbik7XG5cbkFic3RyYWN0TmF2SXRlbS5wcm9wVHlwZXMgPSBwcm9wVHlwZXM7XG5BYnN0cmFjdE5hdkl0ZW0uZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBBYnN0cmFjdE5hdkl0ZW07XG4iXX0= //# sourceMappingURL=AbstractNavItem.js.map