allow other cell renderer for aggrid

This commit is contained in:
Ruben Fiszel
2024-04-26 18:18:31 +02:00
parent 4f9b3dcfeb
commit f2a8303cb9
3 changed files with 15 additions and 19 deletions

View File

@@ -1,10 +1,5 @@
<script lang="ts">
import {
GridApi,
createGrid,
type IDatasource,
type ICellRendererParams
} from 'ag-grid-community'
import { GridApi, createGrid, type IDatasource } from 'ag-grid-community'
import { isObject, sendUserToast } from '$lib/utils'
import { createEventDispatcher, getContext } from 'svelte'
import type { AppViewerContext, ComponentCustomCSS } from '../../../types'
@@ -243,8 +238,7 @@
return r.map((fields) => ({
...fields,
cellRenderer: (params: ICellRendererParams) =>
defaultCellRenderer(params, fields.cellRendererType)
cellRenderer: defaultCellRenderer(fields.cellRendererType)
}))
}

View File

@@ -257,7 +257,7 @@
rowData: value,
columnDefs: columnDefs.map((fields) => ({
...fields,
cellRenderer: (params) => defaultCellRenderer(params, fields.cellRendererType)
cellRenderer: defaultCellRenderer(fields.cellRendererType)
})),
pagination: resolvedConfig?.pagination,
paginationAutoPageSize: resolvedConfig?.pagination,
@@ -385,7 +385,7 @@
rowData: value,
columnDefs: columnDefs.map((fields) => ({
...fields,
cellRenderer: (params) => defaultCellRenderer(params, fields.cellRendererType)
cellRenderer: defaultCellRenderer(fields.cellRendererType)
})),
pagination: resolvedConfig?.pagination,
paginationAutoPageSize: resolvedConfig?.pagination,

View File

@@ -77,17 +77,19 @@ export function isLinkObject(value: any): value is LinkObject {
return value && typeof value === 'object' && 'href' in value && 'label' in value
}
export function defaultCellRenderer(params: ICellRendererParams, cellRendererType: string) {
export function defaultCellRenderer(cellRendererType: string) {
if (cellRendererType === 'link') {
if (isLinkObject(params.value)) {
const value = params.value
return `<a href=${value.href} class="underline" target="_blank">${value.label}</a>`
} else if (params.value) {
return `<a href=${params.value} class="underline" target="_blank">${params.value}</a>`
} else {
return params.value
return (params: ICellRendererParams) => {
if (isLinkObject(params.value)) {
const value = params.value
return `<a href=${value.href} class="underline" target="_blank">${value.label}</a>`
} else if (params.value) {
return `<a href=${params.value} class="underline" target="_blank">${params.value}</a>`
} else {
return params.value
}
}
} else {
return params.value
return undefined
}
}