UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

852 lines (744 loc) 31.1 kB
import _objectSpread from "@babel/runtime/helpers/objectSpread2"; import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; import _extends from "@babel/runtime/helpers/extends"; import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; var _excluded = ["afterClick"]; import _regeneratorRuntime from "@babel/runtime/regenerator"; import React, { cloneElement, isValidElement, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'; import { observer } from 'mobx-react-lite'; import { isArrayLike } from 'mobx'; import raf from 'raf'; import classNames from 'classnames'; import isNil from 'lodash/isNil'; import isPlainObject from 'lodash/isPlainObject'; import isString from 'lodash/isString'; import isObject from 'lodash/isObject'; import { pxToRem } from '../../../es/_util/UnitConvertor'; import KeyCode from '../../../es/_util/KeyCode'; import measureScrollbar from '../../../es/_util/measureScrollbar'; import ConfigContext from '../../../es/config-provider/ConfigContext'; import TableContext from './TableContext'; import { findCell, getColumnKey, getEditorByColumnAndRecord, isInCellEditor, isStickySupport } from './utils'; import { FieldType, RecordStatus } from '../data-set/enum'; import { COMBOBAR_KEY, SELECTION_KEY } from './TableStore'; import { ColumnAlign, SelectionMode, TableCommandType } from './enum'; import ObserverCheckBox from '../check-box/CheckBox'; import { $l } from '../locale-context'; import Button from '../button/Button'; import { FuncType } from '../button/enum'; import { LabelLayout } from '../form/enum'; import { findFirstFocusableElement } from '../_util/focusable'; import SelectionTreeBox from './SelectionTreeBox'; import { getDateFormatByField, getValueKey, isFieldValueEmpty, processFieldValue, processValue as utilProcessValue, renderMultiLine, renderMultipleValues, renderRangeValue, renderValidationMessage as utilRenderValidationMessage, showValidationMessage as _showValidationMessage, toMultipleValue, toRangeValue, transformHighlightProps } from '../field/utils'; import localeContext from '../locale-context/LocaleContext'; import isEmpty from '../_util/isEmpty'; import { Tooltip as TextTooltip } from '../core/enum'; import isOverflow from '../overflow-tip/util'; import { hide, show } from '../tooltip/singleton'; import useComputed from '../use-computed'; import { ShowHelp } from '../field/enum'; import { defaultOutputRenderer } from '../output/utils'; import { iteratorReduce } from '../_util/iteratorUtils'; var inTab = false; var TableCellInner = function TableCellInner(props) { var column = props.column, record = props.record, children = props.children, style = props.style, disabled = props.disabled, inAggregation = props.inAggregation, prefixCls = props.prefixCls, colSpan = props.colSpan, headerGroup = props.headerGroup, rowGroup = props.rowGroup; var multipleValidateMessageLengthRef = useRef(0); var tooltipShownRef = useRef(); var _useContext = useContext(ConfigContext), getTooltip = _useContext.getTooltip, getTooltipTheme = _useContext.getTooltipTheme, getTooltipPlacement = _useContext.getTooltipPlacement; var _useContext2 = useContext(TableContext), pristine = _useContext2.pristine, aggregation = _useContext2.aggregation, inlineEdit = _useContext2.inlineEdit, rowHeight = _useContext2.rowHeight, tableStore = _useContext2.tableStore, dataSet = _useContext2.dataSet, columnEditorBorder = _useContext2.columnEditorBorder, indentSize = _useContext2.indentSize, checkField = _useContext2.checkField, selectionMode = _useContext2.selectionMode; var innerPrefixCls = "".concat(prefixCls, "-inner"); var tooltip = tableStore.getColumnTooltip(column); var name = column.name, key = column.key, lock = column.lock, renderer = column.renderer, command = column.command, align = column.align, tooltipProps = column.tooltipProps; var columnKey = getColumnKey(column); var height = record.getState("__column_resize_height_".concat(name)); var currentEditRecord = tableStore.currentEditRecord; var field = dataSet.getField(name); var fieldDisabled = disabled || field && field.get('disabled', record); var innerRef = useRef(null); var prefixRef = useRef(null); var _useState = useState(children ? indentSize * record.level : 0), _useState2 = _slicedToArray(_useState, 2), paddingLeft = _useState2[0], setPaddingLeft = _useState2[1]; var columnCommand = useComputed(function () { if (typeof command === 'function') { return command({ dataSet: dataSet, record: record, aggregation: aggregation }); } return command; }, [record, command, dataSet, aggregation]); var canFocus = useMemo(function () { return !fieldDisabled && (!inlineEdit || record === currentEditRecord); }, [fieldDisabled, record, currentEditRecord, inlineEdit]); var cellEditor = getEditorByColumnAndRecord(column, record); var cellEditorInCell = isInCellEditor(cellEditor); var hasEditor = !pristine && cellEditor && !cellEditorInCell; var showEditor = useCallback(function (cell) { if (name) { if (!lock && tableStore.overflowX) { var tableBodyWrap = tableStore.virtual ? cell.offsetParent.parentNode.parentNode : cell.offsetParent; if (tableBodyWrap) { var _tableStore$columnGro = tableStore.columnGroups, leftLeafColumnsWidth = _tableStore$columnGro.leftLeafColumnsWidth, rightLeafColumnsWidth = _tableStore$columnGro.rightLeafColumnsWidth; var offsetLeft = cell.offsetLeft, offsetWidth = cell.offsetWidth; var scrollLeft = tableBodyWrap.scrollLeft; var width = Math.round(tableBodyWrap.getBoundingClientRect().width); var leftSide = offsetLeft - leftLeafColumnsWidth; var rightSide = offsetLeft + offsetWidth - width + rightLeafColumnsWidth + measureScrollbar(); var sl = scrollLeft; if (sl < rightSide) { sl = rightSide; } if (sl > leftSide) { sl = leftSide; } if (sl !== scrollLeft) { tableBodyWrap.scrollLeft = sl; } } } tableStore.showEditor(name); var editor = tableStore.editors.get(name); if (editor) { if (editor.cellNode) { if (tableStore.inlineEdit) { if (editor.inTab) { editor.inTab = false; } else { editor.focus(); } } else { editor.hideEditor(); } } else if (tableStore.inlineEdit) { editor.focus(); } else { raf(function () { editor.alignEditor(!isStickySupport() && lock ? findCell(tableStore, columnKey, lock, undefined, true) : cell); editor.focus(); }); } } } }, [column, name, columnKey, tableStore]); var handleEditorKeyDown = useCallback(function (e) { switch (e.keyCode) { case KeyCode.TAB: { var cell = findCell(tableStore, columnKey); if (cell) { if (cell.contains(document.activeElement)) { inTab = true; } else { var node = findFirstFocusableElement(cell); if (node) { inTab = true; node.focus(); } } } break; } default: } }, [tableStore, columnKey]); var handleCommandSave = useCallback(function () { return dataSet.submit().then(function (result) { if (result !== false) { tableStore.currentEditRecord = undefined; } }); }, [tableStore, dataSet]); var handleCommandCancel = useCallback(function () { if (record.status === RecordStatus.add) { dataSet.remove(record); } else { record.reset(); tableStore.currentEditRecord = undefined; } }, [tableStore, record, dataSet]); var handleCommandEdit = useCallback(function () { if (tableStore.inlineEdit) { tableStore.currentEditRecord = record; } }, [tableStore, record]); var handleCommandDelete = useCallback(function () { dataSet["delete"](record); }, [dataSet, record]); var multiLine = field && field.get('multiLine', record); var fieldType = !aggregation && rowHeight !== 'auto' && field && field.get('type', record); var rows = multiLine ? iteratorReduce(dataSet.fields.values(), function (count, dsField) { var bind = dsField.get('bind', record); if (bind && bind.startsWith("".concat(name, "."))) { return count + 1; } return count; }, 0) : 0; var checkBox = function () { if (children) { if (selectionMode === SelectionMode.treebox) { return /*#__PURE__*/React.createElement(SelectionTreeBox, { record: record }); } if (checkField && !tableStore.hasCheckFieldColumn) { var indeterminate = !dataSet.props.treeCheckStrictly && record.isIndeterminate; return /*#__PURE__*/React.createElement(ObserverCheckBox, { name: checkField, record: record, disabled: disabled, indeterminate: indeterminate }); } } }(); var renderCommand = useCallback(function () { var tableCommandProps = tableStore.getConfig('tableCommandProps'); var classString = classNames("".concat(prefixCls, "-command"), tableCommandProps && tableCommandProps.className); if (record.editing) { return [/*#__PURE__*/React.createElement(Button, _extends({}, tableCommandProps, { key: "save", className: classString, onClick: handleCommandSave, funcType: FuncType.link }), $l('Table', 'save_button')), /*#__PURE__*/React.createElement(Button, _extends({}, tableCommandProps, { key: "cancel", className: classString, onClick: handleCommandCancel, funcType: FuncType.link }), $l('Table', 'cancel_button'))]; } if (columnCommand) { var commands = []; columnCommand.forEach(function (button) { var tableButtonProps = {}; if (isArrayLike(button)) { tableButtonProps = button[1] || {}; button = button[0]; } if (isString(button) && button in TableCommandType) { var getButtonProps = function getButtonProps(type) { switch (type) { case TableCommandType.edit: return { funcType: FuncType.link, onClick: handleCommandEdit, disabled: disabled, children: $l('Table', 'edit_button'), key: 'edit' }; case TableCommandType["delete"]: return { funcType: FuncType.link, onClick: handleCommandDelete, disabled: disabled, children: $l('Table', 'delete_button'), key: 'delete' }; default: } }; var defaultButtonProps = getButtonProps(button); if (defaultButtonProps) { var _tableButtonProps = tableButtonProps, afterClick = _tableButtonProps.afterClick, buttonProps = _objectWithoutProperties(_tableButtonProps, _excluded); if (afterClick) { var onClick = defaultButtonProps.onClick; defaultButtonProps.onClick = /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(e) { return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: e.persist(); _context.prev = 1; _context.next = 4; return onClick(e); case 4: _context.prev = 4; afterClick(e); return _context.finish(4); case 7: case "end": return _context.stop(); } } }, _callee, null, [[1,, 4, 7]]); })); return function (_x) { return _ref.apply(this, arguments); }; }(); } var otherProps = _extends({}, defaultButtonProps); commands.push( /*#__PURE__*/React.createElement(Button, _extends({}, tableCommandProps, otherProps, buttonProps, { className: classNames(classString, otherProps.className, buttonProps.className) }))); } } else if ( /*#__PURE__*/isValidElement(button)) { commands.push( /*#__PURE__*/cloneElement(button, _objectSpread(_objectSpread(_objectSpread({}, tableCommandProps), button.props), {}, { className: classNames(classString, button.props.className) }))); } else if (isObject(button)) { commands.push( /*#__PURE__*/React.createElement(Button, _extends({}, tableCommandProps, button, { className: classNames(classString, button.className) }))); } }); return commands; } }, [tableStore, prefixCls, record, columnCommand, aggregation, disabled, handleCommandEdit, handleCommandDelete, handleCommandSave, handleCommandCancel]); var renderEditor = useCallback(function () { if ( /*#__PURE__*/isValidElement(cellEditor)) { /** * 渲染多行编辑器 */ if (multiLine) { return cellEditor; } var newEditorProps = _objectSpread(_objectSpread({}, cellEditor.props), {}, { record: record, name: name, pristine: pristine, disabled: disabled || inlineEdit && !record.editing, indeterminate: checkField && checkField === name && record.isIndeterminate, labelLayout: LabelLayout.none, showHelp: ShowHelp.none }); return /*#__PURE__*/cloneElement(cellEditor, newEditorProps); } }, [disabled, cellEditor, checkField, multiLine, record, name, pristine, inlineEdit]); var cellRenderer = useMemo(function () { if (columnCommand) { return renderCommand; } if (cellEditorInCell) { return renderEditor; } if (aggregation && renderer) { return function (rendererProps) { return renderer(_objectSpread(_objectSpread({}, rendererProps), {}, { aggregation: aggregation })); }; } return renderer; }, [columnCommand, cellEditorInCell, renderEditor, renderCommand, renderer, field, aggregation]); var prefixStyle = useMemo(function () { if (!aggregation || !tableStore.hasAggregationColumn) { if (height !== undefined && rows === 0) { return _objectSpread({ height: pxToRem(height), lineHeight: 1.5 }, style); } if (rowHeight !== 'auto') { var isComboQueryColumn = key === COMBOBAR_KEY; var isCheckBox = fieldType === FieldType["boolean"] || key === SELECTION_KEY; var multiple = field && field.get('multiple', record); var borderPadding = isCheckBox || multiple || isComboQueryColumn ? 4 : 2; var heightPx = rows > 0 ? (rowHeight + 2) * rows + 1 : rowHeight; var lineHeightPx = hasEditor || isCheckBox || multiple || isComboQueryColumn ? rowHeight - borderPadding : rowHeight; return _objectSpread({ height: pxToRem(heightPx), lineHeight: rows > 0 ? 'inherit' : pxToRem(lineHeightPx) }, style); } } return style; }, [fieldType, key, rows, rowHeight, height, style, aggregation, hasEditor]); var textAlign = useMemo(function () { return align || (columnCommand ? ColumnAlign.center : tableStore.getConfig('tableColumnAlign')(column, field, record)); }, [columnCommand, align, column, field, record]); var colSpanStyle = useMemo(function () { return colSpan && colSpan > 1 && (textAlign === ColumnAlign.right || textAlign === ColumnAlign.center) ? { width: "calc(100% - ".concat(pxToRem(30), ")") } : {}; }, [colSpan, textAlign]); var innerStyle = useMemo(function () { if (inAggregation) { return _objectSpread(_objectSpread({}, prefixStyle), colSpanStyle); } return _objectSpread(_objectSpread({ textAlign: textAlign }, prefixStyle), colSpanStyle); }, [inAggregation, textAlign, prefixStyle, colSpanStyle]); var value = name ? pristine ? record.getPristineValue(name) : record.get(name) : undefined; var renderValidationResult = useCallback(function (validationResult) { if (validationResult && validationResult.validationMessage) { var validationMessage = validationResult.validationMessage; if (name) { var editor = tableStore.editors.get(name); if (editor && editor.editorProps && typeof editor.editorProps.validationRenderer === 'function') { var validationRenderer = editor.editorProps.validationRenderer; validationMessage = validationRenderer(validationResult, validationResult.validationProps); if (isNil(validationMessage)) { return; } } } return utilRenderValidationMessage(validationMessage, true, tableStore.getProPrefixCls); } }, [name, tableStore.editors]); var isValidationMessageHidden = useCallback(function (message) { return !message || pristine; }, [pristine]); var editorBorder = !inlineEdit && hasEditor; var processValue = function processValue(v) { if (!isNil(v)) { var _text = isPlainObject(v) ? v : utilProcessValue(v, { dateFormat: getDateFormatByField(field, undefined, record), showInvalidDate: tableStore.getConfig('showInvalidDate'), isNumber: [FieldType.number, FieldType.currency, FieldType.bigNumber].includes(fieldType), precision: field && field.get('precision', record), useZeroFilledDecimal: tableStore.getConfig('useZeroFilledDecimal') }); return processFieldValue(_text, field, { getProp: function getProp(propName) { return field && field.get(propName, record); }, lang: dataSet && dataSet.lang || localeContext.locale.lang }, true, record, tableStore.getConfig); } return ''; }; var processRenderer = function processRenderer(value, repeat) { var processedValue; if (field && (field.getLookup(record) || field.get('options', record) || field.get('lovCode', record))) { if (isArrayLike(value)) { var isCascader = !field.get('multiple', record) || value.some(function (v) { return isArrayLike(v); }); processedValue = value.map(function (v) { return field.getText(v, undefined, record); }).join(isCascader ? '/' : '、'); } else { processedValue = field.getText(value, undefined, record); } } // 值集中不存在 再去取直接返回的值 var text = isNil(processedValue) ? processValue(value) : processedValue; return (cellRenderer || defaultOutputRenderer)({ value: value, text: text, record: record, dataSet: dataSet, name: name, repeat: repeat, headerGroup: headerGroup, rowGroup: rowGroup }); }; var getRenderedValue = function getRenderedValue() { if (field) { if (!cellEditorInCell) { var multiple = field.get('multiple', record); var range = field.get('range', record); var tagRenderer = tableStore.getColumnTagRenderer(column); if (multiple) { var _renderMultipleValues = renderMultipleValues(value, { disabled: disabled, readOnly: true, range: range, prefixCls: prefixCls, tagRenderer: tagRenderer, processRenderer: processRenderer, renderValidationResult: renderValidationResult, isValidationMessageHidden: isValidationMessageHidden, showValidationMessage: function showValidationMessage(e, message) { return _showValidationMessage(e, message, getTooltipTheme('validation'), getTooltipPlacement('validation'), tableStore.getConfig); }, validationResults: field.getValidationErrorValues(record), rangeSeparator: tableStore.getConfig('rangeSeparator') }), tags = _renderMultipleValues.tags, multipleValidateMessageLength = _renderMultipleValues.multipleValidateMessageLength, _isOverflowMaxTagCount = _renderMultipleValues.isOverflowMaxTagCount; multipleValidateMessageLengthRef.current = multipleValidateMessageLength; return { result: tags, isOverflowMaxTagCount: _isOverflowMaxTagCount }; } if (range) { return { result: renderRangeValue(toRangeValue(value, range), { processRenderer: processRenderer }) }; } } if (field.get('multiLine', record)) { var _renderMultiLine = renderMultiLine({ name: name, field: field, record: record, dataSet: dataSet, prefixCls: innerPrefixCls, renderer: cellRenderer, renderValidationResult: renderValidationResult, isValidationMessageHidden: isValidationMessageHidden, processValue: processValue, tooltip: tooltip, labelTooltip: getTooltip('label') }), lines = _renderMultiLine.lines, _multipleValidateMessageLength = _renderMultiLine.multipleValidateMessageLength; multipleValidateMessageLengthRef.current = _multipleValidateMessageLength; return lines; } } var textNode = processRenderer(value); return { result: textNode === '' ? tableStore.getConfig('tableDefaultRenderer') : textNode }; }; var _getRenderedValue = getRenderedValue(), result = _getRenderedValue.result, isOverflowMaxTagCount = _getRenderedValue.isOverflowMaxTagCount; var text = isEmpty(result) || isArrayLike(result) && !result.length ? editorBorder ? undefined : tableStore.getConfig('renderEmpty')('Output') : result; var handleFocus = useCallback(function (e) { if (canFocus) { handleMouseEnter(e); if (key !== SELECTION_KEY) { dataSet.current = record; } if (hasEditor && !tableStore.shiftKey) { showEditor(e.currentTarget); } if (!isStickySupport() && (key === SELECTION_KEY || !hasEditor)) { var cell = findCell(tableStore, columnKey, lock); if (cell && !cell.contains(document.activeElement)) { var node = findFirstFocusableElement(cell); if (node && !inTab) { node.focus(); } } } } inTab = false; }, [tableStore, dataSet, record, lock, columnKey, canFocus, hasEditor, showEditor, text]); var showTooltip = useCallback(function (e) { if (field && !(multipleValidateMessageLengthRef.current > 0 || !field.get('validator', record) && field.get('multiple', record) && toMultipleValue(value, field.get('range', record)).length)) { var validationResults = field.getValidationErrorValues(record); var message = validationResults && !!validationResults.length && renderValidationResult(validationResults[0]); if (!isValidationMessageHidden(message)) { _showValidationMessage(e, message, getTooltipTheme('validation'), getTooltipPlacement('validation'), tableStore.getConfig); return true; } } var element = e.currentTarget; if (element && !multiLine && (tooltip === TextTooltip.always || tooltip === TextTooltip.overflow && isOverflow(element)) || isOverflowMaxTagCount) { var current = innerRef.current; if (text && current && current.contains(element)) { var tooltipConfig = isObject(tooltipProps) ? tooltipProps : {}; var getMultipleText = function getMultipleText() { var values = field ? toMultipleValue(value, field.get('range', record)) : []; var repeats = new Map(); var texts = values.map(function (v) { var key = getValueKey(v); var repeat = repeats.get(key) || 0; var text = processRenderer(v); repeats.set(key, repeat + 1); if (!isNil(text)) { return text; } return undefined; }); return texts.join('、'); }; var duration = (tooltipConfig.mouseEnterDelay || 0.1) * 1000; show(element, _objectSpread({ title: isOverflowMaxTagCount ? getMultipleText() : text, placement: getTooltipPlacement('table-cell') || 'right', theme: getTooltipTheme('table-cell') }, tooltipConfig), duration); return true; } } return false; }, [getTooltipTheme, getTooltipPlacement, renderValidationResult, isValidationMessageHidden, field, record, tooltip, multiLine, text, innerRef]); var handleMouseEnter = useCallback(function (e) { if (!tableStore.columnResizing && !tooltipShownRef.current && showTooltip(e)) { tooltipShownRef.current = true; } }, [tooltipShownRef, tableStore, showTooltip]); var handleMouseLeave = useCallback(function () { if (!tableStore.columnResizing && tooltipShownRef.current) { var tooltipConfig = isObject(tooltipProps) ? tooltipProps : {}; var duration = (tooltipConfig.mouseLeaveDelay || 0.1) * 1000; hide(duration); tooltipShownRef.current = false; } }, [tooltipShownRef, tableStore]); useEffect(function () { if (name && inlineEdit && record === currentEditRecord) { var currentEditor = tableStore.editors.get(name); if (currentEditor) { currentEditor.alignEditor(); } return function () { if (currentEditor) { currentEditor.hideEditor(); } }; } }, []); useEffect(function () { return function () { if (tooltipShownRef.current) { hide(); tooltipShownRef.current = false; } }; }, [tooltipShownRef]); useLayoutEffect(function () { var current = innerRef.current; var activeEmptyCell = tableStore.activeEmptyCell; if (current && activeEmptyCell && activeEmptyCell.dataset.index === name && tableStore.dataSet.current === record) { delete tableStore.activeEmptyCell; if (current.tabIndex === -1) { var firstFocusableElement = findFirstFocusableElement(current); if (firstFocusableElement) { firstFocusableElement.focus(); } } else { current.focus(); } } }, [record]); var innerProps = { tabIndex: hasEditor && canFocus ? 0 : -1, onFocus: handleFocus, children: text, ref: innerRef }; var empty = field ? isFieldValueEmpty(value, field.get('range', record), field.get('multiple', record), field.get('type', record) === FieldType.object ? field.get('valueField', record) : undefined, field.get('type', record) === FieldType.object ? field.get('textField', record) : undefined) : false; var innerClassName = [innerPrefixCls]; if (columnEditorBorder) { innerClassName.push("".concat(prefixCls, "-inner-bordered")); } if (editorBorder) { innerClassName.push("".concat(prefixCls, "-inner-editable")); } var highlight; var inValid; if (field) { if (!pristine && field.isDirty(record)) { innerClassName.push("".concat(prefixCls, "-inner-dirty")); } if (!inlineEdit && !cellEditorInCell) { inValid = !field.isValid(record); field.get('required', record); if (inValid) { innerClassName.push("".concat(prefixCls, "-inner-invalid")); } } if (editorBorder) { if (field.get('required', record) && (empty || !tableStore.getConfig('showRequiredColorsOnlyEmpty'))) { innerClassName.push("".concat(prefixCls, "-inner-required")); } highlight = field.get('highlight', record); if (highlight) { innerClassName.push("".concat(prefixCls, "-inner-highlight")); } } } if (fieldDisabled) { innerClassName.push("".concat(prefixCls, "-inner-disabled")); } if (multiLine) { innerClassName.push("".concat(prefixCls, "-inner-multiLine")); } if (!isStickySupport() && !hasEditor) { innerProps.onKeyDown = handleEditorKeyDown; } if (inValid || tooltip) { innerProps.onMouseEnter = handleMouseEnter; innerProps.onMouseLeave = handleMouseLeave; } if (rowHeight === 'auto') { innerClassName.push("".concat(prefixCls, "-inner-auto-height")); } else { innerClassName.push("".concat(prefixCls, "-inner-row-height-fixed")); } if (height !== undefined && rows === 0) { innerClassName.push("".concat(prefixCls, "-inner-fixed-height")); } if (isString(innerProps.children) && innerProps.children.includes('\n') && (rowHeight === 'auto' || height !== undefined && rows === 0)) { innerClassName.push("".concat(prefixCls, "-inner-pre")); } useEffect(function () { // 兼容Table Tree模式嵌套过深样式 var current = prefixRef.current; if (current && paddingLeft !== 0) { var parentElement = current.parentElement, prefixWidth = current.offsetWidth; if (parentElement) { var parentWidth = parentElement.clientWidth; if (prefixWidth > parentWidth) { setPaddingLeft(Math.max(paddingLeft - (prefixWidth - parentWidth), 0)); } } } }, [prefixRef, paddingLeft, setPaddingLeft]); var indentText = children && /*#__PURE__*/React.createElement("span", { style: { paddingLeft: pxToRem(paddingLeft) } }); var prefix = children && /*#__PURE__*/React.createElement("span", { key: "prefix", className: "".concat(prefixCls, "-prefix"), style: prefixStyle, ref: prefixRef }, indentText, children, checkBox); var output = /*#__PURE__*/React.createElement("span", _extends({ key: "output" }, innerProps, { style: innerStyle, className: innerClassName.join(' ') })); return /*#__PURE__*/React.createElement(React.Fragment, null, prefix, highlight ? (column.highlightRenderer || tableStore.cellHighlightRenderer)(transformHighlightProps(highlight, { dataSet: dataSet, record: record, name: name }), output) : output); }; TableCellInner.displayName = 'TableCellInner'; export default observer(TableCellInner); //# sourceMappingURL=TableCellInner.js.map