@lskjs/navbar
Version:
LSK ux subrepo: navbar
154 lines (121 loc) • 15.8 kB
JavaScript
"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 _querySelectorAll = _interopRequireDefault(require("dom-helpers/querySelectorAll"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _useForceUpdate = _interopRequireDefault(require("@restart/hooks/useForceUpdate"));
var _useMergedRefs = _interopRequireDefault(require("@restart/hooks/useMergedRefs"));
var _NavContext = _interopRequireDefault(require("./NavContext"));
var _SelectableContext = _interopRequireWildcard(require("./SelectableContext"));
var _TabContext = _interopRequireDefault(require("./TabContext"));
var noop = function noop() {};
var propTypes = {
onSelect: _propTypes["default"].func.isRequired,
as: _propTypes["default"].elementType,
role: _propTypes["default"].string,
/** @private */
onKeyDown: _propTypes["default"].func,
/** @private */
parentOnSelect: _propTypes["default"].func,
/** @private */
getControlledId: _propTypes["default"].func,
/** @private */
getControllerId: _propTypes["default"].func,
/** @private */
activeKey: _propTypes["default"].any
};
var AbstractNav = _react["default"].forwardRef(function (_ref, ref) {
var _ref$as = _ref.as,
Component = _ref$as === void 0 ? 'ul' : _ref$as,
onSelect = _ref.onSelect,
activeKey = _ref.activeKey,
role = _ref.role,
onKeyDown = _ref.onKeyDown,
props = (0, _objectWithoutProperties2["default"])(_ref, ["as", "onSelect", "activeKey", "role", "onKeyDown"]);
// A ref and forceUpdate for refocus, b/c we only want to trigger when needed
// and don't want to reset the set in the effect
var forceUpdate = (0, _useForceUpdate["default"])();
var needsRefocusRef = (0, _react.useRef)(false);
var parentOnSelect = (0, _react.useContext)(_SelectableContext["default"]);
var tabContext = (0, _react.useContext)(_TabContext["default"]);
var getControlledId, getControllerId;
if (tabContext) {
role = role || 'tablist';
activeKey = tabContext.activeKey;
getControlledId = tabContext.getControlledId;
getControllerId = tabContext.getControllerId;
}
var listNode = (0, _react.useRef)(null);
var getNextActiveChild = function getNextActiveChild(offset) {
if (!listNode.current) return null;
var items = (0, _querySelectorAll["default"])(listNode.current, '[data-rb-event-key]:not(.disabled)');
var activeChild = listNode.current.querySelector('.active');
var index = items.indexOf(activeChild);
if (index === -1) return null;
var nextIndex = index + offset;
if (nextIndex >= items.length) nextIndex = 0;
if (nextIndex < 0) nextIndex = items.length - 1;
return items[nextIndex];
};
var handleSelect = function handleSelect(key, event) {
if (key == null) return;
if (onSelect) onSelect(key, event);
if (parentOnSelect) parentOnSelect(key, event);
};
var handleKeyDown = function handleKeyDown(event) {
if (onKeyDown) onKeyDown(event);
var nextActiveChild;
switch (event.key) {
case 'ArrowLeft':
case 'ArrowUp':
nextActiveChild = getNextActiveChild(-1);
break;
case 'ArrowRight':
case 'ArrowDown':
nextActiveChild = getNextActiveChild(1);
break;
default:
return;
}
if (!nextActiveChild) return;
event.preventDefault();
handleSelect(nextActiveChild.dataset.rbEventKey, event);
needsRefocusRef.current = true;
forceUpdate();
};
(0, _react.useEffect)(function () {
if (listNode.current && needsRefocusRef.current) {
var activeChild = listNode.current.querySelector('[data-rb-event-key].active');
if (activeChild) activeChild.focus();
}
needsRefocusRef.current = false;
});
var mergedRef = (0, _useMergedRefs["default"])(ref, listNode);
return /*#__PURE__*/_react["default"].createElement(_SelectableContext["default"].Provider, {
value: handleSelect
}, /*#__PURE__*/_react["default"].createElement(_NavContext["default"].Provider, {
value: {
role: role,
// used by NavLink to determine it's role
activeKey: (0, _SelectableContext.makeEventKey)(activeKey),
getControlledId: getControlledId || noop,
getControllerId: getControllerId || noop
}
}, /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, {
onKeyDown: handleKeyDown,
ref: mergedRef,
role: role
}))));
});
AbstractNav.propTypes = propTypes;
var _default = AbstractNav;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9BYnN0cmFjdE5hdi5qcyJdLCJuYW1lcyI6WyJub29wIiwicHJvcFR5cGVzIiwib25TZWxlY3QiLCJQcm9wVHlwZXMiLCJmdW5jIiwiaXNSZXF1aXJlZCIsImFzIiwiZWxlbWVudFR5cGUiLCJyb2xlIiwic3RyaW5nIiwib25LZXlEb3duIiwicGFyZW50T25TZWxlY3QiLCJnZXRDb250cm9sbGVkSWQiLCJnZXRDb250cm9sbGVySWQiLCJhY3RpdmVLZXkiLCJhbnkiLCJBYnN0cmFjdE5hdiIsIlJlYWN0IiwiZm9yd2FyZFJlZiIsInJlZiIsIkNvbXBvbmVudCIsInByb3BzIiwiZm9yY2VVcGRhdGUiLCJuZWVkc1JlZm9jdXNSZWYiLCJTZWxlY3RhYmxlQ29udGV4dCIsInRhYkNvbnRleHQiLCJUYWJDb250ZXh0IiwibGlzdE5vZGUiLCJnZXROZXh0QWN0aXZlQ2hpbGQiLCJvZmZzZXQiLCJjdXJyZW50IiwiaXRlbXMiLCJhY3RpdmVDaGlsZCIsInF1ZXJ5U2VsZWN0b3IiLCJpbmRleCIsImluZGV4T2YiLCJuZXh0SW5kZXgiLCJsZW5ndGgiLCJoYW5kbGVTZWxlY3QiLCJrZXkiLCJldmVudCIsImhhbmRsZUtleURvd24iLCJuZXh0QWN0aXZlQ2hpbGQiLCJwcmV2ZW50RGVmYXVsdCIsImRhdGFzZXQiLCJyYkV2ZW50S2V5IiwiZm9jdXMiLCJtZXJnZWRSZWYiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLElBQUksR0FBRyxTQUFQQSxJQUFPLEdBQU0sQ0FBRSxDQUFyQjs7QUFFQSxJQUFNQyxTQUFTLEdBQUc7QUFDaEJDLEVBQUFBLFFBQVEsRUFBRUMsc0JBQVVDLElBQVYsQ0FBZUMsVUFEVDtBQUdoQkMsRUFBQUEsRUFBRSxFQUFFSCxzQkFBVUksV0FIRTtBQUtoQkMsRUFBQUEsSUFBSSxFQUFFTCxzQkFBVU0sTUFMQTs7QUFPaEI7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QUFKL0I7QUFEVCxrQkFRRSxnQ0FBQyxTQUFELGdDQUNNcUIsS0FETjtBQUVFLElBQUEsU0FBUyxFQUFFb0IsYUFGYjtBQUdFLElBQUEsR0FBRyxFQUFFTSxTQUhQO0FBSUUsSUFBQSxJQUFJLEVBQUV2QztBQUpSLEtBUkYsQ0FERixDQURGO0FBbUJELENBOUdpQixDQUFwQjs7QUFpSEFRLFdBQVcsQ0FBQ2YsU0FBWixHQUF3QkEsU0FBeEI7ZUFFZWUsVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBxc2EgZnJvbSAnZG9tLWhlbHBlcnMvcXVlcnlTZWxlY3RvckFsbCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUZvcmNlVXBkYXRlIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUZvcmNlVXBkYXRlJztcbmltcG9ydCB1c2VNZXJnZWRSZWZzIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZU1lcmdlZFJlZnMnO1xuaW1wb3J0IE5hdkNvbnRleHQgZnJvbSAnLi9OYXZDb250ZXh0JztcbmltcG9ydCBTZWxlY3RhYmxlQ29udGV4dCwgeyBtYWtlRXZlbnRLZXkgfSBmcm9tICcuL1NlbGVjdGFibGVDb250ZXh0JztcbmltcG9ydCBUYWJDb250ZXh0IGZyb20gJy4vVGFiQ29udGV4dCc7XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fTtcblxuY29uc3QgcHJvcFR5cGVzID0ge1xuICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcblxuICBhczogUHJvcFR5cGVzLmVsZW1lbnRUeXBlLFxuXG4gIHJvbGU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqIEBwcml2YXRlICovXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBAcHJpdmF0ZSAqL1xuICBwYXJlbnRPblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBAcHJpdmF0ZSAqL1xuICBnZXRDb250cm9sbGVkSWQ6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogQHByaXZhdGUgKi9cbiAgZ2V0Q29udHJvbGxlcklkOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIEBwcml2YXRlICovXG4gIGFjdGl2ZUtleTogUHJvcFR5cGVzLmFueSxcbn07XG5cbmNvbnN0IEFic3RyYWN0TmF2ID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIC8vIE5lZWQgdG8gZGVmaW5lIHRoZSBkZWZhdWx0IFwiYXNcIiBkdXJpbmcgcHJvcCBkZXN0cnVjdHVyaW5nIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBzdHlsZWQtY29tcG9uZW50cyBnaXRodWIuY29tL3JlYWN0LWJvb3RzdHJhcC9yZWFjdC1ib290c3RyYXAvaXNzdWVzLzM1OTVcbiAgICAgIGFzOiBDb21wb25lbnQgPSAndWwnLFxuICAgICAgb25TZWxlY3QsXG4gICAgICBhY3RpdmVLZXksXG4gICAgICByb2xlLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucHJvcHNcbiAgICB9LFxuICAgIHJlZixcbiAgKSA9PiB7XG4gICAgLy8gQSByZWYgYW5kIGZvcmNlVXBkYXRlIGZvciByZWZvY3VzLCBiL2Mgd2Ugb25seSB3YW50IHRvIHRyaWdnZXIgd2hlbiBuZWVkZWRcbiAgICAvLyBhbmQgZG9uJ3Qgd2FudCB0byByZXNldCB0aGUgc2V0IGluIHRoZSBlZmZlY3RcbiAgICBjb25zdCBmb3JjZVVwZGF0ZSA9IHVzZUZvcmNlVXBkYXRlKCk7XG4gICAgY29uc3QgbmVlZHNSZWZvY3VzUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICAgIGNvbnN0IHBhcmVudE9uU2VsZWN0ID0gdXNlQ29udGV4dChTZWxlY3RhYmxlQ29udGV4dCk7XG4gICAgY29uc3QgdGFiQ29udGV4dCA9IHVzZUNvbnRleHQoVGFiQ29udGV4dCk7XG5cbiAgICBsZXQgZ2V0Q29udHJvbGxlZElkLCBnZXRDb250cm9sbGVySWQ7XG5cbiAgICBpZiAodGFiQ29udGV4dCkge1xuICAgICAgcm9sZSA9IHJvbGUgfHwgJ3RhYmxpc3QnO1xuICAgICAgYWN0aXZlS2V5ID0gdGFiQ29udGV4dC5hY3RpdmVLZXk7XG4gICAgICBnZXRDb250cm9sbGVkSWQgPSB0YWJDb250ZXh0LmdldENvbnRyb2xsZWRJZDtcbiAgICAgIGdldENvbnRyb2xsZXJJZCA9IHRhYkNvbnRleHQuZ2V0Q29udHJvbGxlcklkO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3ROb2RlID0gdXNlUmVmKG51bGwpO1xuXG4gICAgY29uc3QgZ2V0TmV4dEFjdGl2ZUNoaWxkID0gb2Zmc2V0ID0+IHtcbiAgICAgIGlmICghbGlzdE5vZGUuY3VycmVudCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGxldCBpdGVtcyA9IHFzYShsaXN0Tm9kZS5jdXJyZW50LCAnW2RhdGEtcmItZXZlbnQta2V5XTpub3QoLmRpc2FibGVkKScpO1xuICAgICAgbGV0IGFjdGl2ZUNoaWxkID0gbGlzdE5vZGUuY3VycmVudC5xdWVyeVNlbGVjdG9yKCcuYWN0aXZlJyk7XG5cbiAgICAgIGxldCBpbmRleCA9IGl0ZW1zLmluZGV4T2YoYWN0aXZlQ2hpbGQpO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGxldCBuZXh0SW5kZXggPSBpbmRleCArIG9mZnNldDtcbiAgICAgIGlmIChuZXh0SW5kZXggPj0gaXRlbXMubGVuZ3RoKSBuZXh0SW5kZXggPSAwO1xuICAgICAgaWYgKG5leHRJbmRleCA8IDApIG5leHRJbmRleCA9IGl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICByZXR1cm4gaXRlbXNbbmV4dEluZGV4XTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKGtleSwgZXZlbnQpID0+IHtcbiAgICAgIGlmIChrZXkgPT0gbnVsbCkgcmV0dXJuO1xuICAgICAgaWYgKG9uU2VsZWN0KSBvblNlbGVjdChrZXksIGV2ZW50KTtcbiAgICAgIGlmIChwYXJlbnRPblNlbGVjdCkgcGFyZW50T25TZWxlY3Qoa2V5LCBldmVudCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSBldmVudCA9PiB7XG4gICAgICBpZiAob25LZXlEb3duKSBvbktleURvd24oZXZlbnQpO1xuXG4gICAgICBsZXQgbmV4dEFjdGl2ZUNoaWxkO1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgbmV4dEFjdGl2ZUNoaWxkID0gZ2V0TmV4dEFjdGl2ZUNoaWxkKC0xKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgbmV4dEFjdGl2ZUNoaWxkID0gZ2V0TmV4dEFjdGl2ZUNoaWxkKDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghbmV4dEFjdGl2ZUNoaWxkKSByZXR1cm47XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBoYW5kbGVTZWxlY3QobmV4dEFjdGl2ZUNoaWxkLmRhdGFzZXQucmJFdmVudEtleSwgZXZlbnQpO1xuICAgICAgbmVlZHNSZWZvY3VzUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgZm9yY2VVcGRhdGUoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChsaXN0Tm9kZS5jdXJyZW50ICYmIG5lZWRzUmVmb2N1c1JlZi5jdXJyZW50KSB7XG4gICAgICAgIGxldCBhY3RpdmVDaGlsZCA9IGxpc3ROb2RlLmN1cnJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnW2RhdGEtcmItZXZlbnQta2V5XS5hY3RpdmUnLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChhY3RpdmVDaGlsZCkgYWN0aXZlQ2hpbGQuZm9jdXMoKTtcbiAgICAgIH1cblxuICAgICAgbmVlZHNSZWZvY3VzUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFJlZiA9IHVzZU1lcmdlZFJlZnMocmVmLCBsaXN0Tm9kZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNlbGVjdGFibGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtoYW5kbGVTZWxlY3R9PlxuICAgICAgICA8TmF2Q29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXt7XG4gICAgICAgICAgICByb2xlLCAvLyB1c2VkIGJ5IE5hdkxpbmsgdG8gZGV0ZXJtaW5lIGl0J3Mgcm9sZVxuICAgICAgICAgICAgYWN0aXZlS2V5OiBtYWtlRXZlbnRLZXkoYWN0aXZlS2V5KSxcbiAgICAgICAgICAgIGdldENvbnRyb2xsZWRJZDogZ2V0Q29udHJvbGxlZElkIHx8IG5vb3AsXG4gICAgICAgICAgICBnZXRDb250cm9sbGVySWQ6IGdldENvbnRyb2xsZXJJZCB8fCBub29wLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8Q29tcG9uZW50XG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICByZWY9e21lcmdlZFJlZn1cbiAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9OYXZDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9TZWxlY3RhYmxlQ29udGV4dC5Qcm92aWRlcj5cbiAgICApO1xuICB9LFxuKTtcblxuQWJzdHJhY3ROYXYucHJvcFR5cGVzID0gcHJvcFR5cGVzO1xuXG5leHBvcnQgZGVmYXVsdCBBYnN0cmFjdE5hdjtcbiJdfQ==
//# sourceMappingURL=AbstractNav.js.map