useSorter.d.ts 1.3 KB

1234567891011121314151617181920212223242526
  1. import type { TransformColumns, ColumnsType, Key, ColumnType, SortOrder, ColumnTitleProps, SorterResult, TableLocale } from '../interface';
  2. import type { TooltipProps } from '../../tooltip';
  3. import type { Ref } from 'vue';
  4. import type { DefaultRecordType } from '../../vc-table/interface';
  5. export interface SortState<RecordType = DefaultRecordType> {
  6. column: ColumnType<RecordType>;
  7. key: Key;
  8. sortOrder: SortOrder | null;
  9. multiplePriority: number | false;
  10. }
  11. export declare function getSortData<RecordType>(data: readonly RecordType[], sortStates: SortState<RecordType>[], childrenColumnName: string): RecordType[];
  12. interface SorterConfig<RecordType> {
  13. prefixCls: Ref<string>;
  14. mergedColumns: Ref<ColumnsType<RecordType>>;
  15. onSorterChange: (sorterResult: SorterResult<RecordType> | SorterResult<RecordType>[], sortStates: SortState<RecordType>[]) => void;
  16. sortDirections: Ref<SortOrder[]>;
  17. tableLocale?: Ref<TableLocale>;
  18. showSorterTooltip?: Ref<boolean | TooltipProps>;
  19. }
  20. export default function useFilterSorter<RecordType>({ prefixCls, mergedColumns, onSorterChange, sortDirections, tableLocale, showSorterTooltip, }: SorterConfig<RecordType>): [
  21. TransformColumns<RecordType>,
  22. Ref<SortState<RecordType>[]>,
  23. Ref<ColumnTitleProps<RecordType>>,
  24. Ref<SorterResult<RecordType> | SorterResult<RecordType>[]>
  25. ];
  26. export {};