@vaadin/hilla-react-crud
Version:
Hilla CRUD utils for React
86 lines • 3.36 kB
JavaScript
import { AutoGridBooleanRenderer, AutoGridDateRenderer, AutoGridDateTimeRenderer, AutoGridDecimalRenderer, AutoGridEnumRenderer, AutoGridIntegerRenderer, AutoGridJsonRenderer, AutoGridTimeRenderer, } from './autogrid-renderers';
import { BooleanHeaderFilter, DateHeaderFilter, EnumHeaderFilter, NoHeaderFilter, NumberHeaderFilter, StringHeaderFilter, TimeHeaderFilter, } from './header-filter';
function getTypeColumnOptions(propertyInfo, customColumnOptions) {
switch (propertyInfo.type) {
case 'integer':
return {
autoWidth: true,
textAlign: 'end',
flexGrow: 0,
renderer: AutoGridIntegerRenderer,
headerFilterRenderer: NumberHeaderFilter,
};
case 'decimal':
return {
autoWidth: true,
textAlign: 'end',
flexGrow: 0,
renderer: AutoGridDecimalRenderer,
headerFilterRenderer: NumberHeaderFilter,
};
case 'boolean':
return {
autoWidth: true,
textAlign: 'end',
flexGrow: 0,
renderer: AutoGridBooleanRenderer,
headerFilterRenderer: BooleanHeaderFilter,
};
case 'date':
return {
autoWidth: true,
textAlign: 'end',
flexGrow: 0,
renderer: AutoGridDateRenderer,
headerFilterRenderer: DateHeaderFilter,
};
case 'time':
return {
autoWidth: true,
textAlign: 'end',
flexGrow: 0,
renderer: AutoGridTimeRenderer,
headerFilterRenderer: TimeHeaderFilter,
};
case 'datetime':
return {
autoWidth: true,
textAlign: 'end',
flexGrow: 0,
renderer: AutoGridDateTimeRenderer,
headerFilterRenderer: DateHeaderFilter,
};
case 'enum':
return {
autoWidth: true,
renderer: AutoGridEnumRenderer,
headerFilterRenderer: EnumHeaderFilter,
};
case 'string':
return {
autoWidth: true,
headerFilterRenderer: StringHeaderFilter,
};
case 'object':
return {
autoWidth: true,
renderer: customColumnOptions?.path !== undefined && customColumnOptions.renderer == null ? null : AutoGridJsonRenderer,
headerFilterRenderer: NoHeaderFilter,
};
default:
return {
autoWidth: true,
headerFilterRenderer: NoHeaderFilter,
};
}
}
export function getColumnOptions(propertyInfo, customColumnOptions) {
const typeColumnOptions = getTypeColumnOptions(propertyInfo, customColumnOptions);
const headerFilterRenderer = customColumnOptions?.filterable === false
? NoHeaderFilter
: (typeColumnOptions.headerFilterRenderer ?? NoHeaderFilter);
return customColumnOptions
? { ...typeColumnOptions, headerFilterRenderer, ...customColumnOptions }
: typeColumnOptions;
}
//# sourceMappingURL=autogrid-columns.js.map