12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import _extends from "@babel/runtime/helpers/esm/extends";
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
- var _excluded = ["prefixCls", "className", "style", "checked", "disabled", "defaultChecked", "type", "title", "onChange"];
- import classNames from 'classnames';
- import useMergedState from "rc-util/es/hooks/useMergedState";
- import * as React from 'react';
- import { forwardRef, useImperativeHandle, useRef } from 'react';
- export var Checkbox = /*#__PURE__*/forwardRef(function (props, ref) {
- var _props$prefixCls = props.prefixCls,
- prefixCls = _props$prefixCls === void 0 ? 'rc-checkbox' : _props$prefixCls,
- className = props.className,
- style = props.style,
- checked = props.checked,
- disabled = props.disabled,
- _props$defaultChecked = props.defaultChecked,
- defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,
- _props$type = props.type,
- type = _props$type === void 0 ? 'checkbox' : _props$type,
- title = props.title,
- onChange = props.onChange,
- inputProps = _objectWithoutProperties(props, _excluded);
- var inputRef = useRef(null);
- var holderRef = useRef(null);
- var _useMergedState = useMergedState(defaultChecked, {
- value: checked
- }),
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
- rawValue = _useMergedState2[0],
- setRawValue = _useMergedState2[1];
- useImperativeHandle(ref, function () {
- return {
- focus: function focus(options) {
- var _inputRef$current;
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus(options);
- },
- blur: function blur() {
- var _inputRef$current2;
- (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();
- },
- input: inputRef.current,
- nativeElement: holderRef.current
- };
- });
- var classString = classNames(prefixCls, className, _defineProperty(_defineProperty({}, "".concat(prefixCls, "-checked"), rawValue), "".concat(prefixCls, "-disabled"), disabled));
- var handleChange = function handleChange(e) {
- if (disabled) {
- return;
- }
- if (!('checked' in props)) {
- setRawValue(e.target.checked);
- }
- onChange === null || onChange === void 0 || onChange({
- target: _objectSpread(_objectSpread({}, props), {}, {
- type: type,
- checked: e.target.checked
- }),
- stopPropagation: function stopPropagation() {
- e.stopPropagation();
- },
- preventDefault: function preventDefault() {
- e.preventDefault();
- },
- nativeEvent: e.nativeEvent
- });
- };
- return /*#__PURE__*/React.createElement("span", {
- className: classString,
- title: title,
- style: style,
- ref: holderRef
- }, /*#__PURE__*/React.createElement("input", _extends({}, inputProps, {
- className: "".concat(prefixCls, "-input"),
- ref: inputRef,
- onChange: handleChange,
- disabled: disabled,
- checked: !!rawValue,
- type: type
- })), /*#__PURE__*/React.createElement("span", {
- className: "".concat(prefixCls, "-inner")
- }));
- });
- export default Checkbox;
|