UNPKG

tdesign-mobile-vue

Version:
1 lines 8.44 kB
{"version":3,"file":"index.mjs","sources":["../../../src/table/utils/index.ts"],"sourcesContent":["import { isFunction, get, isObject } from 'lodash-es';\nimport { CellData, RowClassNameParams, TableColumnClassName, TableRowData, TdBaseTableProps } from '../type';\nimport { ClassName, HTMLElementAttributes } from '../../common';\n\nexport function toString(obj: any): string {\n return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();\n}\n\nexport function debounce<T = any>(fn: Function, delay = 200): () => void {\n let timer: ReturnType<typeof setTimeout>;\n return function newFn(this: T, ...args: Array<any>): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, args);\n }, delay);\n };\n}\n\nexport interface FormatRowAttributesParams {\n row: TableRowData;\n rowIndex: number;\n type: 'body' | 'foot';\n}\n\n// 行属性\nexport function formatRowAttributes(attributes: TdBaseTableProps['rowAttributes'], params: FormatRowAttributesParams) {\n if (!attributes) return undefined;\n const attrList = attributes instanceof Array ? attributes : [attributes];\n let result: HTMLElementAttributes = {};\n for (let i = 0; i < attrList.length; i++) {\n const attrItem = attrList[i];\n if (!attrItem) continue;\n const attrProperty = isFunction(attrItem) ? attrItem(params) : attrItem;\n result =\n attrProperty instanceof Array ? formatRowAttributes(attrProperty, params) : Object.assign(result, attrProperty);\n }\n return result;\n}\n\n// 行类名,['A', 'B'],[() => 'A', () => 'B']\nexport function formatRowClassNames(\n rowClassNames: TdBaseTableProps['rowClassName'],\n params: RowClassNameParams<TableRowData>,\n rowKey: string,\n) {\n const rowClassList = rowClassNames instanceof Array ? rowClassNames : [rowClassNames];\n const { row, rowIndex } = params;\n // 自定义行类名\n let customClasses: ClassName = [];\n for (let i = 0, len = rowClassList.length; i < len; i++) {\n const rName = rowClassList[i];\n let tClass = isFunction(rName) ? rName(params) : rName;\n if (isObject(tClass) && !(tClass instanceof Array)) {\n // TODO: 这里其实是两点原因导致的\n // 1. isObject(tClass) && !(tClass instanceof Array) 直接用 isPlainObject 就可以了吧,或者 tClass && typeof tClass === 'object'\n // 2. lodash-es 类型不全\n // 根据下标设置行类名\n (tClass as Record<string, any>)[rowIndex] && (tClass = (tClass as Record<string, any>)[rowIndex]);\n // 根据行唯一标识设置行类名\n const rowId = get(row, rowKey || 'id');\n tClass[rowId] && (tClass = tClass[rowId]);\n } else if (tClass instanceof Array) {\n tClass = formatRowClassNames(tClass, params, rowKey);\n }\n customClasses = customClasses.concat(tClass);\n }\n return customClasses;\n}\n\nexport function formatClassNames(\n classNames: TableColumnClassName<TableRowData> | TableColumnClassName<TableRowData>[],\n params: CellData<TableRowData>,\n) {\n const classes = classNames instanceof Array ? classNames : [classNames];\n const arr: any[] = [];\n for (let i = 0, len = classes.length; i < len; i++) {\n const cls = classes[i];\n if (isFunction(cls)) {\n arr.push(cls(params));\n } else {\n arr.push(cls);\n }\n }\n return arr;\n}\n\nexport const INNER_PRE_NAME = '@@inner-';\n\n// 多级表头,列配置场景,获取 currentRow\nexport function getCurrentRowByKey<T extends { colKey?: string; children?: any[] }>(columns: T[], key: string): T {\n if (!columns || !key) return;\n const col = columns?.find((t) => t.colKey === key);\n if (col) return col;\n for (let i = 0, len = columns.length; i < len; i++) {\n if (columns[i]?.children?.length) {\n return getCurrentRowByKey(columns[i]?.children, key);\n }\n }\n}\n"],"names":["toString","obj","Object","prototype","call","slice","toLowerCase","debounce","fn","delay","arguments","length","undefined","timer","newFn","_len","args","Array","_key","context","clearTimeout","setTimeout","apply","formatRowAttributes","attributes","params","attrList","result","i","attrItem","attrProperty","isFunction","assign","formatRowClassNames","rowClassNames","rowKey","rowClassList","row","rowIndex","customClasses","len","rName","tClass","isObject","rowId","get","concat","formatClassNames","classNames","classes","arr","cls","push","INNER_PRE_NAME","getCurrentRowByKey","columns","key","col","find","t","colKey","_columns$i","children","_columns$i2"],"mappings":"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"}