diff --git a/src/lib/components/Table/TableContent.svelte b/src/lib/components/Table/TableContent.svelte index 20e3a03..010d913 100644 --- a/src/lib/components/Table/TableContent.svelte +++ b/src/lib/components/Table/TableContent.svelte @@ -48,7 +48,6 @@ toggle = false, // Whether to display the fitToScreen toggle search = true, // Whether to display the search input pageSizes = [5, 10, 20, 50, 100], // Page sizes to display in the pagination component - pageIndexStringType = 'items', // items by default fitToScreen = true, // Whether to fit the table to the screen, exportable = false, // Whether to display the export button and enable export functionality server @@ -644,7 +643,7 @@ ? utils.minWidth(cell.id, columns) : $colWidths[index] }px;` - : 'max-width: min-content;'} + : ''} > @@ -686,7 +685,6 @@ {serverItemCount} updateTable={updateTableWithParams} {pageSizes} - {pageIndexStringType} id={tableId} /> {:else} @@ -695,7 +693,6 @@ pageConfig={pluginStates.page} {pageSizes} id={tableId} - {pageIndexStringType} /> {/if} {/if} diff --git a/src/lib/components/Table/TablePagination.svelte b/src/lib/components/Table/TablePagination.svelte index b94e7e3..5904314 100644 --- a/src/lib/components/Table/TablePagination.svelte +++ b/src/lib/components/Table/TablePagination.svelte @@ -1,41 +1,17 @@ -
+
- - -
{#each pageSizes as size} @@ -98,48 +62,18 @@
-
- - - + ($pageIndex = page.detail)} + settings={paginationSettings} + select="hidden" + buttonClasses="disabled:!variant-filled-surface !px-3 !py-1.5 !fill-current !variant-filled-primary" + active="!variant-filled-secondary" + maxNumerals={1} + showNumerals /> - -
- {indexInformation} + {indexInformation}
diff --git a/src/lib/components/Table/TablePaginationServer.svelte b/src/lib/components/Table/TablePaginationServer.svelte index c97cdc6..a8352da 100644 --- a/src/lib/components/Table/TablePaginationServer.svelte +++ b/src/lib/components/Table/TablePaginationServer.svelte @@ -10,7 +10,6 @@ export let id; // Unique table ID export let pageIndex; export let pageSize; - export let pageIndexStringType; export let pageSizes; // Available page sizes export let serverItemCount; // Total number of items expected from the server. `serverSide` must be true on table config. export let updateTable; // Function to update table @@ -63,13 +62,12 @@ }; const getIndexInfomationString = () => { - if (pageIndexStringType === 'pages') { - return pageCount > 0 ? `Page ${$pageIndex + 1} of ${pageCount}` : 'No pages'; - } else { - return `Showing ${$pageIndex * $pageSize + 1} - ${($pageIndex + 1) * $pageSize} of ${ - pageCount * $pageSize - } items`; - } + return serverItemCount === 0 + ? 'No items' + : `Displaying items ${$pageIndex * $pageSize + 1} - ${Math.min( + ($pageIndex + 1) * $pageSize, + serverItemCount + )} of ${Math.min(pageCount * $pageSize, serverItemCount)}`; }; $: pageCount = Math.ceil($serverItemCount / $pageSize); diff --git a/src/lib/components/Table/utils.ts b/src/lib/components/Table/utils.ts index 100f3c8..3efbe61 100644 --- a/src/lib/components/Table/utils.ts +++ b/src/lib/components/Table/utils.ts @@ -33,6 +33,21 @@ export const cellStyle = (id: string, columns: Columns | undefined) => { // Create and return styles separated by ';' return styles.join(';'); }; +// Styles for resizing the cells +export const getResizeStyles = ( + rowHeights: { [key: number]: { max: number; min: number } }, + id: string | number, + index: number +) => { + return ` + min-height: ${rowHeights && rowHeights[+id] ? `${rowHeights[+id].min}px` : 'auto'}; + max-height: ${index !== 0 && rowHeights && rowHeights[+id] + ? `${rowHeights[+id].max}px` + : 'auto' + }; + height: ${rowHeights && rowHeights[+id] ? `${rowHeights[+id].min}px` : 'auto'}; + `; +} // Function to normalize the filters for back-end export const normalizeFilters = (filters: { [key: string]: { [key in FilterOptionsEnum]?: number | string | Date }; @@ -54,7 +69,7 @@ export const normalizeFilters = (filters: { return filter; }; - +// Creates a CSV file and downloads it export const exportAsCsv = (tableId: string, exportedData: string) => { // Creating a hidden anchor element to download the CSV file const anchor = document.createElement('a'); @@ -65,7 +80,7 @@ export const exportAsCsv = (tableId: string, exportedData: string) => { anchor.click(); document.body.removeChild(anchor); }; - +// Function to convert JSON data to CSV format export const jsonToCsv = (data: string): string => { const json = JSON.parse(data); @@ -96,7 +111,6 @@ export const jsonToCsv = (data: string): string => { // Join rows with newlines return rows.join('\n'); } - // Resetting the resized columns and/or rows export const resetResize = ( headerRows: any, @@ -140,7 +154,7 @@ export const resetResize = ( }); } }; - +// Finds the mapping for missing values export const missingValuesFn = ( key: number | string, missingValues: { [key: string | number]: string } @@ -160,7 +174,6 @@ export const missingValuesFn = ( return foundKey ? missingValues[foundKey] : key; }; - // Function to update the server-side table data export const updateTable = async ( pageSize: number, @@ -230,7 +243,7 @@ export const updateTable = async ( return response; }; - +// Function to convert server data to client data export const convertServerColumns = ( serverColumns: ServerColumn[], columns: Columns | undefined @@ -288,7 +301,6 @@ export const convertServerColumns = ( return columnsConfig; }; - // Calculates the maximum height of the cells in each row export const getMaxCellHeightInRow = ( tableRef: HTMLTableElement, @@ -329,7 +341,6 @@ export const getMaxCellHeightInRow = ( }); }); }; - // Calculates the minimum width of the cells in each column export const getMinCellWidthInColumn = ( tableRef: HTMLTableElement, @@ -355,19 +366,4 @@ export const getMinCellWidthInColumn = ( }); return cw; }); -}; - -export const getResizeStyles = ( - rowHeights: { [key: number]: { max: number; min: number } }, - id: string | number, - index: number -) => { - return ` - min-height: ${rowHeights && rowHeights[+id] ? `${rowHeights[+id].min}px` : 'auto'}; - max-height: ${index !== 0 && rowHeights && rowHeights[+id] - ? `${rowHeights[+id].max}px` - : 'auto' - }; - height: ${rowHeights && rowHeights[+id] ? `${rowHeights[+id].min}px` : 'auto'}; - `; -} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/lib/models/Models.ts b/src/lib/models/Models.ts index eced55f..c9e94bf 100644 --- a/src/lib/models/Models.ts +++ b/src/lib/models/Models.ts @@ -127,7 +127,6 @@ export interface TableConfig { exportable?: boolean; // false by default pageSizes?: number[]; // [5, 10, 20, 50, 100] by default defaultPageSize?: number; // 10 by default - pageIndexStringType?: 'items' | 'pages'; // pages by default optionsComponent?: typeof SvelteComponent; server?: ServerConfig; diff --git a/src/routes/components/table/data/codeBlocks.ts b/src/routes/components/table/data/codeBlocks.ts index 480f611..833b353 100644 --- a/src/routes/components/table/data/codeBlocks.ts +++ b/src/routes/components/table/data/codeBlocks.ts @@ -146,7 +146,6 @@ export const usersBDHTML = ` const usersBDConfig: TableConfig = { id: 'usersBD', data: usersBDStore, - pageIndexStringType: 'items', columns: { dateOfBirth: { header: 'Date of birth', @@ -214,7 +213,6 @@ export interface TableConfig { exportable?: boolean; // false by default pageSizes?: number[]; // [5, 10, 20, 50, 100] by default defaultPageSize?: number; // 10 by default - pageIndexStringType?: 'items' | 'pages'; // items by default optionsComponent?: typeof SvelteComponent; server?: ServerConfig; diff --git a/src/routes/components/table/docs/TableConfigDocs.svelte b/src/routes/components/table/docs/TableConfigDocs.svelte index c18b803..cb5eb68 100644 --- a/src/routes/components/table/docs/TableConfigDocs.svelte +++ b/src/routes/components/table/docs/TableConfigDocs.svelte @@ -190,21 +190,6 @@

-
-
-
pageIndexStringType:
-
"items" or "pages"
-
- -

- Whether the table should display page index information by number of items or pages. "items" - by default. -

-
-
optionsComponent:
diff --git a/src/routes/components/table/examples/TableDate.svelte b/src/routes/components/table/examples/TableDate.svelte index 531c387..b26f9ed 100644 --- a/src/routes/components/table/examples/TableDate.svelte +++ b/src/routes/components/table/examples/TableDate.svelte @@ -9,7 +9,6 @@ const usersBDConfig: TableConfig = { id: 'usersBD', data: usersBDStore, - pageIndexStringType: 'items', columns: { dateOfBirth: { header: 'Date of birth', @@ -25,7 +24,7 @@
- +