@talend/react-containers
Version:
Provide connected components aka containers for @talend/react-cmf based on @talend/react-components.
97 lines (96 loc) • 3.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Action = _interopRequireDefault(require("../Action"));
var _FilterBar = _interopRequireDefault(require("../FilterBar"));
var _List = _interopRequireDefault(require("../List"));
var _TreeView = _interopRequireDefault(require("../TreeView"));
var _SelectObjectModule = _interopRequireDefault(require("./SelectObject.module.scss"));
var _reactComponents = require("@talend/react-components");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function SelectObject({
filteredData,
idAttr,
nameAttr,
results,
sourceData,
tree,
filter = {},
...props
}) {
let schema;
if (props.schema && props.selected) {
schema = {
properties: props.selected,
...props.schema
};
}
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: `tc-select-object ${_SelectObjectModule.default.wrapper}`,
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterBar.default, {
...filter,
className: (0, _classnames.default)(filter.className, _SelectObjectModule.default.filter),
id: props.id,
dockable: false,
navbar: false
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: _SelectObjectModule.default.container,
children: [!tree && !filteredData && /*#__PURE__*/(0, _jsxRuntime.jsx)(_List.default, {
...props.list,
id: `${props.id}-list`,
data: sourceData,
className: _SelectObjectModule.default.list
}), tree && !filteredData && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeView.default, {
...tree,
componentId: props.id,
noHeader: true,
data: sourceData,
className: _SelectObjectModule.default.tree
}), filteredData && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: _SelectObjectModule.default.results,
children: filteredData.map(data => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Action.default, {
className: (0, _classnames.default)({
active: results.selectedId === data.get(idAttr)
}),
onClick: event => results.onClick(event, data),
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h3", {
children: data.get(nameAttr)
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
children: data.get('currentPosition')
})]
}, data.get(idAttr)))
}), schema && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactComponents.JSONSchemaRenderer, {
schema: schema,
className: _SelectObjectModule.default.preview
})]
})]
});
}
SelectObject.displayName = 'SelectObject';
SelectObject.propTypes = {
id: _propTypes.default.string,
idAttr: _propTypes.default.string,
nameAttr: _propTypes.default.string,
tree: _propTypes.default.object,
list: _propTypes.default.object,
filter: _propTypes.default.object,
schema: _propTypes.default.object,
filteredData: _reactImmutableProptypes.default.List,
results: _propTypes.default.shape({
selectedId: _propTypes.default.string,
onClick: _propTypes.default.func
}),
sourceData: _reactImmutableProptypes.default.List,
selected: _propTypes.default.object
};
SelectObject.defaultProps = {
idAttr: 'id'
};
var _default = exports.default = SelectObject;
//# sourceMappingURL=SelectObject.component.js.map