tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 8.34 kB
Source Map (JSON)
{"version":3,"file":"sorter-button.mjs","sources":["../../../components/table/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 } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { useTNodeDefault } from '../hooks/tnode';\nimport { TNode } from '../common';\nimport { TableConfig } from '../config-provider';\n\ntype SortTypeEnum = 'desc' | 'asc';\ntype SortTypeEnums = Array<SortTypeEnum>;\n\nexport default defineComponent({\n name: 'TSorterButton',\n\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\n emits: ['sort-icon-click'],\n\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 t,\n globalConfig,\n tableSortClasses,\n negativeRotate180,\n allowSortTypes,\n getSortIcon,\n };\n },\n\n render() {\n const { tableSortClasses } = this;\n const classes = [tableSortClasses.trigger, { [tableSortClasses.doubleIcon]: this.allowSortTypes.length > 1 }];\n const tooltips = {\n asc: this.globalConfig.sortAscendingOperationText,\n desc: this.globalConfig.sortDescendingOperationText,\n };\n const sortButton = this.allowSortTypes.map((direction: SortTypeEnum) => {\n const activeClass = direction === this.sortOrder ? tableSortClasses.iconActive : tableSortClasses.iconDefault;\n const cancelTips = this.globalConfig.sortCancelOperationText;\n const tips = direction === this.sortOrder ? cancelTips : tooltips[direction];\n if (this.hideSortTips ?? this.globalConfig.hideSortTips) return this.getSortIcon(direction, activeClass);\n return (\n <Tooltip\n content={tips}\n placement=\"right\"\n showArrow={false}\n class={this.tableSortClasses.iconDirection[direction]}\n {...(this.tooltipProps as TooltipProps)}\n >\n {this.getSortIcon(direction, activeClass)}\n </Tooltip>\n );\n });\n return <div class={classes}>{sortButton}</div>;\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","render","_this","classes","trigger","doubleIcon","length","tooltips","asc","sortAscendingOperationText","desc","sortDescendingOperationText","sortButton","map","_slot","_this$hideSortTips","iconActive","iconDefault","cancelTips","sortCancelOperationText","tips","Tooltip","_mergeProps"],"mappings":"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"}