@vs-form/vs-form
Version:
A schema-based form generator component for React using material-ui
41 lines (36 loc) • 1.63 kB
JavaScript
;
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var React = require('react');
var React__default = _interopDefault(React);
var Tooltip = _interopDefault(require('@material-ui/core/Tooltip'));
var classNames = _interopDefault(require('classnames'));
var Icon = _interopDefault(require('@material-ui/core/Icon'));
var SvgIcon = _interopDefault(require('@material-ui/core/SvgIcon'));
const BaseIcon = (props) => {
let ic;
if (props['icon']) {
const p = props;
const { tooltip, tooltipProps, icon, ...other } = p;
const cl = classNames('mdi', 'mdi-' + icon, p.className);
ic = React.createElement(Icon, Object.assign({}, other, { className: cl }));
}
else if (props['svg']) {
const p = props;
const { tooltip, tooltipProps, svg, ...other } = p;
ic = (React.createElement(SvgIcon, Object.assign({}, other),
React.createElement("path", { d: p.svg })));
}
else if (props['component']) {
const p = props;
const { tooltip, tooltipProps, component, ...other } = p;
ic = (React.createElement(SvgIcon, Object.assign({}, other, { component: p.component })));
}
if (ic) {
return props.tooltip ? React.createElement(Tooltip, Object.assign({ title: props.tooltip }, props.tooltipProps),
React.createElement("span", null, ic)) : ic;
}
else {
return React.createElement("div", null, "Icon: property icon, svg or component must be provided");
}
};
exports.BaseIcon = BaseIcon;