mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-20 20:33:02 +00:00
feat(data-table): allow header column width, minWidth values
This commit is contained in:
parent
6239c11024
commit
29936d65d3
1 changed files with 13 additions and 2 deletions
|
@ -2,8 +2,8 @@
|
||||||
/**
|
/**
|
||||||
* @typedef {string} DataTableKey
|
* @typedef {string} DataTableKey
|
||||||
* @typedef {any} DataTableValue
|
* @typedef {any} DataTableValue
|
||||||
* @typedef {{ key: DataTableKey; empty: boolean; display?: (item: Value) => DataTableValue; sort?: false | ((a: DataTableValue, b: DataTableValue) => (0 | -1 | 1)); columnMenu?: boolean; }} DataTableEmptyHeader
|
* @typedef {{ key: DataTableKey; empty: boolean; display?: (item: Value) => DataTableValue; sort?: false | ((a: DataTableValue, b: DataTableValue) => (0 | -1 | 1)); columnMenu?: boolean; minWidth?: string; width?: string; }} DataTableEmptyHeader
|
||||||
* @typedef {{ key: DataTableKey; value: DataTableValue; display?: (item: Value) => DataTableValue; sort?: false | ((a: DataTableValue, b: DataTableValue) => (0 | -1 | 1)); columnMenu?: boolean; }} DataTableNonEmptyHeader
|
* @typedef {{ key: DataTableKey; value: DataTableValue; display?: (item: Value) => DataTableValue; sort?: false | ((a: DataTableValue, b: DataTableValue) => (0 | -1 | 1)); columnMenu?: boolean; minWidth?: string; width?: string; }} DataTableNonEmptyHeader
|
||||||
* @typedef {DataTableNonEmptyHeader | DataTableEmptyHeader} DataTableHeader
|
* @typedef {DataTableNonEmptyHeader | DataTableEmptyHeader} DataTableHeader
|
||||||
* @typedef {{ id: any; [key: string]: DataTableValue; }} DataTableRow
|
* @typedef {{ id: any; [key: string]: DataTableValue; }} DataTableRow
|
||||||
* @typedef {any} DataTableRowId
|
* @typedef {any} DataTableRowId
|
||||||
|
@ -240,6 +240,16 @@
|
||||||
: rows;
|
: rows;
|
||||||
$: displayedRows = getDisplayedRows($tableRows, page, pageSize);
|
$: displayedRows = getDisplayedRows($tableRows, page, pageSize);
|
||||||
$: displayedSortedRows = getDisplayedRows(sortedRows, page, pageSize);
|
$: displayedSortedRows = getDisplayedRows(sortedRows, page, pageSize);
|
||||||
|
|
||||||
|
/** @type {(header: DataTableHeader) => undefined | string} */
|
||||||
|
const formatHeaderWidth = (header) => {
|
||||||
|
const styles = [
|
||||||
|
header.width && `width: ${header.width}`,
|
||||||
|
header.minWidth && `min-width: ${header.minWidth}`,
|
||||||
|
].filter(Boolean);
|
||||||
|
if (styles.length === 0) return undefined;
|
||||||
|
return styles.join(";");
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<TableContainer useStaticWidth="{useStaticWidth}" {...$$restProps}>
|
<TableContainer useStaticWidth="{useStaticWidth}" {...$$restProps}>
|
||||||
|
@ -322,6 +332,7 @@
|
||||||
{:else}
|
{:else}
|
||||||
<TableHeader
|
<TableHeader
|
||||||
id="{header.key}"
|
id="{header.key}"
|
||||||
|
style="{formatHeaderWidth(header)}"
|
||||||
disableSorting="{header.sort === false}"
|
disableSorting="{header.sort === false}"
|
||||||
on:click="{() => {
|
on:click="{() => {
|
||||||
dispatch('click', { header });
|
dispatch('click', { header });
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue