UNPKG

@aappddeevv/dynamics-client-ui

Version:

## What is it? A library to help you create great dynamics applications.

33 lines 1.54 kB
"use strict"; 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