Repository: ant-design
Issue: Table Column Header Filter/Sorter Improvements
Labels: Inactive

- [x] I have searched the [issues](https://github.com/ant-design/ant-design/issues) of this repository and believe that this is not a duplicate.
This does include some issues/request from older closed issues, but I don't believe any of them were comprehensive of this full request.
Similar Issue - https://github.com/ant-design/ant-design/issues/11246

### What problem does this feature solve?
A common feature of tables is being able to search/sort with the column header.  This is something I have been trying to do with the Ant Design columns, but it requires both a lot of code to implement and is not straightforward.

Here is a [codesandbox](https://codesandbox.io/s/antd-reproduction-template-forked-zxhy6?file=/index.js) example.
One note, which might be a bug or just an unsupported type, when passing in a functional component as the `title` an error is thrown.  Uncomment the `title` on line 154 to see this issue.

Here are some difficulties that I encountered.
1. event.stopPropagation() has to be called to prevent sorting when clicking the custom component.
2. sorterTooltips show when hovering the custom component, which is misleading when event.stopPropagation() is called because the sort doesn't actually happen.
3. The `sorter` property of the column passes the entire record, instead of just the values for that `dataIndex`.  This prevents re-using a sorting function in one line.
4. There are not any built in sorters/filters, so they all have to be implemented. (There is the `filters` property of the column, but this is the only built-in option.)

### What does the proposed API look like?
The sorterTooltip needs a way to control whether it displays or not.  When using a title with a filter I don't want the tooltip when hovering my input.  However, if I was using just a custom sorting header, I would still want to see it.
Similarly, the sorter needs a way to configure whether clicking triggers the sort or not.
One option to this is to add a new `filter` (or another name), that would be displayed underneath the `title`.  This would make it easier to control whether the tooltip shows or not internally in the library.

Add options to the `sorter` and `filters` of the column to accept an enum of pre-built sorters.  Options could be `string | number | Date`.  (Very likely other options could be added.). There could also be a config option with these, such that the pre-built items could be configured a bit more.  For example a `caseSensitive` option for the string.

Add an option to the `sorter` option, so that only the values for that columns `dataIndex` are passed.  This would allow re-using a sort function in one line.


Here are two different libraries with built-in header filters as examples.
Ag-Grid uses a similar popup filter that the current Ant Design `filters` option uses.
https://www.ag-grid.com/javascript-grid-filter-provided-simple/#example-provided-simple

Tabulator puts the filter element directly in the header, similar to my codesandbox.
http://tabulator.info/examples/4.8#filter-header

<!-- generated by ant-design-issue-helper. DO NOT REMOVE -->