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 @@