1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports.default = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
15 |
|
16 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
17 |
|
18 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
19 |
|
20 | var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
21 |
|
22 | var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
23 |
|
24 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
25 |
|
26 | var React = _interopRequireWildcard(require("react"));
|
27 |
|
28 | var _tooltip = _interopRequireDefault(require("@beisen-phoenix/tooltip"));
|
29 |
|
30 | require("./style.css");
|
31 |
|
32 | var _commonUtils = _interopRequireDefault(require("@beisen-phoenix/common-utils"));
|
33 |
|
34 | var Checkbox =
|
35 |
|
36 | function (_React$PureComponent) {
|
37 | (0, _inherits2.default)(Checkbox, _React$PureComponent);
|
38 |
|
39 | function Checkbox(props) {
|
40 | var _this;
|
41 |
|
42 | (0, _classCallCheck2.default)(this, Checkbox);
|
43 | _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Checkbox).call(this, props));
|
44 | _this.inputRef = React.createRef();
|
45 | _this.txtRef = React.createRef();
|
46 | _this.containerRef = React.createRef();
|
47 |
|
48 | _this.onChange = function (event) {
|
49 | var checked = _this.state.checked;
|
50 | var _this$props = _this.props,
|
51 | onChange = _this$props.onChange,
|
52 | disabled = _this$props.disabled,
|
53 | restProps = (0, _objectWithoutProperties2.default)(_this$props, ["onChange", "disabled"]);
|
54 | if (disabled) return;
|
55 |
|
56 | if (!_this.props.partialChecked) {
|
57 | _this.setState({
|
58 | checked: !checked
|
59 | });
|
60 |
|
61 | restProps.checked = !checked;
|
62 | }
|
63 |
|
64 | onChange && onChange(restProps, event);
|
65 | event.stopPropagation && event.stopPropagation();
|
66 | };
|
67 |
|
68 | var _checked = 'checked' in props ? props.checked : props.defaultChecked;
|
69 |
|
70 | _this.state = {
|
71 | checked: _checked
|
72 | };
|
73 | return _this;
|
74 | }
|
75 |
|
76 | (0, _createClass2.default)(Checkbox, [{
|
77 | key: "componentWillReceiveProps",
|
78 | value: function componentWillReceiveProps(nextProps) {
|
79 | 'checked' in nextProps && this.setState({
|
80 | checked: nextProps.checked
|
81 | });
|
82 | }
|
83 | }, {
|
84 | key: "render",
|
85 | value: function render() {
|
86 | var _this$props2 = this.props,
|
87 | disabled = _this$props2.disabled,
|
88 | _this$props2$label = _this$props2.label,
|
89 | label = _this$props2$label === void 0 ? '' : _this$props2$label,
|
90 | partialChecked = _this$props2.partialChecked,
|
91 | value = _this$props2.value,
|
92 | tipsType = _this$props2.tipsType,
|
93 | fontSize = _this$props2.fontSize,
|
94 | textColor = _this$props2.textColor;
|
95 | var checked = this.state.checked;
|
96 | var onChange = this.onChange;
|
97 | var inputProps = {
|
98 | value: value,
|
99 | onChange: onChange
|
100 | };
|
101 |
|
102 | var classes = _commonUtils.default.BEMClass('checkbox');
|
103 |
|
104 | var labelCls = classes({
|
105 | modifiers: {
|
106 | disabled: disabled
|
107 | },
|
108 | extra: this.props.extraCls
|
109 | });
|
110 | var boxCls = classes({
|
111 | element: 'box',
|
112 | modifiers: {
|
113 | partialChecked: partialChecked
|
114 | }
|
115 | });
|
116 | var inputCls = classes({
|
117 | element: 'input',
|
118 | modifiers: {
|
119 | disabled: disabled
|
120 | }
|
121 | });
|
122 | var realCls = classes({
|
123 | element: 'realInput',
|
124 | modifiers: {
|
125 | checked: checked,
|
126 | disabled: disabled,
|
127 | partialChecked: partialChecked,
|
128 | disabledChecked: disabled && checked
|
129 | }
|
130 | });
|
131 | var tipCls = classes({
|
132 | element: 'tooltip',
|
133 | extra: this.props.extraCls
|
134 | });
|
135 | var txtCls = classes({
|
136 | element: 'text',
|
137 | modifiers: {
|
138 | disabled: disabled,
|
139 | fontMiddle: fontSize === 'middle'
|
140 | },
|
141 | extra: "color-".concat(textColor)
|
142 | });
|
143 | return React.createElement("label", {
|
144 | className: labelCls,
|
145 | ref: this.containerRef
|
146 | }, React.createElement("span", {
|
147 | className: boxCls
|
148 | }, React.createElement("input", (0, _extends2.default)({
|
149 | type: "checkbox",
|
150 | ref: this.inputRef
|
151 | }, inputProps, {
|
152 | className: inputCls
|
153 | })), React.createElement("span", {
|
154 | className: realCls
|
155 | })), label ? tipsType === 'animate' ? React.createElement(_tooltip.default, {
|
156 | extraCls: tipCls,
|
157 | showOverflowTooltip: true,
|
158 | title: label
|
159 | }, React.createElement("span", {
|
160 | className: txtCls,
|
161 | ref: this.txtRef
|
162 | }, label)) : React.createElement("span", {
|
163 | className: txtCls,
|
164 | title: label,
|
165 | ref: this.txtRef
|
166 | }, label) : null);
|
167 | }
|
168 | }]);
|
169 | return Checkbox;
|
170 | }(React.PureComponent);
|
171 |
|
172 | exports.default = Checkbox;
|
173 | Checkbox.defaultProps = {
|
174 | disabled: false,
|
175 | defaultChecked: false,
|
176 | label: '',
|
177 | tipsType: 'animate',
|
178 | fontSize: 'normal',
|
179 | textColor: 'M1'
|
180 | }; |
\ | No newline at end of file |