UNPKG

matrix-react-sdk

Version:
79 lines (77 loc) 9.64 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.StyledMenuItemCheckbox = 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 _StyledCheckbox = _interopRequireDefault(require("../../components/views/elements/StyledCheckbox")); 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=menuitemcheckbox const StyledMenuItemCheckbox = _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.Space: case _KeyboardShortcuts.KeyBindingAction.Enter: // 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(_StyledCheckbox.default, (0, _extends2.default)({}, props, { role: "menuitemcheckbox", "aria-label": label, onChange: onChange, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, inputRef: ref, tabIndex: isActive ? 0 : -1 }), children); }; exports.StyledMenuItemCheckbox = StyledMenuItemCheckbox; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Sb3ZpbmdUYWJJbmRleCIsIl9TdHlsZWRDaGVja2JveCIsIl9LZXlib2FyZFNob3J0Y3V0cyIsIl9LZXlCaW5kaW5nc01hbmFnZXIiLCJfZXhjbHVkZWQiLCJTdHlsZWRNZW51SXRlbUNoZWNrYm94IiwiX3JlZiIsImNoaWxkcmVuIiwibGFiZWwiLCJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJkZWZhdWx0Iiwib25Gb2N1cyIsImlzQWN0aXZlIiwicmVmIiwidXNlUm92aW5nVGFiSW5kZXgiLCJvbktleURvd24iLCJlIiwiaGFuZGxlZCIsImFjdGlvbiIsImdldEtleUJpbmRpbmdzTWFuYWdlciIsImdldEFjY2Vzc2liaWxpdHlBY3Rpb24iLCJLZXlCaW5kaW5nQWN0aW9uIiwiU3BhY2UiLCJFbnRlciIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwib25LZXlVcCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJyb2xlIiwiaW5wdXRSZWYiLCJ0YWJJbmRleCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjZXNzaWJpbGl0eS9jb250ZXh0X21lbnUvU3R5bGVkTWVudUl0ZW1DaGVja2JveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE4IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IHVzZVJvdmluZ1RhYkluZGV4IH0gZnJvbSBcIi4uL1JvdmluZ1RhYkluZGV4XCI7XG5pbXBvcnQgU3R5bGVkQ2hlY2tib3ggZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvU3R5bGVkQ2hlY2tib3hcIjtcbmltcG9ydCB7IEtleUJpbmRpbmdBY3Rpb24gfSBmcm9tIFwiLi4vS2V5Ym9hcmRTaG9ydGN1dHNcIjtcbmltcG9ydCB7IGdldEtleUJpbmRpbmdzTWFuYWdlciB9IGZyb20gXCIuLi8uLi9LZXlCaW5kaW5nc01hbmFnZXJcIjtcblxuaW50ZXJmYWNlIElQcm9wcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBTdHlsZWRDaGVja2JveD4ge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIG9uQ2hhbmdlKCk6IHZvaWQ7IC8vIHdlIGhhbmRsZSBrZXl1cC9kb3duIG91cnNlbHZlcyBzbyBsb3NlIHRoZSBDaGFuZ2VFdmVudFxuICAgIG9uQ2xvc2UoKTogdm9pZDsgLy8gZ2V0cyBjYWxsZWQgYWZ0ZXIgb25DaGFuZ2Ugb24gS2V5QmluZGluZ0FjdGlvbi5BY3RpdmF0ZVNlbGVjdGVkQnV0dG9uXG59XG5cbi8vIFNlbWFudGljIGNvbXBvbmVudCBmb3IgcmVwcmVzZW50aW5nIGEgc3R5bGVkIHJvbGU9bWVudWl0ZW1jaGVja2JveFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1lbnVJdGVtQ2hlY2tib3g6IFJlYWN0LkZDPElQcm9wcz4gPSAoeyBjaGlsZHJlbiwgbGFiZWwsIG9uQ2hhbmdlLCBvbkNsb3NlLCAuLi5wcm9wcyB9KSA9PiB7XG4gICAgY29uc3QgW29uRm9jdXMsIGlzQWN0aXZlLCByZWZdID0gdXNlUm92aW5nVGFiSW5kZXg8SFRNTElucHV0RWxlbWVudD4oKTtcblxuICAgIGNvbnN0IG9uS2V5RG93biA9IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGxldCBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gZ2V0S2V5QmluZGluZ3NNYW5hZ2VyKCkuZ2V0QWNjZXNzaWJpbGl0eUFjdGlvbihlKTtcblxuICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBLZXlCaW5kaW5nQWN0aW9uLlNwYWNlOlxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEtleUJpbmRpbmdBY3Rpb24uRW50ZXI6XG4gICAgICAgICAgICAgICAgb25DaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICAvLyBJbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMvI2tleWJvYXJkLWludGVyYWN0aW9uLTEyXG4gICAgICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBoYW5kbGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFuZGxlZCkge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25LZXlVcCA9IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGdldEtleUJpbmRpbmdzTWFuYWdlcigpLmdldEFjY2Vzc2liaWxpdHlBY3Rpb24oZSk7XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEtleUJpbmRpbmdBY3Rpb24uU3BhY2U6XG4gICAgICAgICAgICBjYXNlIEtleUJpbmRpbmdBY3Rpb24uRW50ZXI6XG4gICAgICAgICAgICAgICAgLy8gcHJldmVudCB0aGUgaW5wdXQgZGVmYXVsdCBoYW5kbGVyIGFzIHdlIGhhbmRsZSBpdCBvbiBrZXlkb3duIHRvIG1hdGNoXG4gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy9leGFtcGxlcy9tZW51YmFyL21lbnViYXItMi9tZW51YmFyLTIuaHRtbFxuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ2hlY2tib3hcbiAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbWNoZWNrYm94XCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICAgICAgICBvbktleVVwPXtvbktleVVwfVxuICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICAgIGlucHV0UmVmPXtyZWZ9XG4gICAgICAgICAgICB0YWJJbmRleD17aXNBY3RpdmUgPyAwIDogLTF9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGVja2JveD5cbiAgICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBVUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsa0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFKLE9BQUE7QUFBaUUsTUFBQUssU0FBQTtBQWZqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNPLE1BQU1DLHNCQUF3QyxHQUFHQyxJQUFBLElBQXNEO0VBQUEsSUFBckQ7TUFBRUMsUUFBUTtNQUFFQyxLQUFLO01BQUVDLFFBQVE7TUFBRUM7SUFBa0IsQ0FBQyxHQUFBSixJQUFBO0lBQVBLLEtBQUssT0FBQUMseUJBQUEsQ0FBQUMsT0FBQSxFQUFBUCxJQUFBLEVBQUFGLFNBQUE7RUFDbkcsTUFBTSxDQUFDVSxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsR0FBRyxDQUFDLEdBQUcsSUFBQUMsaUNBQWlCLEVBQW1CLENBQUM7RUFFdEUsTUFBTUMsU0FBUyxHQUFJQyxDQUFzQixJQUFXO0lBQ2hELElBQUlDLE9BQU8sR0FBRyxJQUFJO0lBQ2xCLE1BQU1DLE1BQU0sR0FBRyxJQUFBQyx5Q0FBcUIsRUFBQyxDQUFDLENBQUNDLHNCQUFzQixDQUFDSixDQUFDLENBQUM7SUFFaEUsUUFBUUUsTUFBTTtNQUNWLEtBQUtHLG1DQUFnQixDQUFDQyxLQUFLO1FBQ3ZCaEIsUUFBUSxDQUFDLENBQUM7UUFDVjtNQUNKLEtBQUtlLG1DQUFnQixDQUFDRSxLQUFLO1FBQ3ZCakIsUUFBUSxDQUFDLENBQUM7UUFDVjtRQUNBQyxPQUFPLENBQUMsQ0FBQztRQUNUO01BQ0o7UUFDSVUsT0FBTyxHQUFHLEtBQUs7SUFDdkI7SUFFQSxJQUFJQSxPQUFPLEVBQUU7TUFDVEQsQ0FBQyxDQUFDUSxlQUFlLENBQUMsQ0FBQztNQUNuQlIsQ0FBQyxDQUFDUyxjQUFjLENBQUMsQ0FBQztJQUN0QjtFQUNKLENBQUM7RUFDRCxNQUFNQyxPQUFPLEdBQUlWLENBQXNCLElBQVc7SUFDOUMsTUFBTUUsTUFBTSxHQUFHLElBQUFDLHlDQUFxQixFQUFDLENBQUMsQ0FBQ0Msc0JBQXNCLENBQUNKLENBQUMsQ0FBQztJQUNoRSxRQUFRRSxNQUFNO01BQ1YsS0FBS0csbUNBQWdCLENBQUNDLEtBQUs7TUFDM0IsS0FBS0QsbUNBQWdCLENBQUNFLEtBQUs7UUFDdkI7UUFDQTtRQUNBUCxDQUFDLENBQUNRLGVBQWUsQ0FBQyxDQUFDO1FBQ25CUixDQUFDLENBQUNTLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCO0lBQ1I7RUFDSixDQUFDO0VBQ0Qsb0JBQ0kvQixNQUFBLENBQUFnQixPQUFBLENBQUFpQixhQUFBLENBQUM3QixlQUFBLENBQUFZLE9BQWMsTUFBQWtCLFNBQUEsQ0FBQWxCLE9BQUEsTUFDUEYsS0FBSztJQUNUcUIsSUFBSSxFQUFDLGtCQUFrQjtJQUN2QixjQUFZeEIsS0FBTTtJQUNsQkMsUUFBUSxFQUFFQSxRQUFTO0lBQ25CUyxTQUFTLEVBQUVBLFNBQVU7SUFDckJXLE9BQU8sRUFBRUEsT0FBUTtJQUNqQmYsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCbUIsUUFBUSxFQUFFakIsR0FBSTtJQUNka0IsUUFBUSxFQUFFbkIsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDO0VBQUUsSUFFM0JSLFFBQ1csQ0FBQztBQUV6QixDQUFDO0FBQUM0QixPQUFBLENBQUE5QixzQkFBQSxHQUFBQSxzQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==