@aappddeevv/dynamics-client-ui
Version:
## What is it? A library to help you create great dynamics applications.
33 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/** Simple <select> with null option. */
const React = require("react");
const cx = require("classnames");
const styles = require("./Select.css");
const mergeDeepRight_1 = require("ramda/es/mergeDeepRight");
exports.DefaultElProps = {
select: {
component: "select"
},
option: {
component: "option"
}
};
/** If a NULL is used in the select, this is the explicit value. */
exports.NULL_OPTION_VALUE = "NULL";
exports.Select = (props) => {
const { options, value } = props;
const addNullOption = props.addNullOption ? props.addNullOption : false;
const onChange = props.onChange ? props.onChange : (v) => { };
const cprops = mergeDeepRight_1.default(exports.DefaultElProps, props.components || {});
//console.log("Select", value, options)
const SelectType = cprops.select.component;
const OptionType = cprops.option.component;
return (React.createElement(SelectType, Object.assign({ className: cx(styles.select, cprops.select.className), value: value, onChange: e => onChange(e.target.value) }, cprops.select.props),
addNullOption ? React.createElement("option", { value: "NULL" }) : null,
options.map(o => {
return (React.createElement(OptionType, Object.assign({ className: cx(styles.option, cprops.option.className), key: o.value, value: o.value }, cprops.option.props), o.label));
})));
};
exports.default = exports.Select;
//# sourceMappingURL=Select.js.map