@talend/react-components
Version:
Set of react components.
125 lines (124 loc) • 5.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.RecordsViewerBranch = void 0;
exports.isLoaded = isLoaded;
var _react = require("react");
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Skeleton = _interopRequireDefault(require("../../../Skeleton"));
var _Badges = require("../../Badges");
var _Icons = require("../../Icons");
var _RecordsViewerModule = _interopRequireDefault(require("../RecordsViewer.module.scss"));
var _lodash = require("lodash");
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); } /**
* Used with the lazy loading to allow the render of the skeleton.
* @param {object} value
*/
function isLoaded(value) {
return (0, _lodash.get)(value, 'loaded') !== false;
}
class RecordsViewerBranch extends _react.Component {
constructor(...args) {
super(...args);
_defineProperty(this, "onKeyDown", event => {
switch (event.key) {
case 'Enter':
case ' ':
case 'Space':
event.preventDefault(); // prevent scroll with space
event.stopPropagation();
this.onClickRecordsBranch(event);
break;
default:
break;
}
});
_defineProperty(this, "onClickRecordsBranch", event => {
this.props.onToggle(event, {
jsonpath: this.props.jsonpath,
opened: this.props.opened,
value: this.props.value
}, this.props.index);
});
}
render() {
const {
className,
dataKey,
nodeHighlighted,
opened,
level,
type,
value
} = this.props;
if (!isLoaded(value)) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: (0, _classnames.default)(_RecordsViewerModule.default['tc-records-viewer-skeleton'], 'tc-records-viewer-skeleton', className),
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {})
});
}
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: (0, _classnames.default)(_RecordsViewerModule.default['tc-records-viewer-branch'], 'tc-records-viewer-branch', className),
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
className: (0, _classnames.default)(_RecordsViewerModule.default['tc-records-viewer-branch-content'], 'tc-records-viewer-branch-content', {
[_RecordsViewerModule.default['tc-records-viewer-branch-highlighted']]: nodeHighlighted,
'tc-records-viewer-branch-highlighted': nodeHighlighted
}),
onKeyDown: this.onKeyDown,
"data-testid": "records-branch",
onClick: this.onClickRecordsBranch,
tabIndex: "0",
role: "button",
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icons.TreeBranchIcon, {
dataKey: dataKey,
getIcon: this.props.getIcon,
index: this.props.index,
jsonpath: this.props.jsonpath,
onToggle: this.props.onToggle,
opened: opened,
useCustomIcon: type === 'object',
value: value
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: (0, _classnames.default)(_RecordsViewerModule.default['tc-records-viewer-branch-text'], 'tc-records-viewer-branch-text'),
children: this.props.getObjectBranchDatakey(dataKey, value)
}, "datakey"), level !== 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Badges.LengthBadge, {
lengthValue: this.props.getChildsCount(value)
}), this.props.renderBranchAdditionalValue && this.props.renderBranchAdditionalValue({
value,
opened
})]
}), opened && this.props.recursive({
type,
value: this.props.getChilds(value, (0, _lodash.get)(value, 'schema', this.props.sample.schema), type)
})]
});
}
}
exports.RecordsViewerBranch = RecordsViewerBranch;
_defineProperty(RecordsViewerBranch, "propTypes", {
className: _propTypes.default.string,
dataKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
getChilds: _propTypes.default.func,
getChildsCount: _propTypes.default.func,
getIcon: _propTypes.default.func,
getObjectBranchDatakey: _propTypes.default.func.isRequired,
index: _propTypes.default.number,
jsonpath: _propTypes.default.string,
level: _propTypes.default.number.isRequired,
nodeHighlighted: _propTypes.default.bool,
onToggle: _propTypes.default.func.isRequired,
opened: _propTypes.default.bool,
recursive: _propTypes.default.func,
renderBranchAdditionalValue: _propTypes.default.func,
sample: _propTypes.default.object,
type: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
value: _propTypes.default.object
});
var _default = exports.default = RecordsViewerBranch;
//# sourceMappingURL=RecordsViewerBranch.component.js.map