@talend/react-components
Version:
Set of react components.
56 lines (55 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = PieChart;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _PieChartIcon = _interopRequireDefault(require("./PieChartIcon.component"));
var _PieChartButton = _interopRequireDefault(require("./PieChartButton.component"));
var _TooltipTrigger = _interopRequireDefault(require("../TooltipTrigger"));
var _OverlayTrigger = _interopRequireDefault(require("../OverlayTrigger"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* This function wrap the button with a TooltipTrigger
* @param {Element} btn the button element ( may be wrapped by overlay trigger )
* @param {boolean} tooltip tell if the tooltip has to be showed
* @param {string} label the label to show on the tooltip
* @param {string} tooltipPlacement the tooltip placement
*/function decorateWithTooltip(tooltip, label, tooltipPlacement, Component, props) {
if (!tooltip || !label) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {
...props
});
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipTrigger.default, {
label: label,
tooltipPlacement: tooltipPlacement,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {
...props
})
})
});
}
function getPieChartComponent(onClick) {
return onClick ? _PieChartButton.default : _PieChartIcon.default;
}
function PieChart({
tooltip,
tooltipPlacement,
...props
}) {
return decorateWithTooltip(tooltip, props.label, tooltipPlacement, getPieChartComponent(props.onClick), props);
}
PieChart.propTypes = {
label: _propTypes.default.string,
onClick: _propTypes.default.func,
tooltip: _propTypes.default.bool,
tooltipPlacement: _OverlayTrigger.default.propTypes.placement
};
PieChart.defaultProps = {
tooltipPlacement: 'top'
};
PieChart.displayName = 'PieChart';
//# sourceMappingURL=PieChart.component.js.map