d5c448f4aa45402f4ffbfd3a0dc9b2653fa388f6cf992357213a3c7587957b49.json 41 KB

1
  1. {"ast":null,"code":"\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nconst ASCEND = 'ascend';\nconst DESCEND = 'descend';\nconst getMultiplePriority = column => {\n if (typeof column.sorter === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n};\nconst getSortFunction = sorter => {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && typeof sorter === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n};\nconst nextSortDirection = (sortDirections, current) => {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n};\nconst collectSortStates = (columns, init, pos) => {\n let sortStates = [];\n const pushState = (column, columnPos) => {\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n };\n (columns || []).forEach((column, index) => {\n const columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n};\nconst injectSorter = (prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) => {\n const finalColumns = (columns || []).map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n let newColumn = column;\n if (newColumn.sorter) {\n const sortDirections = newColumn.sortDirections || defaultSortDirections;\n const showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n const columnKey = getColumnKey(newColumn, columnPos);\n const sorterState = sorterStates.find(({\n key\n }) => key === columnKey);\n const sortOrder = sorterState ? sorterState.sortOrder : null;\n const nextSortOrder = nextSortDirection(sortDirections, sortOrder);\n let sorter;\n if (column.sortIcon) {\n sorter = column.sortIcon({\n sortOrder\n });\n } else {\n const upNode = sortDirections.includes(ASCEND) && (/*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(`${prefixCls}-column-sorter-up`, {\n active: sortOrder === ASCEND\n })\n }));\n const downNode = sortDirections.includes(DESCEND) && (/*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(`${prefixCls}-column-sorter-down`, {\n active: sortOrder === DESCEND\n })\n }));\n sorter = /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-column-sorter`, {\n [`${prefixCls}-column-sorter-full`]: !!(upNode && downNode)\n })\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-sorter-inner`,\n \"aria-hidden\": \"true\"\n }, upNode, downNode));\n }\n const {\n cancelSort,\n triggerAsc,\n triggerDesc\n } = tableLocale || {};\n let sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n const tooltipProps = typeof showSorterTooltip === 'object' ? Object.assign({\n title: sortTip\n }, showSorterTooltip) : {\n title: sortTip\n };\n newColumn = Object.assign(Object.assign({}, newColumn), {\n className: classNames(newColumn.className, {\n [`${prefixCls}-column-sort`]: sortOrder\n }),\n title: renderProps => {\n const columnSortersClass = `${prefixCls}-column-sorters`;\n const renderColumnTitleWrapper = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-title`\n }, renderColumnTitle(column.title, renderProps));\n const renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: columnSortersClass\n }, renderColumnTitleWrapper, sorter);\n if (showSorterTooltip) {\n if (typeof showSorterTooltip !== 'boolean' && (showSorterTooltip === null || showSorterTooltip === void 0 ? void 0 : showSorterTooltip.target) === 'sorter-icon') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${columnSortersClass} ${prefixCls}-column-sorters-tooltip-target-sorter`\n }, renderColumnTitleWrapper, /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), sorter));\n }\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), renderSortTitle);\n }\n return renderSortTitle;\n },\n onHeaderCell: col => {\n var _a;\n const cell = ((_a = column.onHeaderCell) === null || _a === void 0 ? void 0 : _a.call(column, col)) || {};\n const originOnClick = cell.onClick;\n const originOKeyDown = cell.onKeyDown;\n cell.onClick = event => {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = event => {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n const renderTitle = safeColumnTitle(column.title, {});\n const displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sortOrder) {\n cell['aria-sort'] = sortOrder === 'ascend' ? 'ascending' : 'descending';\n }\n cell['aria-label'] = displayTitle || '';\n cell.className = classNames(cell.className, `${prefixCls}-column-has-sorters`);\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n return finalColumns;\n};\nconst stateToInfo = sorterState => {\n const {\n column,\n sortOrder\n } = sorterState;\n return {\n column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n};\nconst generateSorterInfo = sorterStates => {\n const activeSorters = sorterStates.filter(({\n sortOrder\n }) => sortOrder).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (activeSorters.length === 0 && sorterStates.length) {\n const lastIndex = sorterStates.length - 1;\n return Object.assign(Object.assign({}, stateToInfo(sorterStates[lastIndex])), {\n column: undefined,\n order: undefined,\n field: undefined,\n columnKey: undefined\n });\n }\n if (activeSorters.length <= 1) {\n return activeSorters[0] || {};\n }\n return activeSorters;\n};\nexport const getSortData = (data, sortStates, childrenColumnName) => {\n const innerSorterStates = sortStates.slice().sort((a, b) => b.multiplePriority - a.multiplePriority);\n const cloneData = data.slice();\n const runningSorters = innerSorterStates.filter(({\n column: {\n sorter\n },\n sortOrder\n }) => getSortFunction(sorter) && sortOrder);\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort((record1, record2) => {\n for (let i = 0; i < runningSorters.length; i += 1) {\n const sorterState = runningSorters[i];\n const {\n column: {\n sorter\n },\n sortOrder\n } = sorterState;\n const compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n const compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(record => {\n const subRecords = record[childrenColumnName];\n if (subRecords) {\n return Object.assign(Object.assign({}, record), {\n [childrenColumnName]: getSortData(subRecords, sortStates, childrenColumnName)\n });\n }\n return record;\n });\n};\nconst useFilterSorter = props => {\n const {\n prefixCls,\n mergedColumns,\n sortDirections,\n tableLocale,\n showSorterTooltip,\n onSorterChange\n } = props;\n const [sortStates, setSortStates] = React.useState(() => collectSortStates(mergedColumns, true));\n const getColumnKeys = (columns, pos) => {\n const newKeys = [];\n columns.forEach((item, index) => {\n const columnPos = getColumnPos(index, pos);\n newKeys.push(getColumnKey(item, columnPos));\n if (Array.isArray(item.children)) {\n const childKeys = getColumnKeys(item.children, columnPos);\n newKeys.push.apply(newKeys, _toConsumableArray(childKeys));\n }\n });\n return newKeys;\n };\n const mergedSorterStates = React.useMemo(() => {\n let validate = true;\n const collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n const mergedColumnsKeys = getColumnKeys(mergedColumns);\n return sortStates.filter(({\n key\n }) => mergedColumnsKeys.includes(key));\n }\n const validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(Object.assign(Object.assign({}, state), {\n sortOrder: null\n }));\n }\n }\n let multipleMode = null;\n collectedStates.forEach(state => {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n const columnTitleSorterProps = React.useMemo(() => {\n var _a, _b;\n const sortColumns = mergedSorterStates.map(({\n column,\n sortOrder\n }) => ({\n column,\n order: sortOrder\n }));\n return {\n sortColumns,\n // Legacy\n sortColumn: (_a = sortColumns[0]) === null || _a === void 0 ? void 0 : _a.column,\n sortOrder: (_b = sortColumns[0]) === null || _b === void 0 ? void 0 : _b.order\n };\n }, [mergedSorterStates]);\n const triggerSorter = sortState => {\n let newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(({\n key\n }) => key !== sortState.key)), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n };\n const transformColumns = innerColumns => injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n const getSorters = () => generateSorterInfo(mergedSorterStates);\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n};\nexport default useFilterSorter;","map":{"version":3,"names":["_toConsumableArray","React","CaretDownOutlined","CaretUpOutlined","classNames","KeyCode","Tooltip","getColumnKey","getColumnPos","renderColumnTitle","safeColumnTitle","ASCEND","DESCEND","getMultiplePriority","column","sorter","multiple","getSortFunction","compare","nextSortDirection","sortDirections","current","indexOf","collectSortStates","columns","init","pos","sortStates","pushState","columnPos","push","key","multiplePriority","sortOrder","forEach","index","children","concat","defaultSortOrder","injectSorter","prefixCls","sorterStates","triggerSorter","defaultSortDirections","tableLocale","tableShowSorterTooltip","finalColumns","map","newColumn","showSorterTooltip","undefined","columnKey","sorterState","find","nextSortOrder","sortIcon","upNode","includes","createElement","className","active","downNode","cancelSort","triggerAsc","triggerDesc","sortTip","tooltipProps","Object","assign","title","renderProps","columnSortersClass","renderColumnTitleWrapper","renderSortTitle","target","onHeaderCell","col","_a","cell","call","originOnClick","onClick","originOKeyDown","onKeyDown","event","keyCode","ENTER","renderTitle","displayTitle","toString","tabIndex","ellipsis","stateToInfo","order","field","dataIndex","generateSorterInfo","activeSorters","filter","length","lastIndex","getSortData","data","childrenColumnName","innerSorterStates","slice","sort","a","b","cloneData","runningSorters","record1","record2","i","compareFn","compareResult","record","subRecords","useFilterSorter","props","mergedColumns","onSorterChange","setSortStates","useState","getColumnKeys","newKeys","item","Array","isArray","childKeys","apply","mergedSorterStates","useMemo","validate","collectedStates","mergedColumnsKeys","validateStates","patchStates","state","multipleMode","columnTitleSorterProps","_b","sortColumns","sortColumn","sortState","newSorterStates","transformColumns","innerColumns","getSorters"],"sources":["/Users/max_liu/max_liu/company/tools_auto_pt/node_modules/antd/es/table/hooks/useSorter.js"],"sourcesContent":["\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nconst ASCEND = 'ascend';\nconst DESCEND = 'descend';\nconst getMultiplePriority = column => {\n if (typeof column.sorter === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n};\nconst getSortFunction = sorter => {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && typeof sorter === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n};\nconst nextSortDirection = (sortDirections, current) => {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n};\nconst collectSortStates = (columns, init, pos) => {\n let sortStates = [];\n const pushState = (column, columnPos) => {\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n };\n (columns || []).forEach((column, index) => {\n const columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n};\nconst injectSorter = (prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) => {\n const finalColumns = (columns || []).map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n let newColumn = column;\n if (newColumn.sorter) {\n const sortDirections = newColumn.sortDirections || defaultSortDirections;\n const showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n const columnKey = getColumnKey(newColumn, columnPos);\n const sorterState = sorterStates.find(({\n key\n }) => key === columnKey);\n const sortOrder = sorterState ? sorterState.sortOrder : null;\n const nextSortOrder = nextSortDirection(sortDirections, sortOrder);\n let sorter;\n if (column.sortIcon) {\n sorter = column.sortIcon({\n sortOrder\n });\n } else {\n const upNode = sortDirections.includes(ASCEND) && (/*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(`${prefixCls}-column-sorter-up`, {\n active: sortOrder === ASCEND\n })\n }));\n const downNode = sortDirections.includes(DESCEND) && (/*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(`${prefixCls}-column-sorter-down`, {\n active: sortOrder === DESCEND\n })\n }));\n sorter = /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-column-sorter`, {\n [`${prefixCls}-column-sorter-full`]: !!(upNode && downNode)\n })\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-sorter-inner`,\n \"aria-hidden\": \"true\"\n }, upNode, downNode));\n }\n const {\n cancelSort,\n triggerAsc,\n triggerDesc\n } = tableLocale || {};\n let sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n const tooltipProps = typeof showSorterTooltip === 'object' ? Object.assign({\n title: sortTip\n }, showSorterTooltip) : {\n title: sortTip\n };\n newColumn = Object.assign(Object.assign({}, newColumn), {\n className: classNames(newColumn.className, {\n [`${prefixCls}-column-sort`]: sortOrder\n }),\n title: renderProps => {\n const columnSortersClass = `${prefixCls}-column-sorters`;\n const renderColumnTitleWrapper = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-title`\n }, renderColumnTitle(column.title, renderProps));\n const renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: columnSortersClass\n }, renderColumnTitleWrapper, sorter);\n if (showSorterTooltip) {\n if (typeof showSorterTooltip !== 'boolean' && (showSorterTooltip === null || showSorterTooltip === void 0 ? void 0 : showSorterTooltip.target) === 'sorter-icon') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${columnSortersClass} ${prefixCls}-column-sorters-tooltip-target-sorter`\n }, renderColumnTitleWrapper, /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), sorter));\n }\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), renderSortTitle);\n }\n return renderSortTitle;\n },\n onHeaderCell: col => {\n var _a;\n const cell = ((_a = column.onHeaderCell) === null || _a === void 0 ? void 0 : _a.call(column, col)) || {};\n const originOnClick = cell.onClick;\n const originOKeyDown = cell.onKeyDown;\n cell.onClick = event => {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = event => {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n const renderTitle = safeColumnTitle(column.title, {});\n const displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sortOrder) {\n cell['aria-sort'] = sortOrder === 'ascend' ? 'ascending' : 'descending';\n }\n cell['aria-label'] = displayTitle || '';\n cell.className = classNames(cell.className, `${prefixCls}-column-has-sorters`);\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n return finalColumns;\n};\nconst stateToInfo = sorterState => {\n const {\n column,\n sortOrder\n } = sorterState;\n return {\n column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n};\nconst generateSorterInfo = sorterStates => {\n const activeSorters = sorterStates.filter(({\n sortOrder\n }) => sortOrder).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (activeSorters.length === 0 && sorterStates.length) {\n const lastIndex = sorterStates.length - 1;\n return Object.assign(Object.assign({}, stateToInfo(sorterStates[lastIndex])), {\n column: undefined,\n order: undefined,\n field: undefined,\n columnKey: undefined\n });\n }\n if (activeSorters.length <= 1) {\n return activeSorters[0] || {};\n }\n return activeSorters;\n};\nexport const getSortData = (data, sortStates, childrenColumnName) => {\n const innerSorterStates = sortStates.slice().sort((a, b) => b.multiplePriority - a.multiplePriority);\n const cloneData = data.slice();\n const runningSorters = innerSorterStates.filter(({\n column: {\n sorter\n },\n sortOrder\n }) => getSortFunction(sorter) && sortOrder);\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort((record1, record2) => {\n for (let i = 0; i < runningSorters.length; i += 1) {\n const sorterState = runningSorters[i];\n const {\n column: {\n sorter\n },\n sortOrder\n } = sorterState;\n const compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n const compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(record => {\n const subRecords = record[childrenColumnName];\n if (subRecords) {\n return Object.assign(Object.assign({}, record), {\n [childrenColumnName]: getSortData(subRecords, sortStates, childrenColumnName)\n });\n }\n return record;\n });\n};\nconst useFilterSorter = props => {\n const {\n prefixCls,\n mergedColumns,\n sortDirections,\n tableLocale,\n showSorterTooltip,\n onSorterChange\n } = props;\n const [sortStates, setSortStates] = React.useState(() => collectSortStates(mergedColumns, true));\n const getColumnKeys = (columns, pos) => {\n const newKeys = [];\n columns.forEach((item, index) => {\n const columnPos = getColumnPos(index, pos);\n newKeys.push(getColumnKey(item, columnPos));\n if (Array.isArray(item.children)) {\n const childKeys = getColumnKeys(item.children, columnPos);\n newKeys.push.apply(newKeys, _toConsumableArray(childKeys));\n }\n });\n return newKeys;\n };\n const mergedSorterStates = React.useMemo(() => {\n let validate = true;\n const collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n const mergedColumnsKeys = getColumnKeys(mergedColumns);\n return sortStates.filter(({\n key\n }) => mergedColumnsKeys.includes(key));\n }\n const validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(Object.assign(Object.assign({}, state), {\n sortOrder: null\n }));\n }\n }\n let multipleMode = null;\n collectedStates.forEach(state => {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n const columnTitleSorterProps = React.useMemo(() => {\n var _a, _b;\n const sortColumns = mergedSorterStates.map(({\n column,\n sortOrder\n }) => ({\n column,\n order: sortOrder\n }));\n return {\n sortColumns,\n // Legacy\n sortColumn: (_a = sortColumns[0]) === null || _a === void 0 ? void 0 : _a.column,\n sortOrder: (_b = sortColumns[0]) === null || _b === void 0 ? void 0 : _b.order\n };\n }, [mergedSorterStates]);\n const triggerSorter = sortState => {\n let newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(({\n key\n }) => key !== sortState.key)), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n };\n const transformColumns = innerColumns => injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n const getSorters = () => generateSorterInfo(mergedSorterStates);\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n};\nexport default useFilterSorter;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}