UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

129 lines (121 loc) 4.39 kB
/** * MSKCC 2021, 2024 */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js'); var iconsReact = require('@carbon/icons-react'); var cx = require('classnames'); var PropTypes = require('prop-types'); var React = require('react'); var useId = require('../../internal/useId.js'); var usePrefix = require('../../internal/usePrefix.js'); var deprecate = require('../../prop-types/deprecate.js'); var match = require('../../internal/keyboard/match.js'); var keys = require('../../internal/keyboard/keys.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx); var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes); var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var _CheckmarkFilled; const RadioTile = /*#__PURE__*/React__default["default"].forwardRef(function RadioTile(_ref, ref) { let { children, className: customClassName, disabled, // eslint-disable-next-line no-unused-vars light, checked, name, value, id, onChange, tabIndex, ...rest } = _ref; const prefix = usePrefix.usePrefix(); const inputId = useId.useFallbackId(id); const className = cx__default["default"](customClassName, `${prefix}--tile`, `${prefix}--tile--selectable`, { [`${prefix}--tile--is-selected`]: checked, [`${prefix}--tile--light`]: light, [`${prefix}--tile--disabled`]: disabled }); function handleOnChange(evt) { onChange(value, name, evt); } function handleOnKeyDown(evt) { if (match.matches(evt, [keys.Enter, keys.Space])) { evt.preventDefault(); onChange(value, name, evt); } } return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("input", { checked: checked, className: `${prefix}--tile-input`, disabled: disabled, id: inputId, name: name, onChange: !disabled ? handleOnChange : null, onKeyDown: !disabled ? handleOnKeyDown : null, tabIndex: !disabled ? tabIndex : null, type: "radio", value: value, ref: ref }), /*#__PURE__*/React__default["default"].createElement("label", _rollupPluginBabelHelpers["extends"]({}, rest, { htmlFor: inputId, className: className }), /*#__PURE__*/React__default["default"].createElement("span", { className: `${prefix}--tile__checkmark` }, _CheckmarkFilled || (_CheckmarkFilled = /*#__PURE__*/React__default["default"].createElement(iconsReact.CheckmarkFilled, null))), /*#__PURE__*/React__default["default"].createElement("span", { className: `${prefix}--tile-content` }, children))); }); RadioTile.propTypes = { /** * `true` if this tile should be selected. */ checked: PropTypes__default["default"].bool, /** * The tile content. */ children: PropTypes__default["default"].node, /** * The CSS class names. */ className: PropTypes__default["default"].string, /** * Specify whether the RadioTile should be disabled */ disabled: PropTypes__default["default"].bool, /** * The ID of the `<input>`. */ id: PropTypes__default["default"].string, /** * `true` to use the light version. For use on $ui-01 backgrounds only. * Don't use this to make tile background color same as container background color. */ light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `RadioTile` is no longer needed and has ' + 'been deprecated in v11 in favor of the new `Layer` component. It will be moved in the next major release.'), /** * The `name` of the `<input>`. */ name: PropTypes__default["default"].string, /** * The handler of the massaged `change` event on the `<input>`. */ onChange: PropTypes__default["default"].func, /** * Specify the tab index of the wrapper element */ tabIndex: PropTypes__default["default"].number, /** * The `value` of the `<input>`. */ value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]).isRequired }; RadioTile.defaultProps = { onChange: () => {}, tabIndex: 0 }; var RadioTile$1 = RadioTile; exports["default"] = RadioTile$1;