@talend/react-components
Version:
Set of react components.
104 lines (102 loc) • 4.08 kB
JavaScript
;
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