UNPKG

react-smtc-ui-utils

Version:

react-smtc-ui-utils React component

195 lines (194 loc) 8.83 kB
"use strict"; 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;