@flexis/ui
Version:
Styleless React Components
58 lines • 5.13 kB
JavaScript
import { __decorate } from "tslib";
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { Bind, omit } from '../../helpers';
import { SelectValuePropType } from '../common/types';
import { style, classes } from './CustomFlatSelect.st.css';
let CustomFlatSelectOption = /** @class */ (() => {
class CustomFlatSelectOption extends PureComponent {
render() {
const { className, optionId, id, type, name, value, checked, disabled, children, ...props } = this.props;
return (<li id={optionId} role='option' aria-selected={checked} aria-disabled={disabled} {...omit(props, ['onChange'])} className={style(classes.option, className)}>
<label className={classes.label}>
<input className={classes.input} id={id} type={type} name={name} checked={checked} onChange={this.onChange} value={value} disabled={disabled}/>
<span className={classes.face} onClick={this.onFaceClick}>
{children}
</span>
</label>
</li>);
}
onChange(event) {
const { onChange, value } = this.props;
if (typeof onChange === 'function') {
onChange(value, event);
}
}
onFaceClick(event) {
const { target, currentTarget } = event;
if (target === currentTarget) {
return;
}
const input = currentTarget.previousElementSibling;
input.click();
}
}
CustomFlatSelectOption.propTypes = {
id: PropTypes.string,
type: PropTypes.oneOf([
'radio',
'checkbox'
]),
name: PropTypes.string,
onChange: PropTypes.func,
value: SelectValuePropType,
checked: PropTypes.bool,
disabled: PropTypes.bool,
children: PropTypes.node.isRequired
};
CustomFlatSelectOption.defaultProps = {
checked: false,
disabled: false
};
__decorate([
Bind()
], CustomFlatSelectOption.prototype, "onChange", null);
return CustomFlatSelectOption;
})();
export { CustomFlatSelectOption };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tRmxhdFNlbGVjdE9wdGlvbi5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9DdXN0b21GbGF0U2VsZWN0L0N1c3RvbUZsYXRTZWxlY3RPcHRpb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUtiLGFBQWEsRUFDYixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBRU4sSUFBSSxFQUNKLElBQUksRUFDSixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRU4sbUJBQW1CLEVBQ25CLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNOLEtBQUssRUFDTCxPQUFPLEVBQ1AsTUFBTSwyQkFBMkIsQ0FBQztBQW1CbkM7SUFBQSxNQUFhLHNCQUF1QixTQUFRLGFBQTJDO1FBcUJ0RixNQUFNO1lBRUwsTUFBTSxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsRUFBRSxFQUNGLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLEdBQUcsS0FBSyxFQUNSLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUVmLE9BQU8sQ0FDTixDQUFDLEVBQUUsQ0FDRixFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FDYixJQUFJLENBQUMsUUFBUSxDQUNiLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUN2QixhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUM5QixTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUU1QztJQUFBLENBQUMsS0FBSyxDQUNMLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FFekI7S0FBQSxDQUFDLEtBQUssQ0FDTCxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQ3pCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNQLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNYLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNYLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUNqQixRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3hCLEtBQUssQ0FBQyxDQUFDLEtBQWUsQ0FBQyxDQUN2QixRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFFcEI7S0FBQSxDQUFDLElBQUksQ0FDSixTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQ3hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FFMUI7TUFBQSxDQUFDLFFBQVEsQ0FDVjtLQUFBLEVBQUUsSUFBSSxDQUNQO0lBQUEsRUFBRSxLQUFLLENBQ1I7R0FBQSxFQUFFLEVBQUUsQ0FBQyxDQUNMLENBQUM7UUFDSCxDQUFDO1FBR08sUUFBUSxDQUFDLEtBQWtCO1lBRWxDLE1BQU0sRUFDTCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUVmLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO2dCQUNuQyxRQUFRLENBQ1AsS0FBSyxFQUNMLEtBQUssQ0FDTCxDQUFDO2FBQ0Y7UUFDRixDQUFDO1FBRU8sV0FBVyxDQUFDLEtBQWlCO1lBRXBDLE1BQU0sRUFDTCxNQUFNLEVBQ04sYUFBYSxFQUNiLEdBQUcsS0FBSyxDQUFDO1lBRVYsSUFBSSxNQUFNLEtBQUssYUFBYSxFQUFFO2dCQUM3QixPQUFPO2FBQ1A7WUFFRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsc0JBQTBDLENBQUM7WUFFdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQzs7SUFqR00sZ0NBQVMsR0FBRztRQUNsQixFQUFFLEVBQVEsU0FBUyxDQUFDLE1BQU07UUFDMUIsSUFBSSxFQUFNLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDekIsT0FBTztZQUNQLFVBQVU7U0FDVixDQUFDO1FBQ0YsSUFBSSxFQUFNLFNBQVMsQ0FBQyxNQUFNO1FBQzFCLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSTtRQUN4QixLQUFLLEVBQUssbUJBQW1CO1FBQzdCLE9BQU8sRUFBRyxTQUFTLENBQUMsSUFBSTtRQUN4QixRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDeEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVTtLQUNuQyxDQUFDO0lBRUssbUNBQVksR0FBRztRQUNyQixPQUFPLEVBQUcsS0FBSztRQUNmLFFBQVEsRUFBRSxLQUFLO0tBQ2YsQ0FBQztJQW1ERjtRQURDLElBQUksRUFBRTswREFjTjtJQWlCRiw2QkFBQztLQUFBO1NBcEdZLHNCQUFzQiJ9