UNPKG

tdesign-react

Version:
136 lines (132 loc) 5.52 kB
/** * tdesign v1.16.2 * (c) 2025 tdesign * @license MIT */ import { _ as _typeof } from '../../_chunks/dep-8abcbcbc.js'; import { _ as _slicedToArray } from '../../_chunks/dep-10d5731f.js'; import { _ as _defineProperty } from '../../_chunks/dep-d67deb2c.js'; import React, { useMemo } from 'react'; import { isFunction } from 'lodash-es'; import classNames from 'classnames'; import { getThRowspanAndColspan, getThList } from './useMultiHeader.js'; import useClassName from './useClassName.js'; import Ellipsis from '../Ellipsis.js'; import '../../_chunks/dep-74a10cfb.js'; import '../../hooks/useConfig.js'; import '../../config-provider/ConfigContext.js'; import '../../_chunks/dep-6b235a32.js'; import '../../_chunks/dep-b9afa32b.js'; import 'dayjs'; import '../../_util/scroll.js'; import 'raf'; import '../../_chunks/dep-ca8d3fa0.js'; import '../../_util/easing.js'; import '../../tooltip/index.js'; import '../../tooltip/Tooltip.js'; import '../../_chunks/dep-ed34fbd4.js'; import '../../popup/index.js'; import '../../popup/Popup.js'; import 'react-transition-group'; import '../../common/Portal.js'; import 'react-dom'; import '../../hooks/useLayoutEffect.js'; import '../../hooks/useAnimation.js'; import '../../hooks/useAttach.js'; import '../../hooks/useControlled.js'; import '../../_util/noop.js'; import '../../hooks/useDefaultProps.js'; import '../../hooks/useMutationObserver.js'; import '../../hooks/useLatest.js'; import '../../hooks/usePopper.js'; import '../../_chunks/dep-a3a3e527.js'; import 'react-fast-compare'; import '@popperjs/core'; import '../../hooks/useWindowSize.js'; import '../../popup/defaultProps.js'; import '../../popup/hooks/useTrigger.js'; import '../../_util/listener.js'; import '../../_util/ref.js'; import 'react-is'; import '../../_util/isFragment.js'; import '../../popup/utils/transition.js'; import '../../popup/PopupPlugin.js'; import '../../_chunks/dep-4f115c18.js'; import '../../_util/react-render.js'; import '../../common/PluginContainer.js'; import '../../config-provider/ConfigProvider.js'; import '../../tooltip/defaultProps.js'; import '../../tooltip/TooltipLite.js'; import '../../hooks/useSwitch.js'; import '../../hooks/usePersistFn.js'; import '../../hooks/useDebounce.js'; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function renderTitle(col, index) { var params = { col: col, colIndex: index }; if (isFunction(col.title)) { return col.title(params); } if (isFunction(col.render)) { return col.render(_objectSpread(_objectSpread({}, params), {}, { row: {}, rowIndex: -1, type: "title" })); } return col.title; } function useTableHeader(_ref) { var columns = _ref.columns; var _useClassName = useClassName(), tableSortClasses = _useClassName.tableSortClasses, tableFilterClasses = _useClassName.tableFilterClasses; var spansAndLeafNodes = useMemo(function () { return getThRowspanAndColspan(columns); }, [columns]); var thList = useMemo(function () { return getThList(columns); }, [columns]); var isMultipleHeader = useMemo(function () { return thList.length > 1; }, [thList]); var renderTitleWidthIcon = function renderTitleWidthIcon(_ref2, col, colIndex, ellipsisTitle, attach, extra) { var _ref3 = _slicedToArray(_ref2, 3), title = _ref3[0], sortIcon = _ref3[1], filterIcon = _ref3[2]; var classes = _defineProperty(_defineProperty({}, tableSortClasses.sortable, !!sortIcon), tableFilterClasses.filterable, !!filterIcon); var content = isFunction(ellipsisTitle) ? ellipsisTitle({ col: col, colIndex: colIndex }) : void 0; var isEllipsis = ellipsisTitle !== void 0 ? Boolean(ellipsisTitle) : Boolean(col.ellipsis); return /* @__PURE__ */React.createElement("div", { className: classNames(classes) }, /* @__PURE__ */React.createElement("div", { className: tableSortClasses.title }, isEllipsis ? /* @__PURE__ */React.createElement(Ellipsis, { placement: "bottom", attach: attach ? function () { return attach; } : void 0, popupContent: content, tooltipProps: _typeof(ellipsisTitle) === "object" ? ellipsisTitle : void 0, classPrefix: extra === null || extra === void 0 ? void 0 : extra.classPrefix, overlayClassName: extra === null || extra === void 0 ? void 0 : extra.ellipsisOverlayClassName }, title) : /* @__PURE__ */React.createElement("div", null, title), Boolean(sortIcon || filterIcon) && /* @__PURE__ */React.createElement("div", { className: tableFilterClasses.iconWrap }, sortIcon, filterIcon))); }; return { thList: thList, isMultipleHeader: isMultipleHeader, spansAndLeafNodes: spansAndLeafNodes, renderTitleWidthIcon: renderTitleWidthIcon }; } export { useTableHeader as default, renderTitle }; //# sourceMappingURL=useTableHeader.js.map