New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bee-checkbox

Package Overview
Dependencies
Maintainers
14
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bee-checkbox - npm Package Compare versions

Comparing version 2.0.6 to 2.0.7-alpha.0

75

build/CheckboxGroup.js

@@ -7,6 +7,2 @@ 'use strict';

var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');

@@ -42,3 +38,5 @@

onChange: _propTypes2["default"].func,
disabled: _propTypes2["default"].bool
disabled: _propTypes2["default"].bool,
options: _propTypes2["default"].array,
defaultValue: _propTypes2["default"].array
};

@@ -48,5 +46,5 @@

clsPrefix: 'u-checkbox-group',
value: [],
onChange: function onChange() {},
disabled: false
disabled: false,
options: []
};

@@ -72,7 +70,22 @@

});
_this.props.onChange(values);
var onChange = _this.props.onChange;
if (onChange) {
var options = _this.getOptions();
onChange(values.filter(function (val) {
return values.indexOf(val) !== -1;
}).sort(function (a, b) {
var indexA = options.findIndex(function (opt) {
return opt.value === a;
});
var indexB = options.findIndex(function (opt) {
return opt.value === b;
});
return indexA - indexB;
}));
}
};
_this.state = {
values: props.value
values: props.value || props.defaultValue || []
};

@@ -90,16 +103,48 @@ return _this;

