tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 7.8 kB
Source Map (JSON)
{"version":3,"file":"sorter-button.mjs","sources":["../../../../components/table/components/sorter-button.tsx"],"sourcesContent":["import { computed, defineComponent, PropType } from 'vue';\nimport { ChevronDownIcon as TdChevronDownIcon } from 'tdesign-icons-vue-next';\nimport useClassName from '../hooks/useClassName';\nimport { SortType } from '../type';\nimport Tooltip, { TooltipProps } from '../../tooltip';\nimport { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport type { TNode } from '../../common';\nimport type { TableConfig } from '../../config-provider';\n\ntype SortTypeEnum = 'desc' | 'asc';\ntype SortTypeEnums = Array<SortTypeEnum>;\n\nexport default defineComponent({\n name: 'TSorterButton',\n props: {\n sortType: {\n type: String as PropType<SortType>,\n default: 'all',\n },\n sortOrder: {\n type: String,\n default: (): string => '',\n },\n locale: Object as PropType<TableConfig>,\n sortIcon: Function as PropType<TNode>,\n tooltipProps: Object as PropType<TooltipProps>,\n hideSortTips: Boolean,\n },\n emits: ['sort-icon-click'],\n setup(props, context) {\n const { tableSortClasses, negativeRotate180 } = useClassName();\n const renderTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { ChevronDownIcon } = useGlobalIcon({ ChevronDownIcon: TdChevronDownIcon });\n\n const allowSortTypes = computed<SortTypeEnums>(() =>\n props.sortType === 'all' ? ['asc', 'desc'] : [props.sortType],\n );\n\n const onSortIconClick = (e: MouseEvent, direction: string) => {\n context.emit('sort-icon-click', e, { descending: direction === 'desc' });\n };\n\n const getSortIcon = (direction: SortTypeEnum, activeClass: string) => {\n const defaultIcon = t(globalConfig.value.sortIcon) || <ChevronDownIcon />;\n const icon = renderTNode('sortIcon', defaultIcon);\n const sortClassName = [\n activeClass,\n tableSortClasses.sortIcon,\n tableSortClasses.iconDirection[direction],\n { [negativeRotate180]: direction === 'asc' },\n ];\n return (\n <span class={sortClassName} onClick={(e) => onSortIconClick(e, direction)}>\n {icon}\n </span>\n );\n };\n\n return () => {\n const classes = [tableSortClasses.trigger, { [tableSortClasses.doubleIcon]: allowSortTypes.value.length > 1 }];\n const tooltips = {\n asc: globalConfig.value.sortAscendingOperationText,\n desc: globalConfig.value.sortDescendingOperationText,\n };\n const sortButton = allowSortTypes.value.map((direction: SortTypeEnum) => {\n const activeClass = direction === props.sortOrder ? tableSortClasses.iconActive : tableSortClasses.iconDefault;\n const cancelTips = globalConfig.value.sortCancelOperationText;\n const tips = direction === props.sortOrder ? cancelTips : tooltips[direction];\n if (props.hideSortTips ?? globalConfig.value.hideSortTips) return getSortIcon(direction, activeClass);\n return (\n <Tooltip\n content={tips}\n placement=\"right\"\n showArrow={false}\n class={tableSortClasses.iconDirection[direction]}\n {...(props.tooltipProps as TooltipProps)}\n >\n {getSortIcon(direction, activeClass)}\n </Tooltip>\n );\n });\n return <div class={classes}>{sortButton}</div>;\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","sortType","type","String","sortOrder","default","locale","sortIcon","Function","tooltipProps","hideSortTips","Boolean","emits","setup","context","_useClassName","useClassName","tableSortClasses","negativeRotate180","renderTNode","useTNodeDefault","_useConfig","useConfig","t","globalConfig","_useGlobalIcon","useGlobalIcon","ChevronDownIcon","TdChevronDownIcon","allowSortTypes","computed","onSortIconClick","e","direction","emit","descending","getSortIcon","activeClass","defaultIcon","value","_createVNode","icon","sortClassName","iconDirection","_defineProperty","onClick","classes","trigger","doubleIcon","length","tooltips","asc","sortAscendingOperationText","desc","sortDescendingOperationText","sortButton","map","_slot","_props$hideSortTips","iconActive","iconDefault","cancelTips","sortCancelOperationText","tips","Tooltip","_mergeProps"],"mappings":"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"}