UNPKG

@talend/react-components

Version:
97 lines (96 loc) 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; exports.headerClasses = headerClasses; exports.renderActions = renderActions; var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _reactI18next = require("react-i18next"); var _constants = _interopRequireDefault(require("../../constants")); var _translate = _interopRequireDefault(require("../../translate")); var _Action = _interopRequireDefault(require("../../Actions/Action")); var _HeaderModule = _interopRequireDefault(require("./Header.module.scss")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function headerClasses() { return (0, _classnames.default)(_HeaderModule.default['tc-listview-header'], 'tc-listview-header'); } function getAction(action, index) { function onClick(event) { if (action.onClick) { action.onClick(event, { value: event.target.value }); } } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Action.default, { label: action.label, icon: action.icon, onClick: onClick, disabled: action.disabled, tooltipPlacement: "bottom", inProgress: action.inProgress, hideLabel: true, link: true }, `${index}-listview-header-action`); } function renderActions(headerDefault = []) { if (headerDefault.length) { return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "actions", children: headerDefault.map(getAction) }); } return null; } function Header({ headerDefault, headerLabel, labelProps, nbItemsSelected, nbItems, required, t }) { function renderTitle() { const computedHeaderLabel = headerLabel || t('LISTVIEW_HEADER_TITLE', { defaultValue: 'Values' }); return /*#__PURE__*/(0, _jsxRuntime.jsxs)("strong", { ...labelProps, children: [computedHeaderLabel, required && '*'] }); } function renderCount() { if (nbItems >= 1 && nbItemsSelected >= 1) { return /*#__PURE__*/(0, _jsxRuntime.jsxs)("small", { children: ["(", t('LISTVIEW_HEADER_SELECTED', { count: nbItemsSelected, total: nbItems, defaultValue: '{{count}}/{{total}} selected' }), ")"] }); } return null; } return /*#__PURE__*/(0, _jsxRuntime.jsxs)("header", { className: headerClasses(), children: [renderTitle(), renderCount(), renderActions(headerDefault)] }); } Header.propTypes = { headerDefault: _propTypes.default.arrayOf(_propTypes.default.shape(_Action.default.propTypes)).isRequired, headerLabel: _propTypes.default.string, labelProps: _propTypes.default.object, required: _propTypes.default.bool, nbItems: _propTypes.default.number, nbItemsSelected: _propTypes.default.number, t: _propTypes.default.func }; Header.defaultProps = { t: (0, _translate.default)() }; var _default = exports.default = (0, _reactI18next.withTranslation)(_constants.default)(Header); //# sourceMappingURL=Header.component.js.map