UNPKG

@talend/react-components

Version:
132 lines (129 loc) 4.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decorateWithOverlay = decorateWithOverlay; exports.default = PieChartButtonComponent; exports.wrapMouseEvent = wrapMouseEvent; var _propTypes = _interopRequireDefault(require("prop-types")); var _Actions = require("../Actions"); var _OverlayTrigger = _interopRequireDefault(require("../OverlayTrigger")); var _theme = require("../theme"); var _PieChartIcon = _interopRequireWildcard(require("./PieChartIcon.component")); var _PieChartModule = _interopRequireDefault(require("./PieChart.module.scss")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const theme = (0, _theme.getTheme)(_PieChartModule.default); /** * This function add an OverlayTrigger wrapping the button if defined * @param {Element} btn the current button * @param {string} overlayPlacement the overlay placement * @param {Element} overlayComponent the overlay component * @param {string} overlayId the id to be set for the overlay * @param {callback} overlayRef the callback to be set for the overlay to bind ref */ function decorateWithOverlay(btn, overlayPlacement, overlayComponent, overlayId, overlayRef) { if (!overlayComponent) { return btn; } return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_OverlayTrigger.default, { trigger: "click", rootClose: true, placement: overlayPlacement, overlay: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { id: overlayId, children: overlayComponent }), ref: overlayRef, children: btn }) }); } /** * This function wrap the event when we don't have an overlay component * @param {function} mouseEvent the event to wrap ( mouseClick ) * @param {Element} overlayComponent tell if there is an overlay component * @param {string} label the label of the component * @param {object} rest the rest of the props * @param {object} model the model of the component */ function wrapMouseEvent(mouseEvent, overlayComponent, label, rest, model) { if (overlayComponent || !mouseEvent) { return null; } return event => mouseEvent(event, { action: { label, ...rest }, model }); } function PieChartButtonComponent({ available, buttonRef, className, display, hideLabel, label, labelIndex, loading, minimumPercentage, model, onClick, onMouseDown, overlayComponent, overlayId, overlayPlacement, overlayRef, size, ...rest }) { if (!available) { return null; } const rClick = wrapMouseEvent(onClick, overlayComponent, label, rest, model); const rMouseDown = wrapMouseEvent(onMouseDown, overlayComponent, label, rest, model); const btn = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.Action, { className: theme('tc-pie-chart-button', className), onMouseDown: rMouseDown, onClick: rClick, buttonRef: buttonRef, bsStyle: "link", role: "button", ...rest, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieChartIcon.default, { display: display, hideLabel: hideLabel, labelIndex: labelIndex, loading: loading, minimumPercentage: minimumPercentage, model: model, size: size }) }); return decorateWithOverlay(btn, overlayPlacement, overlayComponent, overlayId, overlayRef); } PieChartButtonComponent.propTypes = { ..._PieChartIcon.pieChartIconPropTypes, available: _propTypes.default.bool, buttonRef: _propTypes.default.func, className: _propTypes.default.string, getComponent: _propTypes.default.func, label: _propTypes.default.string, onClick: _propTypes.default.func, onMouseDown: _propTypes.default.func, overlayComponent: _propTypes.default.element, overlayId: _propTypes.default.string, overlayPlacement: _OverlayTrigger.default.propTypes.placement, overlayRef: _propTypes.default.func }; PieChartButtonComponent.defaultProps = { available: true, overlayId: 'pie-chart-popover', overlayPlacement: 'bottom' }; PieChartButtonComponent.displayName = 'PieChartButton'; //# sourceMappingURL=PieChartButton.component.js.map