6.0.0 • Published 2 years ago
aio-button v6.0.0
aio-button
props
props | Type | Default | Used in type | Description |
---|---|---|---|---|
type | 'button', 'select', 'multiselect', 'checkbox', 'radio', 'checklist' | required | all | component type |
attrs | object(attributes) | - | all | attributes(style,className,disabled,....) |
show | boolean | true | all | visible or not |
text | any | - | select,multiselect,button,checkbox | html as text |
onChange | function(value,option){void} | - | select,multiselect,button,checkbox | onChange event |
onClick | function(){void} | - | button | onClick event |
before | any | - | select,multiselect,button | before html |
after | any | - | select,multiselect,button | after html |
badge | number | - | select,multiselect,button | badge number |
caret | boolean or html/jsx | true | select,multiselect | caret icon, true(default caret), false (without caret),html/jsx(custom caret) |
caretAttrs | object(attributes) | true | select,multiselect | default caret attributes(style,className,....) |
badgeAttrs | object(attributes) | - | select,multiselect,button | badge attributes(style,className,disabled,....) |
popupAttrs | object(attributes) | - | select,multiselect | popup attributes(style,className,disabled,....) |
poupWidth | 'fit' or number | - | select | popup width, 'fit' means popup width set to button width |
poupOver | function(props){return html} | - | button | open custom popup under button by clicking button |
search | boolean | true | select,multiselect | search options |
animate | boolean or css object | false | select,multiselect | popup animation |
options prperties
Property | Type | Default | Used in type | Description |
---|---|---|---|---|
value | any | - | select,multiselect,radio | option value |
text | any | - | select,multiselect,radio | option text or html |
subtext | any | - | select,multiselect,radio | option subtext |
show | boolean | true | select,multiselect,radio | set option visible or not |
attrs | object attributes | - | all | set option attributes (className,style,disabled,...) |
before | any | - | select,multiselect | set option before |
after | any | - | select,multiselect | set option after |
checked | boolean | undefined | select | set option checkbox |
title | string | option text | select,multiselect,radio | set option title(tooltip) |
iconSize | array of 3 numbers | option text | select,multiselect,radio | set option check icon size(outer size,inner size,stroke width) |
iconColor | string or array of 2 color string | option text | select,multiselect,radio | set option check icon color (color or outer color,inner color) |
checkIcon | html/jsx | default check icon | select,multiselect,radio | set option custom check icon |
onClick | function | - | select | set option onClick(will prevent calling onChange by clicking on option) |
All of options properties can set in props 1 time instead of set on each option object.
for example instead of value property in option object, you can set optionValue props (function or string) in root props of component
for example (value => optionValue , text => optionText , disabled => optionDisabled)
props for setting options properties
these functions get option object and index of option as parameters and returns property value of options
Props Type Used in type Description optionValue function(option,index){return any} select,multiselect,radio returns value of option optionText function(option,index){return any} select,multiselect,radio returns text or html of option optionSubext function(option,index){return any} select,multiselect,radio returns option subtext optionDisabled function(option,index){return boolean} select,multiselect,radio returns a boolean to set option disabled optionShow function(option,index){return boolean} select,multiselect,radio returns a boolean to set option visible or not optionBefore function(option,index){return any} select,multiselect returns option before optionAfter function(option,index){return any} select,multiselect returns option after optionChecked function(option,index){return boolean} select returns a boolean for check or uncheck option optionStyle function(option,index){return object} select,multiselect,radio returns option css as object optionClassName function(option,index){return string} select,multiselect,radio returns option div className optionTitle function(option,index){return string} select,multiselect,radio returns option title(tooltip) optionIconSize function(option,index){return array} select,multiselect,radio returns option check icon size optionIconColor function(option,index){return string or array} select,multiselect,radio returns option check icon color(s) optionCheckedIcon function(option,index){return string} select,multiselect,radio returns option custom checked icon optionUncheckedIcon function(option,index){return string} select,multiselect,radio returns option custom unchecked icon all of these props can get an string eval as shorthand that can read option object
for example optionText='option.name' returns name property of option object as option text
for example optionShow='option.priority > 5' will set true for show property of options that have priority property greater than 5
Set option value
option.value(any)
<AIOButton
...
type='select'
options={[
{text:'Option1',value:'opt1'},
{text:'Option2',value:'opt2'},
{text:'Option3',value:'opt3'}
]}
value='opt2'
...
/>
optionValue props(function)
<AIOButton
...
type='select'
valueField={(option)=>option.id}
options={[
{text:'Option1',id:'opt1'},
{text:'Option2',id:'opt2'},
{text:'Option3',id:'opt3'}
]}
value='opt2'
...
/>
optionValue shorthand (string)
<AIOButton
...
type='select'
optionValue='option.id'
options={[
{text:'Option1',id:'opt1'},
{text:'Option2',id:'opt2'},
{text:'Option3',id:'opt3'}
]}
value='opt2'
...
/>
Set option text
option.text
<AIOButton
...
type='select'
options={[
{text:'Option1',value:'opt1'},
{text:'Option2',value:'opt2'},
{text:'Option3',value:'opt3'}
]}
...
/>
optionsText props
<AIOButton
...
type='select'
optionText={(option)=>{
let {priority = 0} = option;
if(priority < 5){
return `${option.name} (low priority)`
}
if(priority < 7){
return `${option.name} (medium priority)`
}
else{
return `${option.name} (high priority)`
}
}}
options={[
{name:'Option1',value:'opt1',priority:10},
{name:'Option2',value:'opt2',priority:6},
{name:'Option3',value:'opt3',priority:2}
]}
value='opt2'
...
/>
optionText shorthand (string)
<AIOButton
...
type='select'
optionText='option.name'
options={[
{name:'Option1',value:'opt1'},
{name:'Option2',value:'opt2'},
{name:'Option3',value:'opt3'}
]}
value='opt2'
...
/>
Set option className
option.className (string)
<AIOButton
...
type='select'
options={[
{text:'Option1',value:'opt1',className:'high-priority'},
{text:'Option2',value:'opt2',className:'medium-priority'},
{text:'Option3',value:'opt3',className:'low-priority'}
]}
value='opt2'
...
/>
optionClassName props (function)
<AIOButton
...
type='select'
optionClassName={(option)=>{
let {priority = 0} = option;
if(priority < 5){return 'low-priority'}
if(priority < 7){return 'medium-priority'}
else{return 'high-priority'}
}}
options={[
{text:'Option1',value:'opt1',priority:10},
{text:'Option2',value:'opt2',priority:6},
{text:'Option3',value:'opt3',priority:2}
]}
value='opt2'
...
/>
classNameField shorthand (string)
<AIOButton
...
type='select'
optionClassName='option.state + "-priority"'
options={[
{text:'Option1',value:'opt1',state:'low'},
{text:'Option2',value:'opt2',state:'medium'},
{text:'Option3',value:'opt3',state:'high'}
]}
value='opt2'
...
/>
Set option style
option.style (object)
<AIOButton
...
type='select'
options={[
{text:'Option1',value:'opt1',style:{color:'red'}},
{text:'Option2',value:'opt2',style:{color:'orange'}},
{text:'Option3',value:'opt3',style:{color:'yellow'}}
]}
value='opt2'
...
/>
optionStyle props (function)
<AIOButton
...
type='select'
optionStyle={(option)=>{
let {priority = 0} = option;
if(priority < 5){return {color:'yellow'}}
if(priority < 7){return {color:'orange'}}
else{return {color:'red'}}
}}
options={[
{name:'Option1',value:'opt1',priority:10},
{name:'Option2',value:'opt2',priority:6},
{name:'Option3',value:'opt3',priority:2}
]}
value='opt2'
...
/>
optionStyle shorthand (string)
<AIOButton
...
type='select'
optionStyle='{color:option.color}'
options={[
{name:'Option1',value:'opt1',color:'red'},
{name:'Option2',value:'opt2',color:'orange'},
{name:'Option3',value:'opt3',color:'yellow'}
]}
value='opt2'
...
/>
Set option disabled
option.disabled (boolean)
<AIOButton
...
type='select'
options={[
{text:'Option1',value:'opt1'},
{text:'Option2',value:'opt2',disabled:true},
{text:'Option3',value:'opt3'}
]}
value='opt2'
...
/>
optionDisabled props (function)
<AIOButton
...
type='select'
disabledField={()=>option.priority < 5}}
options={[
{text:'Option1',value:'opt1',priority:10},
{text:'Option2',value:'opt2',priority:8},
{text:'Option3',value:'opt3',priority:4}
]}
value='opt2'
...
/>
optionDisabled shorthand (string)
<AIOButton
...
type='select'
optionDisabled='option.priority < 5'
options={[
{text:'Option1',value:'opt1',priority:10},
{text:'Option2',value:'opt2',priority:8},
{text:'Option3',value:'opt3',priority:4}
]}
value='opt2'
...
/>
Set option show
option.show (boolean)
<AIOButton
...
type='select'
options={[
{text:'Option1',value:'opt1'},
{text:'Option2',value:'opt2',show:false},
{text:'Option3',value:'opt3'}
]}
value='opt2'
...
/>
optionShow props(function)
<AIOButton
...
type='select'
optionShow={()=>option.priority > 5}}
options={[
{text:'Option1',value:'opt1',priority:10},
{text:'Option2',value:'opt2',priority:8},
{text:'Option3',value:'opt3',priority:4}
]}
value='opt2'
...
/>
optionShow shorthand (string)
<AIOButton
...
type='select'
optionShow='option.priority > 5'
options={[
{text:'Option1',value:'opt1',priority:10},
{text:'Option2',value:'opt2',priority:8},
{text:'Option3',value:'opt3',priority:4}
]}
value='opt2'
...
/>
Set option checked
option.checked (boolean)
<AIOButton
type='select'
text='Setting'
options={[
{text:'Option1',key:'opt1',checked:opt1},
{text:'Option2',key:'opt2',checked:opt2},
{text:'Option3',key:'opt3',checked:opt3}
]}
value='opt2'
onChange={(value,option)=>this.setState({[option.key]:!option.checked})}
/>
optionChecked props (function)
<AIOButton
type='select'
text='Setting'
optionChecked={(option)=>this.state[option.key]}
options={[
{text:'Option1',key:'opt1'},
{text:'Option2',key:'opt2'},
{text:'Option3',key:'opt3'}
]}
onChange={(value,option)=>this.setState({[option.key]:!this.state[option.key]})}
/>
optionChecked shorthand (string)
<AIOButton
type='select'
text='Setting'
optionChecked='option.value'
options={[
{text:'Option1',value:opt1,key:'opt1'},
{text:'Option2',value:opt2,key:'opt2'},
{text:'Option3',value:opt3,key:'opt3'}
]}
onChange={(value,option)=>this.setState({[option.key]:!value})}
/>
Set option before
option.before(boolean)
<AIOButton
type='select'
className='button'
options={[
{text:'Option1',value:'opt1',before:<Icon path={mdiAccount} size={0.8}/>},
{text:'Option2',value:'opt2',before:<Icon path={mdiTag} size={0.8}/>},
{text:'Option3',value:'opt3',before:<Icon path={mdiAttachment} size={0.8}/>}
]}
value={opt}
onChange={(value)=>this.setState({opt:value})}
/>
optionBefore props (function)
<AIOButton
type='select'
className='button'
optionBefore={(option)=>{
if(option.type === 'account'){return <Icon path={mdiAccount} size={0.8}/>}
if(option.type === 'tag'){return <Icon path={mdiTag} size={0.8}/>}
if(option.type === 'attachment'){return <Icon path={mdiAttachment} size={0.8}/>}
}}
options={[
{text:'Option1',value:'opt1',type:'account'},
{text:'Option2',value:'opt2',type:'tag'},
{text:'Option3',value:'opt3',type:'attachment'}
]}
value={opt}
onChange={(value)=>this.setState({opt:value})}
/>
optionBefore shorthand (string)
<AIOButton
type='select'
className='button'
optionBefore='option.value + " - "'
options={[
{text:'Option1',value:'opt1'},
{text:'Option2',value:'opt2'},
{text:'Option3',value:'opt3'}
]}
value={opt}
onChange={(value)=>this.setState({opt:value})}
/>
Set option after
option.after (boolean)
<AIOButton
type='select'
className='button'
options={[
{text:'Option1',value:'opt1',after:<div className='after'>account</div>},
{text:'Option2',value:'opt2',after:<div className='after'>tag</div>},
{text:'Option3',value:'opt3',after:<div className='after'>attachment</div>}
]}
value={opt}
onChange={(value)=>this.setState({opt:value})}
/>
optionAfter props(function)
<AIOButton
type='select'
open={true}
className='button'
optionAfter={(option)=>{
return <div className='after'>{option.type}</div>
}}
options={[
{text:'Option1',value:'opt1',type:'account'},
{text:'Option2',value:'opt2',type:'tag'},
{text:'Option3',value:'opt3',type:'attachment'}
]}
value={opt}
onChange={(value)=>this.setState({opt:value})}
/>
optionAfter shorthand (string)
<AIOButton
type='select'
className='button'
optionAfter='" - " + option.value'
options={[
{text:'Option1',value:'opt1'},
{text:'Option2',value:'opt2'},
{text:'Option3',value:'opt3'}
]}
value={opt}
onChange={(value)=>this.setState({opt:value})}
/>
5.3.2
2 years ago
5.2.3
2 years ago
5.3.1
2 years ago
5.2.2
2 years ago
5.3.0
2 years ago
5.2.1
2 years ago
5.2.0
2 years ago
5.1.0
2 years ago
5.0.0
2 years ago
6.0.0
2 years ago
4.3.2
2 years ago
4.2.3
2 years ago
4.3.1
2 years ago
4.2.2
2 years ago
4.2.5
2 years ago
4.2.4
2 years ago
4.3.0
2 years ago
4.2.1
2 years ago
4.2.0
2 years ago
3.0.1
2 years ago
3.0.0
2 years ago
4.1.4
2 years ago
4.1.3
2 years ago
2.1.1
2 years ago
2.0.2
2 years ago
4.1.0
2 years ago
4.0.1
2 years ago
4.0.0
2 years ago
4.1.2
2 years ago
4.1.1
2 years ago
2.1.0
2 years ago
2.0.1
2 years ago
2.0.0
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago