UNPKG

tdesign-vue-next

Version:
1 lines 17.8 kB
{"version":3,"file":"filter-controller.mjs","sources":["../../../../components/table/components/filter-controller.tsx"],"sourcesContent":["import { defineComponent, PropType, ref, h } from 'vue';\nimport { FilterIcon as TdFilterIcon } from 'tdesign-icons-vue-next';\nimport { isEmpty, isFunction } from 'lodash-es';\nimport Popup, { PopupProps } from '../../popup';\nimport { CheckboxGroup } from '../../checkbox';\nimport { RadioGroup } from '../../radio';\nimport Input from '../../input';\nimport TButton from '../../button';\nimport { useConfig, useGlobalIcon, useTNodeDefault } from '@tdesign/shared-hooks';\nimport { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from '../type';\n\nimport type { AttachNode } from '../../common';\n\nimport type { TableConfig } from '../../config-provider';\n\nexport interface TableFilterControllerProps {\n locale: TableConfig;\n tFilterValue: FilterValue;\n innerFilterValue: FilterValue;\n tableFilterClasses: {\n filterable: string;\n popup: string;\n icon: string;\n popupContent: string;\n result: string;\n inner: string;\n bottomButtons: string;\n contentInner: string;\n iconWrap: string;\n };\n isFocusClass: string;\n column: PrimaryTableCol;\n colIndex: number;\n // HTMLElement\n primaryTableElement: any;\n popupProps: PopupProps;\n attach?: AttachNode;\n onVisibleChange: (val: boolean) => void;\n onInnerFilterChange: (val: any, column: PrimaryTableCol) => void;\n filterIcon?: TdPrimaryTableProps['filterIcon'];\n}\n\nexport default defineComponent({\n name: 'TableFilterController',\n props: {\n locale: Object as PropType<TableFilterControllerProps['locale']>,\n column: Object as PropType<TableFilterControllerProps['column']>,\n colIndex: Number,\n tFilterValue: Object as PropType<TableFilterControllerProps['tFilterValue']>,\n innerFilterValue: Object as PropType<TableFilterControllerProps['innerFilterValue']>,\n tableFilterClasses: Object as PropType<TableFilterControllerProps['tableFilterClasses']>,\n isFocusClass: String,\n // eslint-disable-next-line\n primaryTableElement: {},\n popupProps: Object as PropType<TableFilterControllerProps['popupProps']>,\n attach: [String, Function] as PropType<TableFilterControllerProps['attach']>,\n onVisibleChange: Function as PropType<TableFilterControllerProps['onVisibleChange']>,\n onInnerFilterChange: Function as PropType<TableFilterControllerProps['onInnerFilterChange']>,\n filterIcon: [Function] as PropType<TableFilterControllerProps['filterIcon']>,\n },\n emits: ['inner-filter-change', 'reset', 'confirm'],\n setup(props: TableFilterControllerProps, context) {\n const triggerElementRef = ref<HTMLDivElement>(null);\n const renderTNode = useTNodeDefault();\n const { t, globalConfig } = useConfig('table', props.locale);\n const { FilterIcon } = useGlobalIcon({ FilterIcon: TdFilterIcon });\n const filterPopupVisible = ref(false);\n\n const onFilterPopupVisibleChange = (visible: boolean) => {\n filterPopupVisible.value = visible;\n props.onVisibleChange?.(visible);\n };\n\n const renderComponent = (column: PrimaryTableCol, filterComponentProps: any, component: any) => {\n if (!component) return null;\n const isVueComponent = !!component.setup;\n if (isFunction(column.filter.component) && !isVueComponent) {\n return column.filter.component((v: any, b: any) => {\n const tProps = typeof b === 'object' && 'attrs' in b ? b.attrs : {};\n return h(v, {\n props: { ...filterComponentProps, ...tProps },\n });\n });\n }\n const filter = column.filter || {};\n return (\n <component\n class={filter.classNames}\n style={filter.style}\n {...filter.attrs}\n {...filterComponentProps}\n ></component>\n );\n };\n\n const getFilterContent = (column: PrimaryTableCol) => {\n const types = ['single', 'multiple', 'input'];\n if (column.filter?.type && !types.includes(column.filter.type)) {\n console.error(`TDesign Table Error: column.filter.type must be the following: ${JSON.stringify(types)}`);\n return;\n }\n const { innerFilterValue = {} } = props;\n const component =\n {\n single: RadioGroup,\n multiple: CheckboxGroup,\n input: Input,\n }[column.filter.type] || column.filter.component;\n if (!component && !column.filter.component) return;\n const filterComponentProps: { [key: string]: any } = {\n options: ['single', 'multiple'].includes(column.filter.type) ? column.filter?.list : undefined,\n ...column.filter?.props,\n onChange: (val: any, ctx: any) => {\n context.emit('inner-filter-change', val, column);\n if (column.filter.props?.onChange) {\n column.filter.props.onChange?.(val, ctx);\n }\n if (column.filter?.confirmEvents?.includes('onChange')) {\n filterPopupVisible.value = false;\n }\n },\n };\n if (column.colKey && innerFilterValue && column.colKey in innerFilterValue) {\n filterComponentProps.value = innerFilterValue?.[column.colKey];\n }\n // 允许自定义触发确认搜索的事件\n if (column.filter.confirmEvents) {\n column.filter.confirmEvents.forEach((event) => {\n if (event === 'onChange') return;\n filterComponentProps[event] = () => {\n context.emit('confirm', column);\n filterPopupVisible.value = false;\n };\n });\n }\n return (\n <div class={props.tableFilterClasses.contentInner}>\n {renderComponent(column, filterComponentProps, component)}\n </div>\n );\n };\n\n const getBottomButtons = (column: PrimaryTableCol) => {\n if (!column.filter.showConfirmAndReset) return;\n return (\n <div class={props.tableFilterClasses.bottomButtons}>\n <TButton\n theme=\"default\"\n size=\"small\"\n onClick={() => {\n context.emit('reset', column);\n filterPopupVisible.value = false;\n }}\n >\n {globalConfig.value.resetText}\n </TButton>\n <TButton\n theme=\"primary\"\n size=\"small\"\n onClick={() => {\n context.emit('confirm', column);\n filterPopupVisible.value = false;\n }}\n >\n {globalConfig.value.confirmText}\n </TButton>\n </div>\n );\n };\n\n const getContent = () => (\n <div class={props.tableFilterClasses.popupContent}>\n {getFilterContent(props.column)}\n {getBottomButtons(props.column)}\n </div>\n );\n\n return () => {\n if (!props.column.filter || (props.column.filter && !Object.keys(props.column.filter).length)) return null;\n const defaultFilterIcon = t(globalConfig.value.filterIcon) || <FilterIcon />;\n const filterValue = (props.tFilterValue as TableFilterControllerProps['tFilterValue'])?.[props.column.colKey];\n const isObjectTrue = typeof filterValue === 'object' && !isEmpty(filterValue);\n // false is a valid filter value\n const isValueExist = ![null, undefined, ''].includes(filterValue) && typeof filterValue !== 'object';\n return (\n <Popup\n attach={\n props.attach || (props.primaryTableElement ? () => props.primaryTableElement as HTMLElement : undefined)\n }\n visible={filterPopupVisible.value}\n destroyOnClose\n trigger=\"click\"\n placement=\"bottom-right\"\n showArrow\n overlayClassName={props.tableFilterClasses.popup}\n onVisibleChange={(val: boolean) => onFilterPopupVisibleChange(val)}\n class={[\n props.tableFilterClasses.icon,\n {\n [props.isFocusClass]: isObjectTrue || isValueExist,\n },\n ]}\n content={getContent}\n {...props.popupProps}\n >\n <div ref={triggerElementRef}>\n {renderTNode('filterIcon', {\n defaultNode: defaultFilterIcon,\n params: { col: props.column, colIndex: props.colIndex },\n })}\n </div>\n </Popup>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","locale","Object","column","colIndex","Number","tFilterValue","innerFilterValue","tableFilterClasses","isFocusClass","String","primaryTableElement","popupProps","attach","Function","onVisibleChange","onInnerFilterChange","filterIcon","emits","setup","context","triggerElementRef","ref","renderTNode","useTNodeDefault","_useConfig","useConfig","t","globalConfig","_useGlobalIcon","useGlobalIcon","FilterIcon","TdFilterIcon","filterPopupVisible","onFilterPopupVisibleChange","visible","_props$onVisibleChang","value","call","renderComponent","filterComponentProps","component","isVueComponent","isFunction","filter","v","b","tProps","_typeof","attrs","h","_objectSpread","_createVNode","_mergeProps","classNames","style","getFilterContent","_column$filter","_column$filter2","_column$filter3","types","type","includes","console","error","concat","JSON","stringify","_props$innerFilterVal","single","RadioGroup","multiple","CheckboxGroup","input","Input","options","list","onChange","val","ctx","_column$filter$props","_column$filter4","emit","_column$filter$props$","_column$filter$props2","confirmEvents","colKey","forEach","event","contentInner","getBottomButtons","showConfirmAndReset","bottomButtons","TButton","onClick","_default","resetText","confirmText","getContent","popupContent","_props$tFilterValue","keys","length","defaultFilterIcon","filterValue","isObjectTrue","isEmpty","isValueExist","Popup","popup","icon","_defineProperty","defaultNode","params","col"],"mappings":"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"}