e8b7aa612f3b9a6930dfe00143a5e2c2.json 36.1 KB
{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CaretDownOutlined from '@ant-design/icons/CaretDownOutlined';\nimport CaretUpOutlined from '@ant-design/icons/CaretUpOutlined';\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../util';\nvar ASCEND = 'ascend';\nvar DESCEND = 'descend';\n\nfunction getMultiplePriority(column) {\n  if (_typeof(column.sorter) === 'object' && typeof column.sorter.multiple === 'number') {\n    return column.sorter.multiple;\n  }\n\n  return false;\n}\n\nfunction getSortFunction(sorter) {\n  if (typeof sorter === 'function') {\n    return sorter;\n  }\n\n  if (sorter && _typeof(sorter) === 'object' && sorter.compare) {\n    return sorter.compare;\n  }\n\n  return false;\n}\n\nfunction nextSortDirection(sortDirections, current) {\n  if (!current) {\n    return sortDirections[0];\n  }\n\n  return sortDirections[sortDirections.indexOf(current) + 1];\n}\n\nfunction collectSortStates(columns, init, pos) {\n  var sortStates = [];\n\n  function pushState(column, columnPos) {\n    sortStates.push({\n      column: column,\n      key: getColumnKey(column, columnPos),\n      multiplePriority: getMultiplePriority(column),\n      sortOrder: column.sortOrder\n    });\n  }\n\n  (columns || []).forEach(function (column, index) {\n    var columnPos = getColumnPos(index, pos);\n\n    if (column.children) {\n      if ('sortOrder' in column) {\n        // Controlled\n        pushState(column, columnPos);\n      }\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: column,\n          key: getColumnKey(column, columnPos),\n          multiplePriority: getMultiplePriority(column),\n          sortOrder: column.defaultSortOrder\n        });\n      }\n    }\n  });\n  return sortStates;\n}\n\nfunction injectSorter(prefixCls, columns, sorterSates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n  return (columns || []).map(function (column, index) {\n    var columnPos = getColumnPos(index, pos);\n    var newColumn = column;\n\n    if (newColumn.sorter) {\n      var sortDirections = newColumn.sortDirections || defaultSortDirections;\n      var showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n      var columnKey = getColumnKey(newColumn, columnPos);\n      var sorterState = sorterSates.find(function (_ref) {\n        var key = _ref.key;\n        return key === columnKey;\n      });\n      var sorterOrder = sorterState ? sorterState.sortOrder : null;\n      var nextSortOrder = nextSortDirection(sortDirections, sorterOrder);\n      var upNode = sortDirections.includes(ASCEND) && /*#__PURE__*/React.createElement(CaretUpOutlined, {\n        className: classNames(\"\".concat(prefixCls, \"-column-sorter-up\"), {\n          active: sorterOrder === ASCEND\n        })\n      });\n      var downNode = sortDirections.includes(DESCEND) && /*#__PURE__*/React.createElement(CaretDownOutlined, {\n        className: classNames(\"\".concat(prefixCls, \"-column-sorter-down\"), {\n          active: sorterOrder === DESCEND\n        })\n      });\n\n      var _ref2 = tableLocale || {},\n          cancelSort = _ref2.cancelSort,\n          triggerAsc = _ref2.triggerAsc,\n          triggerDesc = _ref2.triggerDesc;\n\n      var sortTip = cancelSort;\n\n      if (nextSortOrder === DESCEND) {\n        sortTip = triggerDesc;\n      } else if (nextSortOrder === ASCEND) {\n        sortTip = triggerAsc;\n      }\n\n      newColumn = _extends(_extends({}, newColumn), {\n        className: classNames(newColumn.className, _defineProperty({}, \"\".concat(prefixCls, \"-column-sort\"), sorterOrder)),\n        title: function title(renderProps) {\n          var renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n            className: \"\".concat(prefixCls, \"-column-sorters\")\n          }, /*#__PURE__*/React.createElement(\"span\", null, renderColumnTitle(column.title, renderProps)), /*#__PURE__*/React.createElement(\"span\", {\n            className: classNames(\"\".concat(prefixCls, \"-column-sorter\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-sorter-full\"), upNode && downNode))\n          }, /*#__PURE__*/React.createElement(\"span\", {\n            className: \"\".concat(prefixCls, \"-column-sorter-inner\")\n          }, upNode, downNode)));\n          return showSorterTooltip ? /*#__PURE__*/React.createElement(Tooltip, {\n            title: sortTip\n          }, /*#__PURE__*/React.createElement(\"div\", {\n            className: \"\".concat(prefixCls, \"-column-sorters-with-tooltip\")\n          }, renderSortTitle)) : renderSortTitle;\n        },\n        onHeaderCell: function onHeaderCell(col) {\n          var cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n          var originOnClick = cell.onClick;\n\n          cell.onClick = function (event) {\n            triggerSorter({\n              column: column,\n              key: columnKey,\n              sortOrder: nextSortOrder,\n              multiplePriority: getMultiplePriority(column)\n            });\n\n            if (originOnClick) {\n              originOnClick(event);\n            }\n          };\n\n          cell.className = classNames(cell.className, \"\".concat(prefixCls, \"-column-has-sorters\"));\n          return cell;\n        }\n      });\n    }\n\n    if ('children' in newColumn) {\n      newColumn = _extends(_extends({}, newColumn), {\n        children: injectSorter(prefixCls, newColumn.children, sorterSates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n      });\n    }\n\n    return newColumn;\n  });\n}\n\nfunction stateToInfo(sorterStates) {\n  var column = sorterStates.column,\n      sortOrder = sorterStates.sortOrder;\n  return {\n    column: column,\n    order: sortOrder,\n    field: column.dataIndex,\n    columnKey: column.key\n  };\n}\n\nfunction generateSorterInfo(sorterStates) {\n  var list = sorterStates.filter(function (_ref3) {\n    var sortOrder = _ref3.sortOrder;\n    return sortOrder;\n  }).map(stateToInfo); // =========== Legacy compatible support ===========\n  // https://github.com/ant-design/ant-design/pull/19226\n\n  if (list.length === 0 && sorterStates.length) {\n    return _extends(_extends({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n      column: undefined\n    });\n  }\n\n  if (list.length <= 1) {\n    return list[0] || {};\n  }\n\n  return list;\n}\n\nexport function getSortData(data, sortStates, childrenColumnName) {\n  var innerSorterStates = sortStates.slice().sort(function (a, b) {\n    return b.multiplePriority - a.multiplePriority;\n  });\n  var cloneData = data.slice();\n  var runningSorters = innerSorterStates.filter(function (_ref4) {\n    var sorter = _ref4.column.sorter,\n        sortOrder = _ref4.sortOrder;\n    return getSortFunction(sorter) && sortOrder;\n  }); // Skip if no sorter needed\n\n  if (!runningSorters.length) {\n    return cloneData;\n  }\n\n  return cloneData.sort(function (record1, record2) {\n    for (var i = 0; i < runningSorters.length; i += 1) {\n      var sorterState = runningSorters[i];\n      var sorter = sorterState.column.sorter,\n          sortOrder = sorterState.sortOrder;\n      var compareFn = getSortFunction(sorter);\n\n      if (compareFn && sortOrder) {\n        var compareResult = compareFn(record1, record2, sortOrder);\n\n        if (compareResult !== 0) {\n          return sortOrder === ASCEND ? compareResult : -compareResult;\n        }\n      }\n    }\n\n    return 0;\n  }).map(function (record) {\n    var subRecords = record[childrenColumnName];\n\n    if (subRecords) {\n      return _extends(_extends({}, record), _defineProperty({}, childrenColumnName, getSortData(subRecords, sortStates, childrenColumnName)));\n    }\n\n    return record;\n  });\n}\nexport default function useFilterSorter(_ref5) {\n  var prefixCls = _ref5.prefixCls,\n      mergedColumns = _ref5.mergedColumns,\n      onSorterChange = _ref5.onSorterChange,\n      sortDirections = _ref5.sortDirections,\n      tableLocale = _ref5.tableLocale,\n      showSorterTooltip = _ref5.showSorterTooltip;\n\n  var _React$useState = React.useState(collectSortStates(mergedColumns, true)),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      sortStates = _React$useState2[0],\n      setSortStates = _React$useState2[1];\n\n  var mergedSorterStates = React.useMemo(function () {\n    var validate = true;\n    var collectedStates = collectSortStates(mergedColumns, false); // Return if not controlled\n\n    if (!collectedStates.length) {\n      return sortStates;\n    }\n\n    var validateStates = [];\n\n    function patchStates(state) {\n      if (validate) {\n        validateStates.push(state);\n      } else {\n        validateStates.push(_extends(_extends({}, state), {\n          sortOrder: null\n        }));\n      }\n    }\n\n    var multipleMode = null;\n    collectedStates.forEach(function (state) {\n      if (multipleMode === null) {\n        patchStates(state);\n\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]); // Get render columns title required props\n\n  var columnTitleSorterProps = React.useMemo(function () {\n    var sortColumns = mergedSorterStates.map(function (_ref6) {\n      var column = _ref6.column,\n          sortOrder = _ref6.sortOrder;\n      return {\n        column: column,\n        order: sortOrder\n      };\n    });\n    return {\n      sortColumns: sortColumns,\n      // Legacy\n      sortColumn: sortColumns[0] && sortColumns[0].column,\n      sortOrder: sortColumns[0] && sortColumns[0].order\n    };\n  }, [mergedSorterStates]);\n\n  function triggerSorter(sortState) {\n    var newSorterStates;\n\n    if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n      newSorterStates = [sortState];\n    } else {\n      newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(function (_ref7) {\n        var key = _ref7.key;\n        return key !== sortState.key;\n      })), [sortState]);\n    }\n\n    setSortStates(newSorterStates);\n    onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n  }\n\n  var transformColumns = function transformColumns(innerColumns) {\n    return injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n  };\n\n  var getSorters = function getSorters() {\n    return generateSorterInfo(mergedSorterStates);\n  };\n\n  return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/antd/es/table/hooks/useSorter.js"],"names":["_slicedToArray","_defineProperty","_extends","_toConsumableArray","_typeof","React","classNames","CaretDownOutlined","CaretUpOutlined","Tooltip","getColumnKey","getColumnPos","renderColumnTitle","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","sorterSates","triggerSorter","defaultSortDirections","tableLocale","tableShowSorterTooltip","map","newColumn","showSorterTooltip","undefined","columnKey","sorterState","find","_ref","sorterOrder","nextSortOrder","upNode","includes","createElement","className","active","downNode","_ref2","cancelSort","triggerAsc","triggerDesc","sortTip","title","renderProps","renderSortTitle","onHeaderCell","col","cell","originOnClick","onClick","event","stateToInfo","sorterStates","order","field","dataIndex","generateSorterInfo","list","filter","_ref3","length","getSortData","data","childrenColumnName","innerSorterStates","slice","sort","a","b","cloneData","runningSorters","_ref4","record1","record2","i","compareFn","compareResult","record","subRecords","useFilterSorter","_ref5","mergedColumns","onSorterChange","_React$useState","useState","_React$useState2","setSortStates","mergedSorterStates","useMemo","validate","collectedStates","validateStates","patchStates","state","multipleMode","columnTitleSorterProps","sortColumns","_ref6","sortColumn","sortState","newSorterStates","_ref7","transformColumns","innerColumns","getSorters"],"mappings":"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","sourcesContent":["import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CaretDownOutlined from '@ant-design/icons/CaretDownOutlined';\nimport CaretUpOutlined from '@ant-design/icons/CaretUpOutlined';\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../util';\nvar ASCEND = 'ascend';\nvar DESCEND = 'descend';\n\nfunction getMultiplePriority(column) {\n  if (_typeof(column.sorter) === 'object' && typeof column.sorter.multiple === 'number') {\n    return column.sorter.multiple;\n  }\n\n  return false;\n}\n\nfunction getSortFunction(sorter) {\n  if (typeof sorter === 'function') {\n    return sorter;\n  }\n\n  if (sorter && _typeof(sorter) === 'object' && sorter.compare) {\n    return sorter.compare;\n  }\n\n  return false;\n}\n\nfunction nextSortDirection(sortDirections, current) {\n  if (!current) {\n    return sortDirections[0];\n  }\n\n  return sortDirections[sortDirections.indexOf(current) + 1];\n}\n\nfunction collectSortStates(columns, init, pos) {\n  var sortStates = [];\n\n  function pushState(column, columnPos) {\n    sortStates.push({\n      column: column,\n      key: getColumnKey(column, columnPos),\n      multiplePriority: getMultiplePriority(column),\n      sortOrder: column.sortOrder\n    });\n  }\n\n  (columns || []).forEach(function (column, index) {\n    var columnPos = getColumnPos(index, pos);\n\n    if (column.children) {\n      if ('sortOrder' in column) {\n        // Controlled\n        pushState(column, columnPos);\n      }\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: column,\n          key: getColumnKey(column, columnPos),\n          multiplePriority: getMultiplePriority(column),\n          sortOrder: column.defaultSortOrder\n        });\n      }\n    }\n  });\n  return sortStates;\n}\n\nfunction injectSorter(prefixCls, columns, sorterSates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n  return (columns || []).map(function (column, index) {\n    var columnPos = getColumnPos(index, pos);\n    var newColumn = column;\n\n    if (newColumn.sorter) {\n      var sortDirections = newColumn.sortDirections || defaultSortDirections;\n      var showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n      var columnKey = getColumnKey(newColumn, columnPos);\n      var sorterState = sorterSates.find(function (_ref) {\n        var key = _ref.key;\n        return key === columnKey;\n      });\n      var sorterOrder = sorterState ? sorterState.sortOrder : null;\n      var nextSortOrder = nextSortDirection(sortDirections, sorterOrder);\n      var upNode = sortDirections.includes(ASCEND) && /*#__PURE__*/React.createElement(CaretUpOutlined, {\n        className: classNames(\"\".concat(prefixCls, \"-column-sorter-up\"), {\n          active: sorterOrder === ASCEND\n        })\n      });\n      var downNode = sortDirections.includes(DESCEND) && /*#__PURE__*/React.createElement(CaretDownOutlined, {\n        className: classNames(\"\".concat(prefixCls, \"-column-sorter-down\"), {\n          active: sorterOrder === DESCEND\n        })\n      });\n\n      var _ref2 = tableLocale || {},\n          cancelSort = _ref2.cancelSort,\n          triggerAsc = _ref2.triggerAsc,\n          triggerDesc = _ref2.triggerDesc;\n\n      var sortTip = cancelSort;\n\n      if (nextSortOrder === DESCEND) {\n        sortTip = triggerDesc;\n      } else if (nextSortOrder === ASCEND) {\n        sortTip = triggerAsc;\n      }\n\n      newColumn = _extends(_extends({}, newColumn), {\n        className: classNames(newColumn.className, _defineProperty({}, \"\".concat(prefixCls, \"-column-sort\"), sorterOrder)),\n        title: function title(renderProps) {\n          var renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n            className: \"\".concat(prefixCls, \"-column-sorters\")\n          }, /*#__PURE__*/React.createElement(\"span\", null, renderColumnTitle(column.title, renderProps)), /*#__PURE__*/React.createElement(\"span\", {\n            className: classNames(\"\".concat(prefixCls, \"-column-sorter\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-sorter-full\"), upNode && downNode))\n          }, /*#__PURE__*/React.createElement(\"span\", {\n            className: \"\".concat(prefixCls, \"-column-sorter-inner\")\n          }, upNode, downNode)));\n          return showSorterTooltip ? /*#__PURE__*/React.createElement(Tooltip, {\n            title: sortTip\n          }, /*#__PURE__*/React.createElement(\"div\", {\n            className: \"\".concat(prefixCls, \"-column-sorters-with-tooltip\")\n          }, renderSortTitle)) : renderSortTitle;\n        },\n        onHeaderCell: function onHeaderCell(col) {\n          var cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n          var originOnClick = cell.onClick;\n\n          cell.onClick = function (event) {\n            triggerSorter({\n              column: column,\n              key: columnKey,\n              sortOrder: nextSortOrder,\n              multiplePriority: getMultiplePriority(column)\n            });\n\n            if (originOnClick) {\n              originOnClick(event);\n            }\n          };\n\n          cell.className = classNames(cell.className, \"\".concat(prefixCls, \"-column-has-sorters\"));\n          return cell;\n        }\n      });\n    }\n\n    if ('children' in newColumn) {\n      newColumn = _extends(_extends({}, newColumn), {\n        children: injectSorter(prefixCls, newColumn.children, sorterSates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n      });\n    }\n\n    return newColumn;\n  });\n}\n\nfunction stateToInfo(sorterStates) {\n  var column = sorterStates.column,\n      sortOrder = sorterStates.sortOrder;\n  return {\n    column: column,\n    order: sortOrder,\n    field: column.dataIndex,\n    columnKey: column.key\n  };\n}\n\nfunction generateSorterInfo(sorterStates) {\n  var list = sorterStates.filter(function (_ref3) {\n    var sortOrder = _ref3.sortOrder;\n    return sortOrder;\n  }).map(stateToInfo); // =========== Legacy compatible support ===========\n  // https://github.com/ant-design/ant-design/pull/19226\n\n  if (list.length === 0 && sorterStates.length) {\n    return _extends(_extends({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n      column: undefined\n    });\n  }\n\n  if (list.length <= 1) {\n    return list[0] || {};\n  }\n\n  return list;\n}\n\nexport function getSortData(data, sortStates, childrenColumnName) {\n  var innerSorterStates = sortStates.slice().sort(function (a, b) {\n    return b.multiplePriority - a.multiplePriority;\n  });\n  var cloneData = data.slice();\n  var runningSorters = innerSorterStates.filter(function (_ref4) {\n    var sorter = _ref4.column.sorter,\n        sortOrder = _ref4.sortOrder;\n    return getSortFunction(sorter) && sortOrder;\n  }); // Skip if no sorter needed\n\n  if (!runningSorters.length) {\n    return cloneData;\n  }\n\n  return cloneData.sort(function (record1, record2) {\n    for (var i = 0; i < runningSorters.length; i += 1) {\n      var sorterState = runningSorters[i];\n      var sorter = sorterState.column.sorter,\n          sortOrder = sorterState.sortOrder;\n      var compareFn = getSortFunction(sorter);\n\n      if (compareFn && sortOrder) {\n        var compareResult = compareFn(record1, record2, sortOrder);\n\n        if (compareResult !== 0) {\n          return sortOrder === ASCEND ? compareResult : -compareResult;\n        }\n      }\n    }\n\n    return 0;\n  }).map(function (record) {\n    var subRecords = record[childrenColumnName];\n\n    if (subRecords) {\n      return _extends(_extends({}, record), _defineProperty({}, childrenColumnName, getSortData(subRecords, sortStates, childrenColumnName)));\n    }\n\n    return record;\n  });\n}\nexport default function useFilterSorter(_ref5) {\n  var prefixCls = _ref5.prefixCls,\n      mergedColumns = _ref5.mergedColumns,\n      onSorterChange = _ref5.onSorterChange,\n      sortDirections = _ref5.sortDirections,\n      tableLocale = _ref5.tableLocale,\n      showSorterTooltip = _ref5.showSorterTooltip;\n\n  var _React$useState = React.useState(collectSortStates(mergedColumns, true)),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      sortStates = _React$useState2[0],\n      setSortStates = _React$useState2[1];\n\n  var mergedSorterStates = React.useMemo(function () {\n    var validate = true;\n    var collectedStates = collectSortStates(mergedColumns, false); // Return if not controlled\n\n    if (!collectedStates.length) {\n      return sortStates;\n    }\n\n    var validateStates = [];\n\n    function patchStates(state) {\n      if (validate) {\n        validateStates.push(state);\n      } else {\n        validateStates.push(_extends(_extends({}, state), {\n          sortOrder: null\n        }));\n      }\n    }\n\n    var multipleMode = null;\n    collectedStates.forEach(function (state) {\n      if (multipleMode === null) {\n        patchStates(state);\n\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]); // Get render columns title required props\n\n  var columnTitleSorterProps = React.useMemo(function () {\n    var sortColumns = mergedSorterStates.map(function (_ref6) {\n      var column = _ref6.column,\n          sortOrder = _ref6.sortOrder;\n      return {\n        column: column,\n        order: sortOrder\n      };\n    });\n    return {\n      sortColumns: sortColumns,\n      // Legacy\n      sortColumn: sortColumns[0] && sortColumns[0].column,\n      sortOrder: sortColumns[0] && sortColumns[0].order\n    };\n  }, [mergedSorterStates]);\n\n  function triggerSorter(sortState) {\n    var newSorterStates;\n\n    if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n      newSorterStates = [sortState];\n    } else {\n      newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(function (_ref7) {\n        var key = _ref7.key;\n        return key !== sortState.key;\n      })), [sortState]);\n    }\n\n    setSortStates(newSorterStates);\n    onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n  }\n\n  var transformColumns = function transformColumns(innerColumns) {\n    return injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n  };\n\n  var getSorters = function getSorters() {\n    return generateSorterInfo(mergedSorterStates);\n  };\n\n  return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}"]},"metadata":{},"sourceType":"module"}