From 9e2f425d5e159baf1fa32411a5eb76703b2eba81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Foidl?= Date: Fri, 27 Jun 2025 20:34:53 +0200 Subject: [PATCH] Added formatter to column object --- packages/coreui-vue/src/components/table/CTable.ts | 11 +++++++++-- packages/coreui-vue/src/components/table/types.ts | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/coreui-vue/src/components/table/CTable.ts b/packages/coreui-vue/src/components/table/CTable.ts index 563f6ac8..72898c6a 100644 --- a/packages/coreui-vue/src/components/table/CTable.ts +++ b/packages/coreui-vue/src/components/table/CTable.ts @@ -238,7 +238,7 @@ const CTable = defineComponent({ default: () => [ columnNames.value && columnNames.value.map( - (colName: string) => + (colName: string, idx: number) => item[colName] !== undefined && h( CTableDataCell, @@ -251,7 +251,14 @@ const CTable = defineComponent({ }), }, { - default: () => item[colName], + default: () => { + const column = props.columns![idx]; + const value = item[colName]; + + return typeof column === "object" && column.formatter + ? column.formatter(value) + : value; + } }, ), ), diff --git a/packages/coreui-vue/src/components/table/types.ts b/packages/coreui-vue/src/components/table/types.ts index 8f96b27b..fbb6d2ce 100644 --- a/packages/coreui-vue/src/components/table/types.ts +++ b/packages/coreui-vue/src/components/table/types.ts @@ -4,7 +4,8 @@ export type Column = { // eslint-disable-next-line @typescript-eslint/no-explicit-any _style?: any // eslint-disable-next-line @typescript-eslint/no-explicit-any - _props?: any + _props?: any, + formatter?: (value: unknown) => string } export type FooterItem = {