@talend/react-containers
Version:
Provide connected components aka containers for @talend/react-cmf based on @talend/react-components.
71 lines (70 loc) • 2.39 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = MultiSelectTextMode;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactForms = _interopRequireDefault(require("@talend/react-forms"));
var _reactComponents = require("@talend/react-components");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function renderItem(props) {
const item = _reactComponents.VirtualizedList.rowUtils.getRowData(props.parent, props.index);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactComponents.Badge, {
style: props.style,
label: item.name,
selected: true
}, props.index);
}
renderItem.height = 35;
renderItem.propTypes = {
parent: _propTypes.default.object,
style: _propTypes.default.object,
index: _propTypes.default.number
};
function MultiSelectTextMode(props) {
const names = props.resolveName(props.value);
const titleMap = props.value.map((nextVal, index) => ({
name: names[index],
value: nextVal
}));
const TextModeTemplate = _reactForms.default.UIForm.TextModeTemplate;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextModeTemplate, {
id: props.id,
label: props.schema.title,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
style: {
height: 300
},
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactComponents.VirtualizedList, {
type: "tc-multiselect",
rowHeight: props.itemViewRender.rowHeight,
rowRenderers: {
'tc-multiselect': props.itemViewRender
},
collection: titleMap
})
})
});
}
if (process.env.NODE_ENV !== 'production') {
MultiSelectTextMode.propTypes = {
itemViewRender: _propTypes.default.func,
id: _propTypes.default.string,
resolveName: _propTypes.default.func,
schema: _propTypes.default.shape({
title: _propTypes.default.string,
titleMap: _propTypes.default.arrayOf(_propTypes.default.shape({
name: _propTypes.default.string.isRequired,
value: _propTypes.default.string.isRequired
}))
}).isRequired,
value: _propTypes.default.arrayOf(_propTypes.default.string)
};
}
MultiSelectTextMode.defaultProps = {
value: [],
itemViewRender: renderItem,
resolveName: value => value
};
//# sourceMappingURL=TextMode.component.js.map