UNPKG

matrix-react-sdk

Version:
79 lines (77 loc) 9.62 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.StyledMenuItemRadio = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _RovingTabIndex = require("../RovingTabIndex"); var _StyledRadioButton = _interopRequireDefault(require("../../components/views/elements/StyledRadioButton")); var _KeyboardShortcuts = require("../KeyboardShortcuts"); var _KeyBindingsManager = require("../../KeyBindingsManager"); const _excluded = ["children", "label", "onChange", "onClose"]; /* Copyright 2024 New Vector Ltd. Copyright 2019 The Matrix.org Foundation C.I.C. Copyright 2018 New Vector Ltd Copyright 2015, 2016 OpenMarket Ltd SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ // Semantic component for representing a styled role=menuitemradio const StyledMenuItemRadio = _ref => { let { children, label, onChange, onClose } = _ref, props = (0, _objectWithoutProperties2.default)(_ref, _excluded); const [onFocus, isActive, ref] = (0, _RovingTabIndex.useRovingTabIndex)(); const onKeyDown = e => { let handled = true; const action = (0, _KeyBindingsManager.getKeyBindingsManager)().getAccessibilityAction(e); switch (action) { case _KeyboardShortcuts.KeyBindingAction.Space: onChange(); break; case _KeyboardShortcuts.KeyBindingAction.Enter: onChange(); // Implements https://www.w3.org/TR/wai-aria-practices/#keyboard-interaction-12 onClose(); break; default: handled = false; } if (handled) { e.stopPropagation(); e.preventDefault(); } }; const onKeyUp = e => { const action = (0, _KeyBindingsManager.getKeyBindingsManager)().getAccessibilityAction(e); switch (action) { case _KeyboardShortcuts.KeyBindingAction.Enter: case _KeyboardShortcuts.KeyBindingAction.Space: // prevent the input default handler as we handle it on keydown to match // https://www.w3.org/TR/wai-aria-practices/examples/menubar/menubar-2/menubar-2.html e.stopPropagation(); e.preventDefault(); break; } }; return /*#__PURE__*/_react.default.createElement(_StyledRadioButton.default, (0, _extends2.default)({}, props, { role: "menuitemradio", "aria-label": label, onChange: onChange, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, inputRef: ref, tabIndex: isActive ? 0 : -1 }), children); }; exports.StyledMenuItemRadio = StyledMenuItemRadio; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Sb3ZpbmdUYWJJbmRleCIsIl9TdHlsZWRSYWRpb0J1dHRvbiIsIl9LZXlib2FyZFNob3J0Y3V0cyIsIl9LZXlCaW5kaW5nc01hbmFnZXIiLCJfZXhjbHVkZWQiLCJTdHlsZWRNZW51SXRlbVJhZGlvIiwiX3JlZiIsImNoaWxkcmVuIiwibGFiZWwiLCJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJkZWZhdWx0Iiwib25Gb2N1cyIsImlzQWN0aXZlIiwicmVmIiwidXNlUm92aW5nVGFiSW5kZXgiLCJvbktleURvd24iLCJlIiwiaGFuZGxlZCIsImFjdGlvbiIsImdldEtleUJpbmRpbmdzTWFuYWdlciIsImdldEFjY2Vzc2liaWxpdHlBY3Rpb24iLCJLZXlCaW5kaW5nQWN0aW9uIiwiU3BhY2UiLCJFbnRlciIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwib25LZXlVcCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJyb2xlIiwiaW5wdXRSZWYiLCJ0YWJJbmRleCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjZXNzaWJpbGl0eS9jb250ZXh0X21lbnUvU3R5bGVkTWVudUl0ZW1SYWRpby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE4IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IHVzZVJvdmluZ1RhYkluZGV4IH0gZnJvbSBcIi4uL1JvdmluZ1RhYkluZGV4XCI7XG5pbXBvcnQgU3R5bGVkUmFkaW9CdXR0b24gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvU3R5bGVkUmFkaW9CdXR0b25cIjtcbmltcG9ydCB7IEtleUJpbmRpbmdBY3Rpb24gfSBmcm9tIFwiLi4vS2V5Ym9hcmRTaG9ydGN1dHNcIjtcbmltcG9ydCB7IGdldEtleUJpbmRpbmdzTWFuYWdlciB9IGZyb20gXCIuLi8uLi9LZXlCaW5kaW5nc01hbmFnZXJcIjtcblxuaW50ZXJmYWNlIElQcm9wcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBTdHlsZWRSYWRpb0J1dHRvbj4ge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIG9uQ2hhbmdlKCk6IHZvaWQ7IC8vIHdlIGhhbmRsZSBrZXl1cC9kb3duIG91cnNlbHZlcyBzbyBsb3NlIHRoZSBDaGFuZ2VFdmVudFxuICAgIG9uQ2xvc2UoKTogdm9pZDsgLy8gZ2V0cyBjYWxsZWQgYWZ0ZXIgb25DaGFuZ2Ugb24gS2V5QmluZGluZ0FjdGlvbi5FbnRlclxufVxuXG4vLyBTZW1hbnRpYyBjb21wb25lbnQgZm9yIHJlcHJlc2VudGluZyBhIHN0eWxlZCByb2xlPW1lbnVpdGVtcmFkaW9cbmV4cG9ydCBjb25zdCBTdHlsZWRNZW51SXRlbVJhZGlvOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGxhYmVsLCBvbkNoYW5nZSwgb25DbG9zZSwgLi4ucHJvcHMgfSkgPT4ge1xuICAgIGNvbnN0IFtvbkZvY3VzLCBpc0FjdGl2ZSwgcmVmXSA9IHVzZVJvdmluZ1RhYkluZGV4PEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgICBjb25zdCBvbktleURvd24gPSAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBsZXQgaGFuZGxlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGdldEtleUJpbmRpbmdzTWFuYWdlcigpLmdldEFjY2Vzc2liaWxpdHlBY3Rpb24oZSk7XG5cbiAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgS2V5QmluZGluZ0FjdGlvbi5TcGFjZTpcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBLZXlCaW5kaW5nQWN0aW9uLkVudGVyOlxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgLy8gSW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLyNrZXlib2FyZC1pbnRlcmFjdGlvbi0xMlxuICAgICAgICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaGFuZGxlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uS2V5VXAgPSAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpb24gPSBnZXRLZXlCaW5kaW5nc01hbmFnZXIoKS5nZXRBY2Nlc3NpYmlsaXR5QWN0aW9uKGUpO1xuICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBLZXlCaW5kaW5nQWN0aW9uLkVudGVyOlxuICAgICAgICAgICAgY2FzZSBLZXlCaW5kaW5nQWN0aW9uLlNwYWNlOlxuICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgdGhlIGlucHV0IGRlZmF1bHQgaGFuZGxlciBhcyB3ZSBoYW5kbGUgaXQgb24ga2V5ZG93biB0byBtYXRjaFxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMvZXhhbXBsZXMvbWVudWJhci9tZW51YmFyLTIvbWVudWJhci0yLmh0bWxcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZFJhZGlvQnV0dG9uXG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICByb2xlPVwibWVudWl0ZW1yYWRpb1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgICAgb25LZXlVcD17b25LZXlVcH1cbiAgICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgICAgICBpbnB1dFJlZj17cmVmfVxuICAgICAgICAgICAgdGFiSW5kZXg9e2lzQWN0aXZlID8gMCA6IC0xfVxuICAgICAgICA+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvU3R5bGVkUmFkaW9CdXR0b24+XG4gICAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVVBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGtCQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxrQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksbUJBQUEsR0FBQUosT0FBQTtBQUFpRSxNQUFBSyxTQUFBO0FBZmpFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ08sTUFBTUMsbUJBQXFDLEdBQUdDLElBQUEsSUFBc0Q7RUFBQSxJQUFyRDtNQUFFQyxRQUFRO01BQUVDLEtBQUs7TUFBRUMsUUFBUTtNQUFFQztJQUFrQixDQUFDLEdBQUFKLElBQUE7SUFBUEssS0FBSyxPQUFBQyx5QkFBQSxDQUFBQyxPQUFBLEVBQUFQLElBQUEsRUFBQUYsU0FBQTtFQUNoRyxNQUFNLENBQUNVLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxHQUFHLENBQUMsR0FBRyxJQUFBQyxpQ0FBaUIsRUFBbUIsQ0FBQztFQUV0RSxNQUFNQyxTQUFTLEdBQUlDLENBQXNCLElBQVc7SUFDaEQsSUFBSUMsT0FBTyxHQUFHLElBQUk7SUFDbEIsTUFBTUMsTUFBTSxHQUFHLElBQUFDLHlDQUFxQixFQUFDLENBQUMsQ0FBQ0Msc0JBQXNCLENBQUNKLENBQUMsQ0FBQztJQUVoRSxRQUFRRSxNQUFNO01BQ1YsS0FBS0csbUNBQWdCLENBQUNDLEtBQUs7UUFDdkJoQixRQUFRLENBQUMsQ0FBQztRQUNWO01BQ0osS0FBS2UsbUNBQWdCLENBQUNFLEtBQUs7UUFDdkJqQixRQUFRLENBQUMsQ0FBQztRQUNWO1FBQ0FDLE9BQU8sQ0FBQyxDQUFDO1FBQ1Q7TUFDSjtRQUNJVSxPQUFPLEdBQUcsS0FBSztJQUN2QjtJQUVBLElBQUlBLE9BQU8sRUFBRTtNQUNURCxDQUFDLENBQUNRLGVBQWUsQ0FBQyxDQUFDO01BQ25CUixDQUFDLENBQUNTLGNBQWMsQ0FBQyxDQUFDO0lBQ3RCO0VBQ0osQ0FBQztFQUNELE1BQU1DLE9BQU8sR0FBSVYsQ0FBc0IsSUFBVztJQUM5QyxNQUFNRSxNQUFNLEdBQUcsSUFBQUMseUNBQXFCLEVBQUMsQ0FBQyxDQUFDQyxzQkFBc0IsQ0FBQ0osQ0FBQyxDQUFDO0lBQ2hFLFFBQVFFLE1BQU07TUFDVixLQUFLRyxtQ0FBZ0IsQ0FBQ0UsS0FBSztNQUMzQixLQUFLRixtQ0FBZ0IsQ0FBQ0MsS0FBSztRQUN2QjtRQUNBO1FBQ0FOLENBQUMsQ0FBQ1EsZUFBZSxDQUFDLENBQUM7UUFDbkJSLENBQUMsQ0FBQ1MsY0FBYyxDQUFDLENBQUM7UUFDbEI7SUFDUjtFQUNKLENBQUM7RUFDRCxvQkFDSS9CLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQWlCLGFBQUEsQ0FBQzdCLGtCQUFBLENBQUFZLE9BQWlCLE1BQUFrQixTQUFBLENBQUFsQixPQUFBLE1BQ1ZGLEtBQUs7SUFDVHFCLElBQUksRUFBQyxlQUFlO0lBQ3BCLGNBQVl4QixLQUFNO0lBQ2xCQyxRQUFRLEVBQUVBLFFBQVM7SUFDbkJTLFNBQVMsRUFBRUEsU0FBVTtJQUNyQlcsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCZixPQUFPLEVBQUVBLE9BQVE7SUFDakJtQixRQUFRLEVBQUVqQixHQUFJO0lBQ2RrQixRQUFRLEVBQUVuQixRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUM7RUFBRSxJQUUzQlIsUUFDYyxDQUFDO0FBRTVCLENBQUM7QUFBQzRCLE9BQUEsQ0FBQTlCLG1CQUFBLEdBQUFBLG1CQUFBIiwiaWdub3JlTGlzdCI6W119