react-smtc-ui-utils
Version:
react-smtc-ui-utils React component
195 lines (194 loc) • 8.83 kB
JavaScript
exports.__esModule = true;
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _semanticUiReact = require("semantic-ui-react");
var _ObjectsUtils = require("../static/ObjectsUtils");
var _lodash = _interopRequireDefault(require("lodash"));
var _PublicTables = require("./PublicTables");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
var DefaultResponsiveTableBody = exports["default"] = /*#__PURE__*/function (_React$Component) {
function DefaultResponsiveTableBody(props) {
var _this;
_this = _React$Component.call(this, props) || this;
_this.state = {};
return _this;
}
_inheritsLoose(DefaultResponsiveTableBody, _React$Component);
var _proto = DefaultResponsiveTableBody.prototype;
_proto.modifyCheckedArray = function modifyCheckedArray(val) {
var modifyCheckedArray = this.props.modifyCheckedArray;
if (modifyCheckedArray) {
modifyCheckedArray(val);
}
};
_proto.render = function render() {
var _this2 = this;
_objectDestructuringEmpty(this.state);
var _this$props = this.props,
defaultResponsiveParam = _this$props.defaultResponsiveParam,
headerMap = _this$props.headerMap,
dataSet = _this$props.dataSet,
hiddenHeaderMap = _this$props.hiddenHeaderMap,
checkedIds = _this$props.checkedIds;
var image = defaultResponsiveParam.image,
header = defaultResponsiveParam.header,
meta = defaultResponsiveParam.meta,
description = defaultResponsiveParam.description,
extra = defaultResponsiveParam.extra,
unstackable = defaultResponsiveParam.unstackable;
var checkBox = findCheckBox(headerMap, hiddenHeaderMap);
var checkBoxDiv = /*#__PURE__*/_react["default"].createElement("div", null);
if (!_lodash["default"].isEmpty(checkBox)) {
var checkBoxStyle = checkBox.checkBoxStyle,
accessor = checkBox.accessor;
var value = dataSet[accessor] === undefined ? '' : dataSet[accessor];
checkBoxDiv = /*#__PURE__*/_react["default"].createElement(_PublicTables.ColumnCheckBox, {
id: value,
checkBoxStyle: checkBoxStyle,
checked: _lodash["default"].includes(checkedIds, value),
getCallBackId: function getCallBackId(val) {
return _this2.modifyCheckedArray(val);
}
});
}
return /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item.Group, {
divided: true,
unstackable: unstackable
}, /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item, null, renderImage(headerMap, dataSet, image, this.props, hiddenHeaderMap), /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item.Content, null, checkBoxDiv, renderHeader(headerMap, dataSet, header, this.props, hiddenHeaderMap), renderMeta(headerMap, dataSet, meta, this.props, hiddenHeaderMap), renderDescription(headerMap, dataSet, description, this.props, hiddenHeaderMap), renderExtra(headerMap, dataSet, extra, this.props, hiddenHeaderMap))));
};
return DefaultResponsiveTableBody;
}(_react["default"].Component);
DefaultResponsiveTableBody.propTypes = process.env.NODE_ENV !== "production" ? {
defaultResponsiveParam: _propTypes["default"].object,
headerMap: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object]),
dataSet: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object]),
hiddenHeaderMap: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object])
} : {};
function renderImage(headerMap, dataSet, image, parentProps, hiddenHeaderMap) {
if ((0, _ObjectsUtils.isStringEmpty)(image) || _lodash["default"].isEmpty(image)) {
return null;
}
var accessor = image.accessor,
size = image.size;
var src = dataSet[accessor];
return /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item.Image, {
size: (0, _ObjectsUtils.isStringEmpty)(size) ? "tiny" : size,
src: src
});
}
function renderHeader(headerMap, dataSet, header, parentProps, hiddenHeaderMap) {
if ((0, _ObjectsUtils.isStringEmpty)(header) || _lodash["default"].isEmpty(header)) {
return null;
}
var accessor = header.accessor,
prefix = header.prefix,
suffix = header.suffix,
enableColFormat = header.enableColFormat;
var content = generateDataByPreAndSuffix(dataSet, accessor, prefix, suffix);
if (enableColFormat) {
content = colFormatter(headerMap, hiddenHeaderMap, accessor, content, dataSet);
}
return /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item.Header, {
content: content
});
}
function renderMeta(headerMap, dataSet, meta, parentProps, hiddenHeaderMap) {
if ((0, _ObjectsUtils.isStringEmpty)(meta) || _lodash["default"].isEmpty(meta)) {
return null;
}
var accessor = meta.accessor,
prefix = meta.prefix,
suffix = meta.suffix,
enableColFormat = meta.enableColFormat;
var content = generateDataByPreAndSuffix(dataSet, accessor, prefix, suffix);
if (enableColFormat) {
content = colFormatter(headerMap, hiddenHeaderMap, accessor, content, dataSet);
}
return /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item.Meta, {
content: content
});
}
function renderDescription(headerMap, dataSet, description, parentProps, hiddenHeaderMap) {
if ((0, _ObjectsUtils.isStringEmpty)(description) || _lodash["default"].isEmpty(description)) {
return null;
}
var accessor = description.accessor,
prefix = description.prefix,
suffix = description.suffix,
enableColFormat = description.enableColFormat;
var content = generateDataByPreAndSuffix(dataSet, accessor, prefix, suffix);
if (enableColFormat) {
content = colFormatter(headerMap, hiddenHeaderMap, accessor, content, dataSet);
}
return /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item.Description, {
content: content
});
}
function renderExtra(headerMap, dataSet, extra, parentProps, hiddenHeaderMap) {
if ((0, _ObjectsUtils.isStringEmpty)(extra) || _lodash["default"].isEmpty(extra)) {
return null;
}
var accessor = extra.accessor,
prefix = extra.prefix,
suffix = extra.suffix,
enableColFormat = extra.enableColFormat;
var content = generateDataByPreAndSuffix(dataSet, accessor, prefix, suffix);
if (enableColFormat) {
content = colFormatter(headerMap, hiddenHeaderMap, accessor, content, dataSet);
}
return /*#__PURE__*/_react["default"].createElement(_semanticUiReact.Item.Extra, {
content: content
});
}
function generateDataByPreAndSuffix(dataSet, accessor, prefix, suffix) {
//console.log(dataSet[accessor])
var content = (0, _ObjectsUtils.isStringEmpty)(dataSet[accessor]) ? "" : dataSet[accessor];
if (!(0, _ObjectsUtils.isStringEmpty)(prefix)) {
content = prefix + content;
}
if (!(0, _ObjectsUtils.isStringEmpty)(suffix)) {
content = content + suffix;
}
return content;
}
function colFormatter(headerMap, hiddenHeaderMap, responsiveAccessor, content, dataSet) {
var colFormat = _lodash["default"].findLast(headerMap, function (element) {
var accessor = element.props.accessor;
return accessor === responsiveAccessor;
});
if (_lodash["default"].isEmpty(colFormat)) {
colFormat = _lodash["default"].findLast(hiddenHeaderMap, function (element) {
var accessor = element.props.accessor;
return accessor === responsiveAccessor;
});
}
if (!_lodash["default"].isEmpty(colFormat)) {
var columnFormat = colFormat.props.columnFormat;
if (columnFormat) {
return columnFormat(content, dataSet);
}
}
return "";
}
function findCheckBox(headerMap, hiddenHeaderMap) {
var checkBox = _lodash["default"].findLast(headerMap, function (element) {
var colAsCheckBox = element.props.colAsCheckBox;
return colAsCheckBox === true;
});
if (_lodash["default"].isEmpty(checkBox)) {
checkBox = _lodash["default"].findLast(hiddenHeaderMap, function (element) {
var colAsCheckBox = element.props.colAsCheckBox;
return colAsCheckBox === true;
});
}
if (!_lodash["default"].isEmpty(checkBox)) {
return checkBox.props;
}
return null;
}
module.exports = exports.default;
;