UNPKG

react-smtc-ui-utils

Version:

react-smtc-ui-utils React component

190 lines 7.73 kB
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); } import React from 'react'; import PropTypes from "prop-types"; import { Item } from "semantic-ui-react"; import { isStringEmpty } from "../static/ObjectsUtils"; import _ from "lodash"; import { ColumnCheckBox } from "./PublicTables"; var DefaultResponsiveTableBody = /*#__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.createElement("div", null); if (!_.isEmpty(checkBox)) { var checkBoxStyle = checkBox.checkBoxStyle, accessor = checkBox.accessor; var value = dataSet[accessor] === undefined ? '' : dataSet[accessor]; checkBoxDiv = /*#__PURE__*/React.createElement(ColumnCheckBox, { id: value, checkBoxStyle: checkBoxStyle, checked: _.includes(checkedIds, value), getCallBackId: function getCallBackId(val) { return _this2.modifyCheckedArray(val); } }); } return /*#__PURE__*/React.createElement(Item.Group, { divided: true, unstackable: unstackable }, /*#__PURE__*/React.createElement(Item, null, renderImage(headerMap, dataSet, image, this.props, hiddenHeaderMap), /*#__PURE__*/React.createElement(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.Component); export { DefaultResponsiveTableBody as default }; DefaultResponsiveTableBody.propTypes = process.env.NODE_ENV !== "production" ? { defaultResponsiveParam: PropTypes.object, headerMap: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), dataSet: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), hiddenHeaderMap: PropTypes.oneOfType([PropTypes.array, PropTypes.object]) } : {}; function renderImage(headerMap, dataSet, image, parentProps, hiddenHeaderMap) { if (isStringEmpty(image) || _.isEmpty(image)) { return null; } var accessor = image.accessor, size = image.size; var src = dataSet[accessor]; return /*#__PURE__*/React.createElement(Item.Image, { size: isStringEmpty(size) ? "tiny" : size, src: src }); } function renderHeader(headerMap, dataSet, header, parentProps, hiddenHeaderMap) { if (isStringEmpty(header) || _.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.createElement(Item.Header, { content: content }); } function renderMeta(headerMap, dataSet, meta, parentProps, hiddenHeaderMap) { if (isStringEmpty(meta) || _.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.createElement(Item.Meta, { content: content }); } function renderDescription(headerMap, dataSet, description, parentProps, hiddenHeaderMap) { if (isStringEmpty(description) || _.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.createElement(Item.Description, { content: content }); } function renderExtra(headerMap, dataSet, extra, parentProps, hiddenHeaderMap) { if (isStringEmpty(extra) || _.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.createElement(Item.Extra, { content: content }); } function generateDataByPreAndSuffix(dataSet, accessor, prefix, suffix) { //console.log(dataSet[accessor]) var content = isStringEmpty(dataSet[accessor]) ? "" : dataSet[accessor]; if (!isStringEmpty(prefix)) { content = prefix + content; } if (!isStringEmpty(suffix)) { content = content + suffix; } return content; } function colFormatter(headerMap, hiddenHeaderMap, responsiveAccessor, content, dataSet) { var colFormat = _.findLast(headerMap, function (element) { var accessor = element.props.accessor; return accessor === responsiveAccessor; }); if (_.isEmpty(colFormat)) { colFormat = _.findLast(hiddenHeaderMap, function (element) { var accessor = element.props.accessor; return accessor === responsiveAccessor; }); } if (!_.isEmpty(colFormat)) { var columnFormat = colFormat.props.columnFormat; if (columnFormat) { return columnFormat(content, dataSet); } } return ""; } function findCheckBox(headerMap, hiddenHeaderMap) { var checkBox = _.findLast(headerMap, function (element) { var colAsCheckBox = element.props.colAsCheckBox; return colAsCheckBox === true; }); if (_.isEmpty(checkBox)) { checkBox = _.findLast(hiddenHeaderMap, function (element) { var colAsCheckBox = element.props.colAsCheckBox; return colAsCheckBox === true; }); } if (!_.isEmpty(checkBox)) { return checkBox.props; } return null; }