@grafana/ui
Version:
Grafana Components Library
59 lines (52 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var css = require('@emotion/css');
var RCCascader = require('@rc-component/cascader');
var ThemeContext = require('../../themes/ThemeContext.cjs');
var Button = require('../Button/Button.cjs');
var optionMappings = require('../Cascader/optionMappings.cjs');
var styles = require('../Cascader/styles.cjs');
var Icon = require('../Icon/Icon.cjs');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var RCCascader__default = /*#__PURE__*/_interopDefaultCompat(RCCascader);
;
const ButtonCascader = (props) => {
const { onChange, className, loadData, icon, buttonProps, hideDownIcon, variant, disabled, ...rest } = props;
const styles$1 = ThemeContext.useStyles2(getStyles);
const cascaderStyles = ThemeContext.useStyles2(styles.getCascaderStyles);
let content = props.children;
if (!hideDownIcon) {
content = [props.children, /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: "angle-down", className: styles$1.icons.right }, "down-icon")];
}
return /* @__PURE__ */ jsxRuntime.jsx(
RCCascader__default.default,
{
onChange: optionMappings.onChangeCascader(onChange),
loadData: optionMappings.onLoadDataCascader(loadData),
popupClassName: css.cx(cascaderStyles.dropdown, styles$1.popup),
...rest,
expandIcon: null,
children: /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { icon, disabled, variant, ...buttonProps != null ? buttonProps : {}, children: content })
}
);
};
ButtonCascader.displayName = "ButtonCascader";
const getStyles = (theme) => {
return {
popup: css.css({
label: "popup",
zIndex: theme.zIndex.dropdown
}),
icons: {
right: css.css({
margin: "1px 0 0 4px"
}),
left: css.css({
margin: "-1px 4px 0 0"
})
}
};
};
exports.ButtonCascader = ButtonCascader;
//# sourceMappingURL=ButtonCascader.cjs.map