UNPKG

tdesign-vue-next

Version:
1 lines 18.2 kB
{"version":3,"file":"filter-controller.mjs","sources":["../../../components/table/filter-controller.tsx"],"sourcesContent":["import { defineComponent, PropType, ref, h } from 'vue';\nimport { FilterIcon as TdFilterIcon } from 'tdesign-icons-vue-next';\nimport { isEmpty } 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 { useTNodeDefault } from '../hooks/tnode';\nimport { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from './type';\nimport { useConfig } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { AttachNode } from '../common';\nimport { isFunction } from 'lodash-es';\nimport { 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 filterIcon?: TdPrimaryTableProps['filterIcon'];\n}\n\nexport default defineComponent({\n name: 'TableFilterController',\n\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 filterIcon: [Function] as PropType<TableFilterControllerProps['filterIcon']>,\n },\n\n emits: ['inner-filter-change', 'reset', 'confirm'],\n\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 t,\n globalConfig,\n FilterIcon,\n filterPopupVisible,\n triggerElementRef,\n renderTNode,\n getContent,\n onFilterPopupVisibleChange,\n };\n },\n\n render() {\n const { column, popupProps, FilterIcon } = this as any;\n\n if (!column.filter || (column.filter && !Object.keys(column.filter).length)) return null;\n const defaultFilterIcon = this.t(this.globalConfig.filterIcon) || <FilterIcon />;\n const filterValue = (this.tFilterValue as TableFilterControllerProps['tFilterValue'])?.[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={this.attach || (this.primaryTableElement ? () => this.primaryTableElement as HTMLElement : undefined)}\n visible={this.filterPopupVisible}\n destroyOnClose\n trigger=\"click\"\n placement=\"bottom-right\"\n showArrow\n overlayClassName={this.tableFilterClasses.popup}\n onVisibleChange={(val: boolean) => this.onFilterPopupVisibleChange(val)}\n class={[\n this.tableFilterClasses.icon,\n {\n [this.isFocusClass]: isObjectTrue || isValueExist,\n },\n ]}\n content={this.getContent}\n {...popupProps}\n >\n <div ref=\"triggerElementRef\">\n {this.renderTNode('filterIcon', {\n defaultNode: defaultFilterIcon,\n params: { col: column, colIndex: this.colIndex },\n })}\n </div>\n </Popup>\n );\n },\n});\n"],"names":["defineComponent","name","props","locale","Object","column","colIndex","Number","tFilterValue","innerFilterValue","tableFilterClasses","isFocusClass","String","primaryTableElement","popupProps","attach","Function","onVisibleChange","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","render","_this$tFilterValue","_this","keys","length","defaultFilterIcon","filterValue","isObjectTrue","isEmpty","isValueExist","Popup","popup","icon","_defineProperty","defaultNode","params","col"],"mappings":"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"}