UNPKG

@talend/react-components

Version:
110 lines (108 loc) 3.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _Actions = require("../../Actions"); var _constants = require("../utils/constants"); var _CellTitleInput = _interopRequireDefault(require("./CellTitleInput.component")); var _CellLink = _interopRequireDefault(require("../CellLink/CellLink.component")); var _TooltipTrigger = _interopRequireDefault(require("../../TooltipTrigger")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const { TITLE_MODE_TEXT, TITLE_MODE_INPUT } = _constants.cellTitleDisplayModes; /** * Component that selects and renders the requested title display mode */ function CellTitleSelector(props) { const { id, cellData, className, displayMode, onClick, linkAs, onEditSubmit, onEditCancel, rowData, columnData, tooltip } = props; if (displayMode === TITLE_MODE_INPUT) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CellTitleInput.default, { id: id && `${id}-input`, cellData: cellData, rowData: rowData, onEditSubmit: onEditSubmit, onEditCancel: onEditCancel }); } if (onClick) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.Action, { ...columnData, id: id && `${id}-btn`, icon: undefined, className: className, onClick: event => onClick(event, rowData), role: "link", bsStyle: "link", label: cellData, type: "button", tooltip: tooltip || cellData }); } if (linkAs) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CellLink.default, { cellData: cellData, rowData: rowData, columnData: { ...columnData, id, linkAs, tooltip }, className: className }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipTrigger.default, { label: tooltip || cellData, tooltipPlacement: "top", children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { id: id, className: className, children: cellData }) }); } CellTitleSelector.propTypes = { /** The id prefix. */ id: _propTypes.default.string, /** The input value. */ cellData: _propTypes.default.string.isRequired, /** The title element className. */ className: _propTypes.default.string, /** The display mode. */ displayMode: _propTypes.default.oneOf([TITLE_MODE_TEXT, TITLE_MODE_INPUT]), /** The onClick callback triggered on title main button click. */ onClick: _propTypes.default.func, // The "as" property expected in a Link to generate a simple href. linkAs: _propTypes.default.element, /** Input mode : the cancel callback on ESC keydown. */ onEditCancel: _propTypes.default.func, /** Input mode : the submit callback on ENTER keydown or blur. */ onEditSubmit: _propTypes.default.func, /** The column item */ columnData: _propTypes.default.object, // eslint-disable-line react/forbid-prop-types /** The collection item. */ rowData: _propTypes.default.object, // eslint-disable-line react/forbid-prop-types /** The title element tooltip */ tooltip: _propTypes.default.string }; var _default = exports.default = CellTitleSelector; //# sourceMappingURL=CellTitleSelector.component.js.map