UNPKG

choerodon-ui

Version:

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

793 lines (657 loc) 30 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _mobx = require("mobx"); var _mobxReactLite = require("mobx-react-lite"); var _raf = _interopRequireDefault(require("raf")); var _omit = _interopRequireDefault(require("lodash/omit")); var _isObject = _interopRequireDefault(require("lodash/isObject")); var _noop = _interopRequireDefault(require("lodash/noop")); var _isString = _interopRequireDefault(require("lodash/isString")); var _debounce = _interopRequireDefault(require("lodash/debounce")); var _defaultTo = _interopRequireDefault(require("lodash/defaultTo")); var _isUndefined = _interopRequireDefault(require("lodash/isUndefined")); var _UnitConvertor = require("../../../lib/_util/UnitConvertor"); var _resizeObserver = _interopRequireDefault(require("../../../lib/_util/resizeObserver")); var _measureScrollbar = _interopRequireDefault(require("../../../lib/_util/measureScrollbar")); var _popover = _interopRequireDefault(require("../../../lib/popover")); var _ConfigContext = _interopRequireDefault(require("../../../lib/config-provider/ConfigContext")); var _Column = require("./Column"); var _TableContext = _interopRequireDefault(require("./TableContext")); var _icon = _interopRequireDefault(require("../icon")); var _EventManager = _interopRequireWildcard(require("../_util/EventManager")); var _utils = require("./utils"); var _enum = require("./enum"); var _enum2 = require("../field/enum"); var _Tooltip = _interopRequireDefault(require("../tooltip/Tooltip")); var _transform = _interopRequireDefault(require("../_util/transform")); var _DocumentUtils = require("../_util/DocumentUtils"); var _singleton = require("../tooltip/singleton"); var _util = _interopRequireDefault(require("../overflow-tip/util")); var _TableStore = require("./TableStore"); var _AggregationTree = require("./AggregationTree"); var _TableCellInner = _interopRequireDefault(require("./TableCellInner")); var _textField = _interopRequireDefault(require("../text-field")); var _Button = _interopRequireDefault(require("../button/Button")); var _interface = require("../data-set/interface"); var _enum3 = require("../button/enum"); var _enum4 = require("../text-field/enum"); var _localeContext = require("../locale-context"); var TableHeaderCell = function TableHeaderCell(props) { var columnGroup = props.columnGroup, rowSpan = props.rowSpan, colSpan = props.colSpan, className = props.className, rowIndex = props.rowIndex, _props$getHeaderNode = props.getHeaderNode, getHeaderNode = _props$getHeaderNode === void 0 ? _noop["default"] : _props$getHeaderNode, scope = props.scope, expandIcon = props.children, isSearchCell = props.isSearchCell, intersectionRef = props.intersectionRef, isRenderCell = props.isRenderCell; var column = columnGroup.column, key = columnGroup.key, prev = columnGroup.prev; var tooltipProps = column.tooltipProps; var _useContext = (0, _react.useContext)(_TableContext["default"]), rowHeight = _useContext.rowHeight, border = _useContext.border, prefixCls = _useContext.prefixCls, tableStore = _useContext.tableStore, dataSet = _useContext.dataSet, aggregation = _useContext.aggregation, autoMaxWidth = _useContext.autoMaxWidth; var _useContext2 = (0, _react.useContext)(_ConfigContext["default"]), getTooltipTheme = _useContext2.getTooltipTheme, getTooltipPlacement = _useContext2.getTooltipPlacement; var columnResizable = tableStore.columnResizable, headerRowHeight = tableStore.headerRowHeight, headerFilter = tableStore.headerFilter; var headerClassName = column.headerClassName, _column$headerStyle = column.headerStyle, headerStyle = _column$headerStyle === void 0 ? {} : _column$headerStyle, name = column.name, align = column.align, children = column.children, command = column.command, lock = column.lock, filter = column.filter; var field = dataSet.getField(name); var _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), filterText = _useState2[0], _setFilterText = _useState2[1]; var aggregationTree = (0, _react.useMemo)(function () { if (aggregation) { var $column = columnGroup.column, headerGroup = columnGroup.headerGroup; if (headerGroup) { var tableGroup = columnGroup.tableGroup; if (tableGroup) { var columnProps = tableGroup.columnProps; var totalRecords = headerGroup.totalRecords; if (columnProps && totalRecords.length) { var _children = columnProps.children; if (_children && _children.length) { var renderer = function renderer(_ref) { var colGroup = _ref.colGroup, style = _ref.style; return /*#__PURE__*/_react["default"].createElement(_TableCellInner["default"], { record: totalRecords[0], column: colGroup.column, style: style, inAggregation: true }); }; return (0, _AggregationTree.groupedAggregationTree)({ columns: _children, headerGroup: headerGroup, column: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, $column), columnProps), renderer: renderer }); } } } } } }, [columnGroup, aggregation]); var header = (0, _utils.getHeader)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, column), {}, { dataSet: dataSet, aggregation: aggregation, group: columnGroup.headerGroup, groups: columnGroup.headerGroups, aggregationTree: aggregationTree })); var globalRef = (0, _react.useRef)({ bodyLeft: 0, resizeBoundary: 0 }); var resizeEvent = (0, _react.useMemo)(function () { return new _EventManager["default"](); }, []); var setSplitLineHidden = (0, _react.useCallback)(function (hidden) { var resizeLine = tableStore.node.resizeLine; if (resizeLine) { resizeLine.style.display = hidden ? 'none' : 'block'; } }, [tableStore]); var setSplitLinePosition = (0, _react.useCallback)((0, _mobx.action)(function (left) { var resizeLine = tableStore.node.resizeLine; var bodyLeft = globalRef.current.bodyLeft; left -= bodyLeft; if (left < 0) { left = 0; } if (resizeLine) { (0, _transform["default"])("translateX(".concat((0, _UnitConvertor.pxToRem)(left, true) || 0, ")"), resizeLine.style); } return left + bodyLeft; }), [tableStore, globalRef]); var resize = (0, _react.useCallback)(function (e) { var current = globalRef.current; var resizeColumnGroup = current.resizeColumnGroup; if (resizeColumnGroup) { var limit = current.resizeBoundary + (0, _Column.minColumnWidth)(resizeColumnGroup.column, tableStore); var left = e.touches ? (0, _DocumentUtils.transformZoomData)(e.touches[0].clientX) : (0, _DocumentUtils.transformZoomData)(e.clientX); if (left < limit) { left = limit; } current.resizePosition = setSplitLinePosition(left); } }, [globalRef, setSplitLinePosition]); var resizeEnd = (0, _react.useCallback)((0, _mobx.action)(function () { tableStore.columnResizing = false; setSplitLineHidden(true); resizeEvent.removeEventListener('mousemove').removeEventListener('touchmove').removeEventListener('mouseup').removeEventListener('touchend'); var tableBodyWrap = tableStore.node.tableBodyWrap; if (tableBodyWrap) { tableBodyWrap.removeEventListener('scroll', _EventManager.stopEvent); } var _globalRef$current = globalRef.current, resizePosition = _globalRef$current.resizePosition, resizeColumnGroup = _globalRef$current.resizeColumnGroup; if (resizePosition !== undefined && resizeColumnGroup) { var resizeColumn = resizeColumnGroup.column; var newWidth = Math.round(Math.max(resizePosition - globalRef.current.resizeBoundary, (0, _Column.minColumnWidth)(resizeColumn, tableStore))); if (newWidth !== resizeColumn.width) { var width = resizeColumn.width; var group = resizeColumnGroup; var element = tableStore.node.element; while (group) { var _group = group, col = _group.column; if (col.width === undefined) { var th = element.querySelector(".".concat(prefixCls, "-thead .").concat(prefixCls, "-cell[data-index=\"").concat(col.name, "\"]")); if (th) { tableStore.setColumnWidth(group, th.offsetWidth); } } group = group.prev; } if (width === undefined) { (0, _raf["default"])(function () { tableStore.setColumnWidth(resizeColumnGroup, newWidth); }); } else { tableStore.setColumnWidth(resizeColumnGroup, newWidth); } } } }), [globalRef, tableStore, setSplitLineHidden, resizeEvent]); var resizeStart = (0, _react.useCallback)((0, _mobx.action)(function (e) { tableStore.columnResizing = true; delete globalRef.current.resizePosition; setSplitLineHidden(false); var _tableStore$node = tableStore.node, element = _tableStore$node.element, tableBodyWrap = _tableStore$node.tableBodyWrap, tableColumnResizeTrigger = tableStore.tableColumnResizeTrigger; if (tableColumnResizeTrigger !== _enum.TableColumnResizeTriggerType.hover) { var left = Math.round(element.getBoundingClientRect().left); globalRef.current.bodyLeft = border ? left + 1 : left; } setSplitLinePosition((0, _DocumentUtils.transformZoomData)(e.clientX)); resizeEvent.setTarget(element.ownerDocument).addEventListener('mousemove', resize).addEventListener('touchmove', resize).addEventListener('mouseup', resizeEnd).addEventListener('touchend', resizeEnd); e.stopPropagation(); if (tableBodyWrap) { tableBodyWrap.addEventListener('scroll', _EventManager.stopEvent, { passive: true }); } }), [tableStore, globalRef, setSplitLineHidden, setSplitLinePosition, resizeEvent]); var delayResizeStart = (0, _react.useCallback)((0, _debounce["default"])(resizeStart, 300, { leading: true, trailing: false }), [resizeStart]); var prevColumnGroup = columnResizable ? prev && prev.lastLeaf : undefined; var currentColumnGroup = columnResizable ? columnGroup.lastLeaf : undefined; var handleClick = (0, _react.useCallback)(function () { if (name) { var sortable = column.sortable; if (typeof sortable === 'function') { var fieldProps = dataSet.props.fields ? dataSet.props.fields.find(function (f) { return f.name === name; }) : undefined; if (field && fieldProps) { var unOrder = field.order || fieldProps.order; (0, _mobx.runInAction)(function () { var nowCombineSort = dataSet.combineSort; dataSet.fields.forEach(function (current) { if (current.order && (current !== field || nowCombineSort)) { current.order = undefined; } }); dataSet.combineSort = false; switch (unOrder) { case _interface.SortOrder.asc: field.order = _interface.SortOrder.desc; break; case _interface.SortOrder.desc: field.order = undefined; break; default: field.order = _interface.SortOrder.asc; } }); } (0, _mobx.runInAction)(function () { dataSet.records = dataSet.records.sort(function (record1, record2) { return sortable(record1, record2, field.order); }); }); } else { dataSet.sort(name); } } }, [dataSet, name]); var handleMouseEnter = (0, _react.useCallback)(function (e) { var tooltip = tableStore.getColumnTooltip(column); var currentTarget = e.currentTarget; var measureElement = currentTarget.getElementsByClassName("".concat(prefixCls, "-cell-inner-right-has-other"))[0] || currentTarget; if (!tableStore.columnResizing && (tooltip === _enum.TableColumnTooltip.always || tooltip === _enum.TableColumnTooltip.overflow && (0, _util["default"])(measureElement))) { var tooltipConfig = (0, _isObject["default"])(tooltipProps) ? tooltipProps : {}; (0, _singleton.show)(currentTarget, (0, _objectSpread2["default"])({ title: header, placement: getTooltipPlacement('table-cell') || 'right', theme: getTooltipTheme('table-cell') }, tooltipConfig)); globalRef.current.tooltipShown = true; } }, [tableStore, column, globalRef, getTooltipTheme, getTooltipPlacement, header]); var handleMouseLeave = (0, _react.useCallback)(function () { if (globalRef.current.tooltipShown) { (0, _singleton.hide)(); delete globalRef.current.tooltipShown; } }, [globalRef]); var setResizeGroup = (0, _react.useCallback)(function (group) { globalRef.current.resizeColumnGroup = group; var headerDom = getHeaderNode(); var node = headerDom && headerDom.querySelector("[data-index=\"".concat(group.key, "\"]")); if (node) { globalRef.current.resizeBoundary = Math.round(node.getBoundingClientRect().left); } }, [globalRef, getHeaderNode]); var handleLeftResize = (0, _react.useCallback)(function (e) { if (prevColumnGroup) { setResizeGroup(prevColumnGroup); if (autoMaxWidth) { e.persist(); delayResizeStart(e); } else { resizeStart(e); } } }, [prevColumnGroup, setResizeGroup, autoMaxWidth, delayResizeStart, resizeStart]); var handleRightResize = (0, _react.useCallback)(function (e) { if (currentColumnGroup) { setResizeGroup(currentColumnGroup); if (autoMaxWidth) { e.persist(); delayResizeStart(e); } else { resizeStart(e); } } }, [currentColumnGroup, setResizeGroup, autoMaxWidth, delayResizeStart, resizeStart]); var showSplitLine = (0, _react.useCallback)(function (e, type) { var columnResizing = tableStore.columnResizing; if (columnResizing) return; setSplitLineHidden(false); var element = tableStore.node.element; var left = Math.round(element.getBoundingClientRect().left); var rect = e.target.getBoundingClientRect(); var width = Math.round(rect.width); var resizerLeft = Math.round(rect.left); var newLeft = resizerLeft + (type === 'pre' ? 0 : width); globalRef.current.bodyLeft = border ? left + 1 : left; setSplitLinePosition(newLeft); }, []); var delayShowSplitLine = (0, _react.useCallback)((0, _debounce["default"])(showSplitLine, 300, { leading: true, trailing: false }), []); var handleShowSplitLine = (0, _react.useCallback)(function (e, type) { var tableColumnResizeTrigger = tableStore.tableColumnResizeTrigger; if (tableColumnResizeTrigger !== _enum.TableColumnResizeTriggerType.hover) return; e.persist(); delayShowSplitLine(e, type); }, []); var handleHideSplitLine = (0, _react.useCallback)(function () { var tableColumnResizeTrigger = tableStore.tableColumnResizeTrigger; if (tableColumnResizeTrigger !== _enum.TableColumnResizeTriggerType.hover) return; var columnResizing = tableStore.columnResizing; if (columnResizing) return; setSplitLineHidden(true); }, []); var resizeDoubleClick = (0, _react.useCallback)((0, _mobx.action)(function () { var resizeColumnGroup = globalRef.current.resizeColumnGroup; if (resizeColumnGroup) { var col = resizeColumnGroup.column; var element = tableStore.node.element; var maxWidth = Math.max.apply(Math, (0, _toConsumableArray2["default"])((0, _toConsumableArray2["default"])(element.querySelectorAll("[data-index=\"".concat(resizeColumnGroup.key, "\"] > .").concat(prefixCls, "-cell-inner"))).map(function (node) { return node.parentNode.offsetWidth + (0, _utils.getMaxClientWidth)(node) - node.clientWidth + 1; })).concat([(0, _Column.minColumnWidth)(col, tableStore), col.width ? col.width : 0])); if (maxWidth !== col.width) { tableStore.setColumnWidth(resizeColumnGroup, maxWidth); } else if (col.minWidth) { tableStore.setColumnWidth(resizeColumnGroup, col.minWidth); } } }), [globalRef, prefixCls, tableStore]); var handleLeftDoubleClick = (0, _react.useCallback)(function () { resizeDoubleClick(); }, [delayResizeStart, resizeDoubleClick]); var handleRightDoubleClick = (0, _react.useCallback)(function () { resizeDoubleClick(); }, [delayResizeStart, resizeDoubleClick]); var onReset = (0, _react.useCallback)(function () { _setFilterText(''); (0, _mobx.runInAction)(function () { tableStore.headerFilter = undefined; }); }, [_setFilterText, tableStore]); var doFilter = (0, _react.useCallback)(function () { if (!(0, _isUndefined["default"])(filterText)) { (0, _mobx.runInAction)(function () { tableStore.headerFilter = { fieldName: name, filterText: filterText === null ? '' : filterText, filter: filter }; }); } }, [filterText, tableStore, name, filter]); var handleResize = (0, _react.useCallback)(function () { var clipboard = tableStore.clipboard, startChooseCell = tableStore.startChooseCell, endChooseCell = tableStore.endChooseCell, drawCopyBorder = tableStore.drawCopyBorder; if (clipboard && startChooseCell && endChooseCell) { drawCopyBorder(); } }, [column.width]); var renderResizer = function renderResizer() { var columns = tableStore.rightColumnGroups.columns, overflowX = tableStore.overflowX; var columnGroup = props.columnGroup; var resizerPrefixCls = "".concat(prefixCls, "-resizer"); var pre = prevColumnGroup && prevColumnGroup.column.resizable && /*#__PURE__*/_react["default"].createElement("div", { key: "pre", className: "".concat(resizerPrefixCls, " ").concat(resizerPrefixCls, "-left"), onDoubleClick: autoMaxWidth ? handleLeftDoubleClick : undefined, onPointerDown: handleLeftResize, onMouseEnter: function onMouseEnter(e) { return handleShowSplitLine(e, 'pre'); }, onMouseLeave: handleHideSplitLine }); var next = currentColumnGroup && currentColumnGroup.column.resizable && /*#__PURE__*/_react["default"].createElement("div", { key: "next", className: "".concat(resizerPrefixCls, " ").concat(resizerPrefixCls, "-right"), onDoubleClick: autoMaxWidth ? handleRightDoubleClick : undefined, onPointerDown: handleRightResize, onMouseEnter: function onMouseEnter(e) { return handleShowSplitLine(e, 'next'); }, onMouseLeave: handleHideSplitLine }); if (columns.length && overflowX && columns[0].key === columnGroup.key) return next; return [pre, next]; }; var getHelpIcon = function getHelpIcon() { if (column.showHelp !== _enum2.ShowHelp.none && !isSearchCell) { var fieldHelp = (0, _defaultTo["default"])(column.help, field && field.get('help')); if (fieldHelp) { return /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], { title: fieldHelp, placement: getTooltipPlacement('help'), theme: getTooltipTheme('help'), key: "help" }, /*#__PURE__*/_react["default"].createElement("span", { className: "".concat(prefixCls, "-help-icon") })); } } }; (0, _react.useEffect)(function () { return function () { resizeEvent.clear(); delayResizeStart.cancel(); if (globalRef.current.tooltipShown) { (0, _singleton.hide)(); delete globalRef.current.tooltipShown; } }; }, []); var columnLock = (0, _utils.isStickySupport)() && tableStore.overflowX && (0, _utils.getColumnLock)(lock); var classList = ["".concat(prefixCls, "-cell")]; var cellStyle = (0, _objectSpread2["default"])({ textAlign: align || (command || children && children.length ? _enum.ColumnAlign.center : tableStore.getConfig('tableColumnAlign')(column, field)) }, headerStyle); if (columnLock) { classList.push("".concat(prefixCls, "-cell-fix-").concat(columnLock)); if (columnLock === _enum.ColumnLock.left) { cellStyle.left = (0, _UnitConvertor.pxToRem)(columnGroup.left, true); } else if (columnLock === _enum.ColumnLock.right) { cellStyle.right = (0, _UnitConvertor.pxToRem)(columnGroup.right + (rowIndex === 0 && tableStore.overflowY ? (0, _measureScrollbar["default"])() : 0), true); } } if (className) { classList.push(className); } if (headerClassName) { classList.push(headerClassName); } var getConstSortIcon = function getConstSortIcon() { var _classNames; var combineSort = dataSet.combineSort; var tableShowSortIcon = tableStore.getConfig('tableShowSortIcon'); var combineSortField = combineSort && field && field.order; var type = combineSortField ? field && field.order === 'asc' ? 'paixu-shang' : 'paixu-xia' : (tableShowSortIcon || combineSort) && !(field && field.order) ? 'sort-all' : 'arrow_upward'; var className = (0, _classnames["default"])("".concat(prefixCls, "-sort-icon"), (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-sort-icon-temp"), tableShowSortIcon || combineSort && !combineSortField), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-sort-icon-combine"), combineSortField), _classNames)); return /*#__PURE__*/_react["default"].createElement(_icon["default"], { key: "sort", type: type, className: className }); }; var getFilterIcon = function getFilterIcon() { if (column.filter) { var popoverContent; var footer = /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-sort-popup-footer") }, /*#__PURE__*/_react["default"].createElement(_Button["default"], { onClick: onReset, key: 'reset' }, (0, _localeContext.$l)('Table', 'reset_button')), /*#__PURE__*/_react["default"].createElement(_Button["default"], { color: _enum3.ButtonColor.primary, onClick: doFilter, key: 'filter' }, (0, _localeContext.$l)('Table', 'search'))); var columnFilterPopover = column.filterPopover || tableStore.getConfig('tableColumnFilterPopover'); if (typeof columnFilterPopover === 'function') { popoverContent = /*#__PURE__*/_react["default"].createElement("div", { onClick: function onClick(e) { return e.stopPropagation(); } }, columnFilterPopover({ setFilterText: function setFilterText(filterText) { return _setFilterText(filterText); }, dataSet: dataSet, field: field, filterText: filterText, clearFilters: onReset, confirm: doFilter, footer: footer })); } else { popoverContent = /*#__PURE__*/_react["default"].createElement("div", { onClick: function onClick(e) { return e.stopPropagation(); } }, /*#__PURE__*/_react["default"].createElement(_textField["default"], { autoFocus: true, onEnterDown: doFilter, style: { width: '100%' }, valueChangeAction: _enum4.ValueChangeAction.input, value: filterText, onChange: function onChange(value) { return _setFilterText(value); } }), footer); } return /*#__PURE__*/_react["default"].createElement(_popover["default"], { content: popoverContent, overlayClassName: "".concat(prefixCls, "-sort-popup-content"), trigger: "click", onVisibleChange: function onVisibleChange() { if (headerFilter) { _setFilterText(headerFilter.fieldName === name ? String(headerFilter.filterText) : ''); } }, key: 'filter' }, /*#__PURE__*/_react["default"].createElement(_icon["default"], { key: "filter", className: filterText && String(headerFilter && headerFilter.fieldName) === name ? "".concat(prefixCls, "-filter-icon ").concat(prefixCls, "-filter-icon-active") : "".concat(prefixCls, "-filter-icon"), type: "search", onClick: function onClick(e) { return e.stopPropagation(); } })); } return undefined; }; // 过滤按钮 var filterIcon = getFilterIcon(); // 帮助按钮 var helpIcon = getHelpIcon(); // 排序按钮 var sortIcon = !column.aggregation && column.sortable && name && !isSearchCell ? getConstSortIcon() : undefined; var headerNodePlaceholder = Symbol('headerNodePlaceholder'); var childNodes = [headerNodePlaceholder]; var innerClassNames = ["".concat(prefixCls, "-cell-inner")]; var innerProps = { children: childNodes, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave }; var labelClassNames = []; if (helpIcon) { childNodes.push(helpIcon); labelClassNames.push("".concat(prefixCls, "-cell-inner-right-has-help")); } if (sortIcon) { if (field && field.order) { classList.push("".concat(prefixCls, "-sort-").concat(field.order)); var combineSort = dataSet.combineSort; if (combineSort) { classList.push("".concat(prefixCls, "-sort-").concat(field.order, "-combine")); } else { classList.push("".concat(prefixCls, "-sort-").concat(field.order, "-temp")); } } innerProps.onClick = handleClick; childNodes.push(sortIcon); labelClassNames.push("".concat(prefixCls, "-cell-inner-right-has-sort")); } if (filterIcon) { childNodes.push(filterIcon); labelClassNames.push("".concat(prefixCls, "-cell-inner-right-has-filter")); } if (expandIcon) { childNodes.unshift( /*#__PURE__*/_react["default"].createElement("span", { key: "prefix", className: !isSearchCell ? "".concat(prefixCls, "-header-expand-icon") : undefined }, expandIcon)); } // 兼容 label 超长 if (labelClassNames.length > 0) { labelClassNames.push("".concat(prefixCls, "-cell-inner-right-has-other")); } var labelClassNamesStr = labelClassNames.length > 0 ? labelClassNames.join(' ') : undefined; var headerNode = !isSearchCell ? /*#__PURE__*/(0, _react.isValidElement)(header) ? /*#__PURE__*/(0, _react.cloneElement)(header, { key: 'text', className: (0, _classnames["default"])(header.props && header.props.className, labelClassNamesStr) }) : (0, _isString["default"])(header) ? /*#__PURE__*/_react["default"].createElement("span", { key: "text", className: labelClassNamesStr }, header) : header : null; childNodes[childNodes.findIndex(function (item) { return item === headerNodePlaceholder; })] = headerNode; if (!isSearchCell) { var $rowHeight = headerRowHeight === undefined ? rowHeight : headerRowHeight; if ($rowHeight !== 'auto') { var height = Number(cellStyle.height) || $rowHeight * (rowSpan || 1); innerProps.style = { height: (0, _UnitConvertor.pxToRem)(height), lineHeight: (0, _UnitConvertor.pxToRem)(height - 2) }; innerClassNames.push("".concat(prefixCls, "-cell-inner-row-height-fixed")); } } if (isSearchCell) { innerClassNames.push("".concat(prefixCls, "-cell-search-header")); } if (key === _TableStore.CUSTOMIZED_KEY && (0, _utils.isStickySupport)() && tableStore.stickyRight && tableStore.overflowX && tableStore.columnGroups.rightLeafs.length === 1) { classList.push("".concat(prefixCls, "-cell-sticky-shadow")); } if (!tableStore.tableColumnResizeTransition) { classList.push("".concat(prefixCls, "-cell-no-transition")); } var thProps = { className: classList.join(' '), rowSpan: rowSpan, colSpan: colSpan, 'data-index': key, style: (0, _omit["default"])(cellStyle, ['width', 'height']), scope: scope }; if (intersectionRef) { thProps.ref = intersectionRef; } if (!isRenderCell) { return /*#__PURE__*/_react["default"].createElement("th", (0, _extends2["default"])({}, thProps)); } return /*#__PURE__*/_react["default"].createElement(_resizeObserver["default"], { onResize: handleResize }, /*#__PURE__*/_react["default"].createElement("th", (0, _extends2["default"])({}, thProps), /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, innerProps, { className: innerClassNames.join(' ') })), columnResizable && renderResizer())); }; TableHeaderCell.displayName = 'TableHeaderCell'; var _default = (0, _mobxReactLite.observer)(TableHeaderCell); exports["default"] = _default; //# sourceMappingURL=TableHeaderCell.js.map