CheckboxGroup.prototype.getOptions = function getOptions() {
var options = this.props.options;
return options.map(function (option) {
if (typeof option === 'string') {
return {
label: option,
value: option
};
}
return option;
});
};
CheckboxGroup.prototype.render = function render() {
var _this2 = this;
var _props = this.props,
clsPrefix = _props.clsPrefix,
className = _props.className,
disabled = _props.disabled;
var state = this.state;
var props = this.props;
var clsPrefix = props.clsPrefix,
className = props.className,
disabled = props.disabled,
children = props.children,
options = props.options;
var classes = clsPrefix;
if (className) classes += ' ' + className;
if (options && options.length > 0) {
children = this.getOptions().map(function (option) {
return _react2["default"].createElement(
_Checkbox2["default"],
{
key: option.value.toString(),
disabled: 'disabled' in option ? option.disabled : props.disabled,
value: option.value,
checked: state.values.indexOf(option.value) !== -1,
onChange: option.onChange
},
option.label
);
});
}
return _react2["default"].createElement(
'div',
{ className: classes },
_react2["default"].Children.map(this.props.children, function (child) {
_react2["default"].Children.map(children, function (child) {
return _react2["default"].cloneElement(child, {

@@ -109,3 +154,3 @@ onChange: function onChange() {

},
checked: _this2.state.values.indexOf(child.props.value) != -1,
checked: state.values.indexOf(child.props.value) != -1,
disabled: child.props.disabled || disabled

@@ -112,0 +157,0 @@ });

37

demo/demolist/Demo4.js
/**
* @title CheckboxGroup基本使用
* @description `value` 参数设置默认值,`onChange`设置值改变的回调,`disabled`设置是否可用
* @description 方便的从数组生成 Checkbox 组。
*/

@@ -8,6 +8,16 @@

import Checkbox from '../../src';
const CheckboxGroup = Checkbox.CheckboxGroup;
const plainOptions = ['Apple', 'Pear', 'Orange'];
const options = [
{ label: 'Apple', value: 'Apple' },
{ label: 'Pear', value: 'Pear' },
{ label: 'Orange', value: 'Orange' },
];
const optionsWithDisabled = [
{ label: 'Apple', value: 'Apple' },
{ label: 'Pear', value: 'Pear' },
{ label: 'Orange', value: 'Orange', disabled: false },
];
const CheckboxGroup = Checkbox.CheckboxGroup;
class Demo4 extends Component {

@@ -21,7 +31,4 @@ constructor(props) {

}
change=(value)=>{
console.log(value)
this.setState({
value1:value
})
onChange(checkedValues) {
console.log('checked = ', checkedValues);
}

@@ -31,3 +38,3 @@ render () {

<div className="demo-checkbox">
<CheckboxGroup value={this.state.value1} onChange={this.change}>
{/* <CheckboxGroup value={this.state.value1} onChange={this.onChange}>
<Checkbox value='1'>

@@ -65,3 +72,13 @@ 1

</Checkbox>
</CheckboxGroup>
</CheckboxGroup> */}
<CheckboxGroup options={plainOptions} defaultValue={['Apple']} onChange={this.onChange} />
<CheckboxGroup options={options} defaultValue={['Pear']} onChange={this.onChange} />
<CheckboxGroup
options={optionsWithDisabled}
disabled
defaultValue={['Apple']}
onChange={this.onChange}
/>
</div>

@@ -68,0 +85,0 @@ )

@@ -11,3 +11,3 @@ import React, { Component } from 'react';

var Demo1 = require("./demolist/Demo1");var Demo2 = require("./demolist/Demo2");var Demo3 = require("./demolist/Demo3");var Demo4 = require("./demolist/Demo4");var Demo5 = require("./demolist/Demo5");var Demo6 = require("./demolist/Demo6");var Demo7 = require("./demolist/Demo7");var DemoArray = [{"example":<Demo1 />,"title":" 基本用法","code":"/**\r\n * @title 基本用法\r\n * @description `checked` 参数设置是否选中,`disabled`设置是否可用,`onDoubleClick`定义双击事件。\r\n */\r\n\r\n\r\nimport React, {Component} from 'react';\r\nimport { Checkbox } from 'tinper-bee';\r\n\r\nclass Demo1 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checkedFlag: true\r\n }\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(e) {\r\n console.log(e);\r\n this.setState({checkedFlag: e});\r\n }\r\n\r\n handleDblClick = (state) => {\r\n\t\tconsole.log(state);\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"demo-checkbox\">\r\n <Checkbox\r\n disabled\r\n className=\"test\" >\r\n </Checkbox>\r\n <Checkbox\r\n disabled\r\n checked={true}\r\n className=\"test\" >\r\n </Checkbox>\r\n <Checkbox\r\n // onDoubleClick={ this.handleDblClick }\r\n ref=\"test\"\r\n checked={this.state.checkedFlag}\r\n onChange={this.onChange}>\r\n Checkbox\r\n </Checkbox>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\n","desc":" `checked` 参数设置是否选中,`disabled`设置是否可用,`onDoubleClick`定义双击事件。","scss_code":""},{"example":<Demo2 />,"title":" 不同颜色的 Checkbox","code":"/**\r\n * @title 不同颜色的 Checkbox\r\n * @description `colors`参数控制背景色\r\n */\r\n\r\nimport React, { Component } from 'react';\r\nimport { Checkbox } from 'tinper-bee';\r\n\r\nclass Demo2 extends Component {\r\n\trender(){\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t<Checkbox colors=\"primary\">primary</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"success\">success</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"info\">info</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"danger\">danger</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"warning\">warning</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"dark\">dark</Checkbox>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n\r\n","desc":" `colors`参数控制背景色","scss_code":""},{"example":<Demo3 />,"title":" 受控的 Checkbox","code":"/**\r\n * @title 受控的 Checkbox\r\n * @description `checked` 参数设置是否选中,`disabled`设置是否可用。\r\n */\r\n\r\nimport React, { Component } from 'react';\r\nimport { Checkbox, Button } from 'tinper-bee';\r\n\n\r\nclass Demo3 extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tchecked: false,\r\n\t\t\tdisabled: false\r\n\t\t}\r\n\t}\r\n\tchangeCheck=()=> {\r\n\t\tthis.setState({checked:!this.state.checked});\r\n\t}\r\n\tchangeDisabled=()=> {\r\n\t\tthis.setState({disabled:!this.state.disabled});\r\n\t}\r\n\trender () {\r\n\t\tconst label = `${this.state.checked ? 'Checked' : 'Unchecked'}-${this.state.disabled ? 'Disabled' : 'Enabled'}`;\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t<p>\r\n\t\t\t\t\t<Button \r\n\t\t\t\t\t\tcolors=\"secondary\" \r\n\t\t\t\t\t\tonClick={this.changeCheck.bind(this)}\r\n\t\t\t\t\t\tstyle={{marginRight:\"8px\"}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{!this.state.checked ? 'Check' : 'Uncheck'}\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t\t<Button \r\n\t\t\t\t\t\tcolors=\"secondary\" \r\n\t\t\t\t\t\tonClick={this.changeDisabled.bind(this)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{!this.state.disabled ? 'Disable' : 'Enable'}\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t</p>\t\r\n\t\t\t\t<p>\r\n\t\t\t\t\t<Checkbox \r\n\t\t\t\t\t\tchecked={this.state.checked} \r\n\t\t\t\t\t\tdisabled={this.state.disabled} \r\n\t\t\t\t\t\tonChange={this.changeCheck}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{label }\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</p>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n","desc":" `checked` 参数设置是否选中,`disabled`设置是否可用。","scss_code":""},{"example":<Demo4 />,"title":" CheckboxGroup基本使用","code":"/**\r\n * @title CheckboxGroup基本使用\r\n * @description `value` 参数设置默认值,`onChange`设置值改变的回调,`disabled`设置是否可用\r\n */\r\n\r\nimport React, { Component } from 'react';\r\nimport { Checkbox } from 'tinper-bee';\r\n\r\n\r\nconst CheckboxGroup = Checkbox.CheckboxGroup;\r\n\r\nclass Demo4 extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tvalue1:['3','4'],\r\n\t\t\tvalue2:['3','4']\r\n\t\t}\r\n\t}\r\n\tchange=(value)=>{\r\n\t\tconsole.log(value)\r\n\t\tthis.setState({\r\n\t\t\tvalue1:value\r\n\t\t})\r\n\t}\r\n\trender () {\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t<CheckboxGroup value={this.state.value1} onChange={this.change}>\r\n\t\t\t\t\t<Checkbox value='1'>\r\n\t\t\t\t\t\t1\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='2'>\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='3'>\r\n\t\t\t\t\t\t3\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='4'>\r\n\t\t\t\t\t\t4\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='5'>\r\n\t\t\t\t\t\t5\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</CheckboxGroup>\r\n\t\t\t\t<CheckboxGroup disabled value={this.state.value2} >\r\n\t\t\t\t\t<Checkbox value='1'>\r\n\t\t\t\t\t\t1\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='2'>\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='3'>\r\n\t\t\t\t\t\t3\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='4'>\r\n\t\t\t\t\t\t4\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='5'>\r\n\t\t\t\t\t\t5\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</CheckboxGroup>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n","desc":" `value` 参数设置默认值,`onChange`设置值改变的回调,`disabled`设置是否可用"},{"example":<Demo5 />,"title":" CheckboxGroup在form中使用","code":"/**\r\n * @title CheckboxGroup在form中使用\r\n * @description `value` 参数设置默认值,`onChange`设置值改变的回调。\r\n */\r\n\r\nimport React, { Component } from 'react';\r\nimport { Checkbox, Button, Form } from 'tinper-bee';\r\n\n\n\r\n\r\nconst CheckboxGroup = Checkbox.CheckboxGroup;\r\n\r\nclass Demo4 extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tvalue:['3','4']\r\n\t\t}\r\n\t}\r\n\tchange=(value)=>{\r\n\t\tthis.setState({\r\n\t\t\tvalue\r\n\t\t})\r\n\t}\r\n\tclick=()=>{\r\n\t\tthis.props.form.validateFields((error,values)=>{\r\n\t\t\tconsole.log(values)\r\n\t\t})\r\n\t}\r\n\trender () {\r\n\t\tconst self = this;\r\n\t\tconst { getFieldProps, getFieldError } = this.props.form;\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t<CheckboxGroup \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t...getFieldProps('name',{\r\n\t\t\t\t\t\t\tinitialValue:['2','3'],\r\n\t\t\t\t\t\t\tonChange:self.change\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Checkbox value='1'>\r\n\t\t\t\t\t\t1\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='2'>\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='3'>\r\n\t\t\t\t\t\t3\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='4'>\r\n\t\t\t\t\t\t4\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='5'>\r\n\t\t\t\t\t\t5\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</CheckboxGroup>\r\n\t\t\t\t<Button colors=\"secondary\" onClick={this.click}>submit</Button>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\n","desc":" `value` 参数设置默认值,`onChange`设置值改变的回调。"},{"example":<Demo6 />,"title":" 全选","code":"/**\r\n * @title 全选\r\n * @description `indeterminate` 参数设置部分选中状态。\r\n */\r\n\r\n\r\nimport React, {Component} from 'react';\r\nimport { Checkbox } from 'tinper-bee';\r\n\r\nconst CheckboxGroup = Checkbox.CheckboxGroup;\r\n\r\nconst plainOptions = ['1','2','3','4','5'];\r\nconst defaultCheckedList = ['2','3'];\r\n\r\nclass Demo7 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checkedList: defaultCheckedList,\r\n indeterminate: true,\r\n checkAll: false\r\n }\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onCheckAllChange = (e) => {\r\n console.log(e);\r\n this.setState({\r\n checkedList: e ? plainOptions : [],\r\n indeterminate: false,\r\n checkAll: e,\r\n });\r\n }\r\n\r\n onChange(checkedList) {\r\n console.log(checkedList)\r\n this.setState({\r\n checkedList: checkedList,\r\n indeterminate: !!checkedList.length && (checkedList.length < plainOptions.length),\r\n checkAll: checkedList.length === plainOptions.length\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"demo-checkbox\">\r\n <Checkbox\r\n ref=\"test\"\r\n indeterminate={this.state.indeterminate}\r\n onChange={this.onCheckAllChange}\r\n checked={this.state.checkAll}>\r\n 全选\r\n </Checkbox>\r\n <br/>\r\n <CheckboxGroup value={this.state.checkedList} onChange={this.onChange}>\r\n <Checkbox value='1'>1</Checkbox>\r\n <Checkbox value='2'>2</Checkbox>\r\n <Checkbox value='3'>3</Checkbox>\r\n <Checkbox value='4'>4</Checkbox>\r\n <Checkbox value='5'>5</Checkbox>\r\n </CheckboxGroup>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\n","desc":" `indeterminate` 参数设置部分选中状态。"},{"example":<Demo7 />,"title":" 红色填充的 Checkbox","code":"/**\r\n * @title 红色填充的 Checkbox\r\n * @description `inverse` 参数设置选中为红色填充。\r\n */\r\n\r\n\r\nimport React, {Component} from 'react';\r\nimport { Checkbox } from 'tinper-bee';\r\n\r\nclass Demo7 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checkedFlag: false\r\n }\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(e) {\r\n console.log(e);\r\n this.setState({checkedFlag: e});\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"demo-checkbox\">\r\n <Checkbox\r\n inverse\r\n ref=\"test\"\r\n checked={this.state.checkedFlag}\r\n onChange={this.onChange}>\r\n 全选\r\n </Checkbox>\r\n <Checkbox\r\n inverse\r\n ref=\"test\"\r\n indeterminate>\r\n 半选\r\n </Checkbox>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\n","desc":" `inverse` 参数设置选中为红色填充。"}]
var Demo1 = require("./demolist/Demo1");var Demo2 = require("./demolist/Demo2");var Demo3 = require("./demolist/Demo3");var Demo4 = require("./demolist/Demo4");var Demo5 = require("./demolist/Demo5");var Demo6 = require("./demolist/Demo6");var Demo7 = require("./demolist/Demo7");var DemoArray = [{"example":<Demo1 />,"title":" 基本用法","code":"/**\r\n * @title 基本用法\r\n * @description `checked` 参数设置是否选中,`disabled`设置是否可用,`onDoubleClick`定义双击事件。\r\n */\r\n\r\n\r\nimport React, {Component} from 'react';\nimport { Checkbox } from 'tinper-bee';\r\n\r\n\r\nclass Demo1 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checkedFlag: true\r\n }\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(e) {\r\n console.log(e);\r\n this.setState({checkedFlag: e});\r\n }\r\n\r\n handleDblClick = (state) => {\r\n\t\tconsole.log(state);\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"demo-checkbox\">\r\n <Checkbox\r\n disabled\r\n className=\"test\" >\r\n </Checkbox>\r\n <Checkbox\r\n disabled\r\n checked={true}\r\n className=\"test\" >\r\n </Checkbox>\r\n <Checkbox\r\n // onDoubleClick={ this.handleDblClick }\r\n ref=\"test\"\r\n checked={this.state.checkedFlag}\r\n onChange={this.onChange}>\r\n Checkbox\r\n </Checkbox>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default Demo1;","desc":" `checked` 参数设置是否选中,`disabled`设置是否可用,`onDoubleClick`定义双击事件。","scss_code":""},{"example":<Demo2 />,"title":" 不同颜色的 Checkbox","code":"/**\r\n * @title 不同颜色的 Checkbox\r\n * @description `colors`参数控制背景色\r\n */\r\n\r\nimport React, { Component } from 'react';\nimport { Checkbox } from 'tinper-bee';\r\n\r\n\r\nclass Demo2 extends Component {\r\n\trender(){\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t<Checkbox colors=\"primary\">primary</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"success\">success</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"info\">info</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"danger\">danger</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"warning\">warning</Checkbox>\r\n\t\t\t\t<Checkbox colors=\"dark\">dark</Checkbox>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\nexport default Demo2;\r\n","desc":" `colors`参数控制背景色","scss_code":""},{"example":<Demo3 />,"title":" 受控的 Checkbox","code":"/**\r\n * @title 受控的 Checkbox\r\n * @description `checked` 参数设置是否选中,`disabled`设置是否可用。\r\n */\r\n\r\nimport React, { Component } from 'react';\nimport { Button, Checkbox } from 'tinper-bee';\r\n\r\n\n\r\nclass Demo3 extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tchecked: false,\r\n\t\t\tdisabled: false\r\n\t\t}\r\n\t}\r\n\tchangeCheck=()=> {\r\n\t\tthis.setState({checked:!this.state.checked});\r\n\t}\r\n\tchangeDisabled=()=> {\r\n\t\tthis.setState({disabled:!this.state.disabled});\r\n\t}\r\n\trender () {\r\n\t\tconst label = `${this.state.checked ? 'Checked' : 'Unchecked'}-${this.state.disabled ? 'Disabled' : 'Enabled'}`;\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t<p>\r\n\t\t\t\t\t<Button \r\n\t\t\t\t\t\tcolors=\"secondary\" \r\n\t\t\t\t\t\tonClick={this.changeCheck.bind(this)}\r\n\t\t\t\t\t\tstyle={{marginRight:\"8px\"}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{!this.state.checked ? 'Check' : 'Uncheck'}\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t\t<Button \r\n\t\t\t\t\t\tcolors=\"secondary\" \r\n\t\t\t\t\t\tonClick={this.changeDisabled.bind(this)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{!this.state.disabled ? 'Disable' : 'Enable'}\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t</p>\t\r\n\t\t\t\t<p>\r\n\t\t\t\t\t<Checkbox \r\n\t\t\t\t\t\tchecked={this.state.checked} \r\n\t\t\t\t\t\tdisabled={this.state.disabled} \r\n\t\t\t\t\t\tonChange={this.changeCheck}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{label }\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</p>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\nexport default Demo3;","desc":" `checked` 参数设置是否选中,`disabled`设置是否可用。","scss_code":""},{"example":<Demo4 />,"title":" CheckboxGroup基本使用","code":"/**\r\n * @title CheckboxGroup基本使用\r\n * @description 方便的从数组生成 Checkbox 组。\r\n */\r\n\r\nimport React, { Component } from 'react';\nimport { Checkbox } from 'tinper-bee';\r\n\r\nconst CheckboxGroup = Checkbox.CheckboxGroup;\r\n\r\nconst plainOptions = ['Apple', 'Pear', 'Orange'];\r\nconst options = [\r\n { label: 'Apple', value: 'Apple' },\r\n { label: 'Pear', value: 'Pear' },\r\n { label: 'Orange', value: 'Orange' },\r\n];\r\nconst optionsWithDisabled = [\r\n { label: 'Apple', value: 'Apple' },\r\n { label: 'Pear', value: 'Pear' },\r\n { label: 'Orange', value: 'Orange', disabled: false },\r\n];\r\n\r\nclass Demo4 extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tvalue1:['3','4'],\r\n\t\t\tvalue2:['3','4']\r\n\t\t}\r\n\t}\r\n\tonChange(checkedValues) {\r\n\t\tconsole.log('checked = ', checkedValues);\r\n\t}\r\n\trender () {\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t{/* <CheckboxGroup value={this.state.value1} onChange={this.onChange}>\r\n\t\t\t\t\t<Checkbox value='1'>\r\n\t\t\t\t\t\t1\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='2'>\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='3'>\r\n\t\t\t\t\t\t3\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='4'>\r\n\t\t\t\t\t\t4\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='5'>\r\n\t\t\t\t\t\t5\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</CheckboxGroup>\r\n\t\t\t\t<CheckboxGroup disabled value={this.state.value2} >\r\n\t\t\t\t\t<Checkbox value='1'>\r\n\t\t\t\t\t\t1\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='2'>\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='3'>\r\n\t\t\t\t\t\t3\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='4'>\r\n\t\t\t\t\t\t4\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='5'>\r\n\t\t\t\t\t\t5\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</CheckboxGroup> */}\r\n\t\t\t\t<CheckboxGroup options={plainOptions} defaultValue={['Apple']} onChange={this.onChange} />\r\n\t\t\r\n\t\t\t\t<CheckboxGroup options={options} defaultValue={['Pear']} onChange={this.onChange} />\r\n\t\t\t\r\n\t\t\t\t<CheckboxGroup\r\n\t\t\t\toptions={optionsWithDisabled}\r\n\t\t\t\tdisabled\r\n\t\t\t\tdefaultValue={['Apple']}\r\n\t\t\t\tonChange={this.onChange}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\nexport default Demo4;","desc":" 方便的从数组生成 Checkbox 组。"},{"example":<Demo5 />,"title":" CheckboxGroup在form中使用","code":"/**\r\n * @title CheckboxGroup在form中使用\r\n * @description `value` 参数设置默认值,`onChange`设置值改变的回调。\r\n */\r\n\r\nimport React, { Component } from 'react';\nimport { Button, Form, Checkbox } from 'tinper-bee';\r\n\r\n\n\n\r\n\r\nconst CheckboxGroup = Checkbox.CheckboxGroup;\r\n\r\nclass Demo4 extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tvalue:['3','4']\r\n\t\t}\r\n\t}\r\n\tchange=(value)=>{\r\n\t\tthis.setState({\r\n\t\t\tvalue\r\n\t\t})\r\n\t}\r\n\tclick=()=>{\r\n\t\tthis.props.form.validateFields((error,values)=>{\r\n\t\t\tconsole.log(values)\r\n\t\t})\r\n\t}\r\n\trender () {\r\n\t\tconst self = this;\r\n\t\tconst { getFieldProps, getFieldError } = this.props.form;\r\n\t\treturn (\r\n\t\t\t<div className=\"demo-checkbox\">\r\n\t\t\t\t<CheckboxGroup \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t...getFieldProps('name',{\r\n\t\t\t\t\t\t\tinitialValue:['2','3'],\r\n\t\t\t\t\t\t\tonChange:self.change\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Checkbox value='1'>\r\n\t\t\t\t\t\t1\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='2'>\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='3'>\r\n\t\t\t\t\t\t3\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='4'>\r\n\t\t\t\t\t\t4\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t\t<Checkbox value='5'>\r\n\t\t\t\t\t\t5\r\n\t\t\t\t\t</Checkbox>\r\n\t\t\t\t</CheckboxGroup>\r\n\t\t\t\t<Button colors=\"secondary\" onClick={this.click}>submit</Button>\r\n\t\t\t</div>\r\n\t\t)\r\n\t}\r\n}\r\nexport default Form.createForm()(Demo4);","desc":" `value` 参数设置默认值,`onChange`设置值改变的回调。"},{"example":<Demo6 />,"title":" 全选","code":"/**\r\n * @title 全选\r\n * @description `indeterminate` 参数设置部分选中状态。\r\n */\r\n\r\n\r\nimport React, {Component} from 'react';\nimport { Checkbox } from 'tinper-bee';\r\n\r\n\r\nconst CheckboxGroup = Checkbox.CheckboxGroup;\r\n\r\nconst plainOptions = ['1','2','3','4','5'];\r\nconst defaultCheckedList = ['2','3'];\r\n\r\nclass Demo7 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checkedList: defaultCheckedList,\r\n indeterminate: true,\r\n checkAll: false\r\n }\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onCheckAllChange = (e) => {\r\n console.log(e);\r\n this.setState({\r\n checkedList: e ? plainOptions : [],\r\n indeterminate: false,\r\n checkAll: e,\r\n });\r\n }\r\n\r\n onChange(checkedList) {\r\n console.log(checkedList)\r\n this.setState({\r\n checkedList: checkedList,\r\n indeterminate: !!checkedList.length && (checkedList.length < plainOptions.length),\r\n checkAll: checkedList.length === plainOptions.length\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"demo-checkbox\">\r\n <Checkbox\r\n ref=\"test\"\r\n indeterminate={this.state.indeterminate}\r\n onChange={this.onCheckAllChange}\r\n checked={this.state.checkAll}>\r\n 全选\r\n </Checkbox>\r\n <br/>\r\n <CheckboxGroup value={this.state.checkedList} onChange={this.onChange}>\r\n <Checkbox value='1'>1</Checkbox>\r\n <Checkbox value='2'>2</Checkbox>\r\n <Checkbox value='3'>3</Checkbox>\r\n <Checkbox value='4'>4</Checkbox>\r\n <Checkbox value='5'>5</Checkbox>\r\n </CheckboxGroup>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default Demo7;","desc":" `indeterminate` 参数设置部分选中状态。"},{"example":<Demo7 />,"title":" 红色填充的 Checkbox","code":"/**\r\n * @title 红色填充的 Checkbox\r\n * @description `inverse` 参数设置选中为红色填充。\r\n */\r\n\r\n\r\nimport React, {Component} from 'react';\nimport { Checkbox } from 'tinper-bee';\r\n\r\n\r\nclass Demo7 extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checkedFlag: false\r\n }\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(e) {\r\n console.log(e);\r\n this.setState({checkedFlag: e});\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"demo-checkbox\">\r\n <Checkbox\r\n inverse\r\n ref=\"test\"\r\n checked={this.state.checkedFlag}\r\n onChange={this.onChange}>\r\n 全选\r\n </Checkbox>\r\n <Checkbox\r\n inverse\r\n ref=\"test\"\r\n indeterminate>\r\n 半选\r\n </Checkbox>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default Demo7;","desc":" `inverse` 参数设置选中为红色填充。"}]

@@ -14,0 +14,0 @@

@@ -43,8 +43,10 @@ # 多选 Checkbox

|参数|说明|类型|默认值|
|:--|:---|:--|:---|
|className|类名|string|-|
|onChange|监听改变|function|-|
|value|设置默认值|array|[]|
|disabled|是否可用|bool|false|
|参数|说明|类型|默认值|版本|
|:--|:---|:--|:---|:---|
|className|类名|string|-| |
|onChange|监听改变|function|-| |
|value|设置默认值|array|[]| |
|disabled|是否可用|bool|false| |
|options|指定可选项|string[] | []|2.0.7+|
|defaultValue|默认选中的选项|string[] | []|2.0.7+|

@@ -51,0 +53,0 @@ ### 已支持的键盘操作

{
"name": "bee-checkbox",
"version": "2.0.6",
"version": "2.0.7-alpha.0",
"description": "checkbox ui component for react",

@@ -64,2 +64,2 @@ "keywords": [

}
}
}

@@ -0,0 +0,0 @@ import classnames from 'classnames';

@@ -1,2 +0,1 @@

import classnames from 'classnames';
import React from 'react';

@@ -12,3 +11,5 @@ import PropTypes from 'prop-types';

onChange:PropTypes.func,
disabled: PropTypes.bool
disabled: PropTypes.bool,
options: PropTypes.array,
defaultValue: PropTypes.array
};

@@ -18,5 +19,5 @@

clsPrefix:'u-checkbox-group',
value:[],
onChange:()=>{},
disabled: false
disabled: false,
options: []
};

@@ -27,3 +28,3 @@ class CheckboxGroup extends React.Component {

this.state = {
values:props.value
values: props.value || props.defaultValue || [],
}

@@ -48,16 +49,56 @@ }

})
this.props.onChange(values)
const { onChange } = this.props;
if (onChange) {
const options = this.getOptions();
onChange(
values
.filter(val => values.indexOf(val) !== -1)
.sort((a, b) => {
const indexA = options.findIndex(opt => opt.value === a);
const indexB = options.findIndex(opt => opt.value === b);
return indexA - indexB;
}),
);
}
}
getOptions() {
const { options } = this.props;
return (options).map(option => {
if (typeof option === 'string') {
return {
label: option,
value: option,
}
}
return option;
});
}
render() {
let { clsPrefix, className, disabled } = this.props;
let state = this.state;
let props = this.props;
let { clsPrefix, className, disabled, children, options } = props;
let classes = clsPrefix;
if(className)classes += ' '+className
if(className)classes += ' '+className;
if (options && options.length > 0) {
children = this.getOptions().map(option => (
<Checkbox
key={option.value.toString()}
disabled={'disabled' in option ? option.disabled : props.disabled}
value={option.value}
checked={state.values.indexOf(option.value) !== -1}
onChange={option.onChange}
>
{option.label}
</Checkbox>
));
}
return (
<div className={classes} >
{
React.Children.map(this.props.children,child=>React.cloneElement(child,
React.Children.map(children,child=>React.cloneElement(child,
{
onChange:()=>{this.changeHandle(child.props.value)},
checked:this.state.values.indexOf(child.props.value)!=-1,
checked:state.values.indexOf(child.props.value)!=-1,
disabled: child.props.disabled || disabled

@@ -64,0 +105,0 @@ }

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc