UNPKG

@talend/react-components

Version:
125 lines (124 loc) 5.57 kB
"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