UNPKG

@carbon/react

Version:

React components for the Carbon Design System

130 lines (122 loc) 4.68 kB
/** * Copyright IBM Corp. 2016, 2023 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js'); var React = require('react'); var PropTypes = require('prop-types'); var cx = require('classnames'); var FluidTextInput = require('../FluidTextInput/FluidTextInput.js'); require('../FluidTextInput/FluidPasswordInput.js'); require('../FluidTextInput/FluidTextInput.Skeleton.js'); var usePrefix = require('../../internal/usePrefix.js'); var iconsReact = require('@carbon/icons-react'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes); var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx); const FluidTimePicker = /*#__PURE__*/React__default["default"].forwardRef(function FluidTimePicker({ className, children, disabled, invalid, invalidText, warn, warnText, readOnly, ...other }, ref) { const prefix = usePrefix.usePrefix(); const classNames = cx__default["default"](className, { [`${prefix}--time-picker--fluid`]: true, [`${prefix}--time-picker--equal-width`]: React__default["default"].Children.toArray(children).length !== 2, [`${prefix}--time-picker--fluid--disabled`]: disabled, [`${prefix}--time-picker--fluid--invalid`]: invalid, [`${prefix}--time-picker--fluid--warning`]: warn }); const errorText = () => { if (invalid) { return invalidText; } if (warn) { return warnText; } }; const error = invalid || warn; const childrenWithProps = () => { if (disabled) { return React__default["default"].Children.toArray(children).map(child => /*#__PURE__*/React__default["default"].cloneElement(child, { disabled: true })); } if (readOnly) { return React__default["default"].Children.toArray(children).map(child => /*#__PURE__*/React__default["default"].cloneElement(child, { readOnly: true })); } return children; }; return /*#__PURE__*/React__default["default"].createElement("div", { className: classNames }, /*#__PURE__*/React__default["default"].createElement("div", { className: `${prefix}--time-picker--fluid__wrapper` }, /*#__PURE__*/React__default["default"].createElement("div", { className: `${prefix}--time-picker__input` }, /*#__PURE__*/React__default["default"].createElement(FluidTextInput["default"], _rollupPluginBabelHelpers["extends"]({ ref: ref, readOnly: readOnly, disabled: disabled }, other))), childrenWithProps()), error && /*#__PURE__*/React__default["default"].createElement("hr", { className: `${prefix}--time-picker__divider` }), error && /*#__PURE__*/React__default["default"].createElement("div", { className: `${prefix}--form-requirement` }, errorText()), error && invalid ? /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningFilled, { className: `${prefix}--time-picker__icon ${prefix}--time-picker__icon--invalid` }) : /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningAltFilled, { className: `${prefix}--time-picker__icon ${prefix}--time-picker__icon--warn` })); }); FluidTimePicker.propTypes = { /** * The child node(s) */ children: PropTypes__default["default"].node, /** * Specify an optional className to be applied to the outer FluidTimePicker wrapper */ className: PropTypes__default["default"].string, /** * Specify whether the `<input>` should be disabled */ disabled: PropTypes__default["default"].bool, /** * Specify whether or not the control is invalid */ invalid: PropTypes__default["default"].bool, /** * Provide the text that is displayed when the control is in error state */ invalidText: PropTypes__default["default"].node, /** * Provide the text that will be read by a screen reader when visiting this * control */ labelText: PropTypes__default["default"].node.isRequired, /** * Specify whether the control is currently in warning state */ warn: PropTypes__default["default"].bool, /** * Provide the text that is displayed when the control is in warning state */ warnText: PropTypes__default["default"].node, /** * Whether or not the component is readonly */ readOnly: PropTypes__default["default"].bool }; exports["default"] = FluidTimePicker;