UNPKG

@talend/react-components

Version:
104 lines (102 loc) 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.TreeBranchIcon = void 0; exports.getDefaultIcon = getDefaultIcon; var _react = require("react"); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _reactI18next = require("react-i18next"); var _Icon = _interopRequireDefault(require("../../../Icon")); var _TreeBranchIconModule = _interopRequireDefault(require("./TreeBranchIcon.module.scss")); var _constants = _interopRequireDefault(require("../../../constants")); var _translate = _interopRequireDefault(require("../../../translate")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /** * Allow to use custom get icon function. */ function getDefaultIcon({ useCustomIcon, getIcon, opened, ...props }) { if (useCustomIcon && getIcon) { return getIcon(opened, props); } return { name: opened ? 'talend-caret-down' : 'talend-chevron-left' }; } /** * Render a standard caret icon. * Customizable with useCustomIcon and getIcon. */ class TreeBranchIcon extends _react.PureComponent { constructor(...args) { super(...args); _defineProperty(this, "onClick", event => { this.props.onToggle(event, { value: this.props.value, opened: this.props.opened, jsonpath: this.props.jsonpath }, this.props.index); }); } render() { const { className, opened, dataKey, jsonpath, useCustomIcon, style, t } = this.props; const icon = getDefaultIcon(this.props); const title = opened ? t('TREE_BRANCH_ICON_TITLE_COLLAPSED', { defaultValue: 'Collapse' }) : t('TREE_BRANCH_ICON_TITLE_EXPANDED', { defaultValue: 'Expand' }); const iconClassNames = (0, _classnames.default)(icon.className, { [_TreeBranchIconModule.default['tc-tree-branch-icon-caret']]: !useCustomIcon, 'tc-tree-branch-icon-caret': !useCustomIcon, [_TreeBranchIconModule.default['tc-tree-branch-icon-caret-right']]: !opened, 'tc-tree-branch-icon-caret-right': !opened }); return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { className: (0, _classnames.default)(_TreeBranchIconModule.default['tc-tree-branch-icon'], 'tc-tree-branch-icon', className), style: style, "data-testid": "tree-branch-icon", children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, { className: iconClassNames, name: icon.name, title: `${title} ${dataKey} (${jsonpath})` }) }); } } exports.TreeBranchIcon = TreeBranchIcon; _defineProperty(TreeBranchIcon, "propTypes", { className: _propTypes.default.string, dataKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), index: _propTypes.default.number, opened: _propTypes.default.bool, jsonpath: _propTypes.default.string, onToggle: _propTypes.default.func.isRequired, style: _propTypes.default.object, t: _propTypes.default.func, useCustomIcon: _propTypes.default.bool, value: _propTypes.default.object }); _defineProperty(TreeBranchIcon, "defaultProps", { t: (0, _translate.default)(), useCustomIcon: false }); var _default = exports.default = (0, _reactI18next.withTranslation)(_constants.default)(TreeBranchIcon); //# sourceMappingURL=TreeBranchIcon.component.js.map