@laerdal/life-react-components 1.5.1-dev.4 → 1.5.1-dev.7.full
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Accordion/ContentAccordion.cjs +3 -3
- package/dist/Accordion/ContentAccordion.cjs.map +1 -1
- package/dist/Accordion/ContentAccordion.js +2 -3
- package/dist/Accordion/ContentAccordion.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +2 -0
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +2 -0
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/index.cjs +8 -0
- package/dist/Dropdown/index.cjs.map +1 -1
- package/dist/Dropdown/index.d.ts +2 -1
- package/dist/Dropdown/index.js +2 -1
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/InputFields/Checkbox.cjs +5 -4
- package/dist/InputFields/Checkbox.cjs.map +1 -1
- package/dist/InputFields/Checkbox.d.ts +6 -0
- package/dist/InputFields/Checkbox.js +3 -4
- package/dist/InputFields/Checkbox.js.map +1 -1
- package/dist/InputFields/RadioButton.cjs +3 -3
- package/dist/InputFields/RadioButton.cjs.map +1 -1
- package/dist/InputFields/RadioButton.js +2 -3
- package/dist/InputFields/RadioButton.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +4 -7
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.js +4 -7
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/QuizButton/QuizButton.cjs +1 -3
- package/dist/QuizButton/QuizButton.cjs.map +1 -1
- package/dist/QuizButton/QuizButton.js +2 -4
- package/dist/QuizButton/QuizButton.js.map +1 -1
- package/dist/Table/Table.cjs +1 -1
- package/dist/Table/Table.cjs.map +1 -1
- package/dist/Table/Table.js +1 -1
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableBody.cjs +27 -21
- package/dist/Table/TableBody.cjs.map +1 -1
- package/dist/Table/TableBody.js +26 -21
- package/dist/Table/TableBody.js.map +1 -1
- package/dist/Table/TableFooter.cjs +7 -6
- package/dist/Table/TableFooter.cjs.map +1 -1
- package/dist/Table/TableFooter.js +6 -6
- package/dist/Table/TableFooter.js.map +1 -1
- package/dist/Table/TableHeaders.cjs +6 -4
- package/dist/Table/TableHeaders.cjs.map +1 -1
- package/dist/Table/TableHeaders.js +5 -4
- package/dist/Table/TableHeaders.js.map +1 -1
- package/dist/Table/TableStyles.cjs +9 -7
- package/dist/Table/TableStyles.cjs.map +1 -1
- package/dist/Table/TableStyles.js +8 -7
- package/dist/Table/TableStyles.js.map +1 -1
- package/dist/Table/TableTypes.d.ts +2 -0
- package/package.json +1 -1
package/dist/Table/Table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/Table.tsx"],"names":["React","Size","StyledTable","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sortedColumn","setSortedColumn","sortedDirection","setSortedDirection","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","tmpFilteredRows","filterAndSortRows","rowsFrom","rowsTo","slice","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","some","sortingDirection","sortingColumn","find","sort","a","b","sortTableColumn","tmpColumn","sortable","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","Medium"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n accordion,\n collapsed = true,\n collapsedRows\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length );\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [ accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (columns.some((column) => column.sortingDirection)) {\n // Let's find the sorting column\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\n\n // Update sorted column data\n setSortedDirection(sortingColumn.sortingDirection!);\n setSortedColumn(sortingColumn.key!);\n\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n // Let's remove any active sorting\n columns = columns.map((tmpColumn: TableColumn) => {\n // Let's apply new sorting\n // Let's check if it is the column for which we have to apply sorting\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\n // Let's check if sorting is not defined\n // If so, let's toggle the sorting direction\n if (tmpColumn.sortingDirection !== undefined) {\n if (tmpColumn.sortingDirection === 'asc') {\n tmpColumn.sortingDirection = 'desc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('desc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'desc');\n }\n } else {\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else {\n // Let's apply the initial sorting\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else if (tmpColumn.sortingDirection !== undefined) {\n // Let's remove sorting\n tmpColumn.sortingDirection = undefined;\n }\n\n return tmpColumn;\n });\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={'table'}>\n <TableHeader {...props}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n selectAllState={selectAllState}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n </StyledTable>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium} color=\"#ffffff\"/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"file":"Table.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Table/Table.tsx"],"names":["React","Size","StyledTable","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sortedColumn","setSortedColumn","sortedDirection","setSortedDirection","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","tmpFilteredRows","filterAndSortRows","rowsFrom","rowsTo","slice","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","some","sortingDirection","sortingColumn","find","sort","a","b","sortTableColumn","tmpColumn","sortable","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","layout","Medium"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n accordion,\n collapsed = true,\n collapsedRows\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length );\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [ accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (columns.some((column) => column.sortingDirection)) {\n // Let's find the sorting column\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\n\n // Update sorted column data\n setSortedDirection(sortingColumn.sortingDirection!);\n setSortedColumn(sortingColumn.key!);\n\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n // Let's remove any active sorting\n columns = columns.map((tmpColumn: TableColumn) => {\n // Let's apply new sorting\n // Let's check if it is the column for which we have to apply sorting\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\n // Let's check if sorting is not defined\n // If so, let's toggle the sorting direction\n if (tmpColumn.sortingDirection !== undefined) {\n if (tmpColumn.sortingDirection === 'asc') {\n tmpColumn.sortingDirection = 'desc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('desc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'desc');\n }\n } else {\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else {\n // Let's apply the initial sorting\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else if (tmpColumn.sortingDirection !== undefined) {\n // Let's remove sorting\n tmpColumn.sortingDirection = undefined;\n }\n\n return tmpColumn;\n });\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={`table ${props.layout || ''}`}>\n <TableHeader {...props}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n selectAllState={selectAllState}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n </StyledTable>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium} color=\"#ffffff\"/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"file":"Table.js"}
|
package/dist/Table/TableBody.cjs
CHANGED
|
@@ -27,6 +27,8 @@ var _HyperLink = require("../HyperLink");
|
|
|
27
27
|
|
|
28
28
|
var _TableStyles = require("./TableStyles");
|
|
29
29
|
|
|
30
|
+
var _common = require("../common");
|
|
31
|
+
|
|
30
32
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
33
|
|
|
32
34
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -42,16 +44,17 @@ var TableBody = function TableBody(props) {
|
|
|
42
44
|
switch (column.type) {
|
|
43
45
|
case 'link':
|
|
44
46
|
{
|
|
45
|
-
var
|
|
47
|
+
var tmp = _objectSpread({
|
|
46
48
|
variant: 'default',
|
|
47
|
-
href: '#'
|
|
49
|
+
href: '#',
|
|
50
|
+
tabIndex: props.showLoadingIndicator ? -1 : 0
|
|
48
51
|
}, column.additionalProps);
|
|
49
52
|
|
|
50
53
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_HyperLink.HyperLink, _objectSpread(_objectSpread({
|
|
51
54
|
style: column.colorFn && {
|
|
52
55
|
color: column.colorFn(row, column.key)
|
|
53
56
|
}
|
|
54
|
-
},
|
|
57
|
+
}, tmp), {}, {
|
|
55
58
|
onClick: function onClick(e) {
|
|
56
59
|
e.preventDefault();
|
|
57
60
|
e.stopPropagation();
|
|
@@ -63,14 +66,15 @@ var TableBody = function TableBody(props) {
|
|
|
63
66
|
|
|
64
67
|
case 'icon':
|
|
65
68
|
{
|
|
66
|
-
var
|
|
69
|
+
var _tmp = _objectSpread({
|
|
67
70
|
iconColor: column.colorFn && column.colorFn(row, column.key),
|
|
68
71
|
variant: 'secondary',
|
|
69
72
|
shape: 'circular',
|
|
73
|
+
tabIndex: props.showLoadingIndicator ? -1 : 0,
|
|
70
74
|
useTransparentBackground: true
|
|
71
75
|
}, column.additionalProps);
|
|
72
76
|
|
|
73
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Iconbutton.default, _objectSpread(_objectSpread({},
|
|
77
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Iconbutton.default, _objectSpread(_objectSpread({}, _tmp), {}, {
|
|
74
78
|
action: function action(e) {
|
|
75
79
|
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
76
80
|
column.action && column.action(row, e);
|
|
@@ -81,16 +85,17 @@ var TableBody = function TableBody(props) {
|
|
|
81
85
|
|
|
82
86
|
case 'button':
|
|
83
87
|
{
|
|
84
|
-
var
|
|
88
|
+
var _tmp2 = _objectSpread({
|
|
85
89
|
variant: 'tertiary',
|
|
86
|
-
size: _types.Size.Small
|
|
90
|
+
size: _types.Size.Small,
|
|
91
|
+
tabIndex: props.showLoadingIndicator ? -1 : 0
|
|
87
92
|
}, column.additionalProps);
|
|
88
93
|
|
|
89
94
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, _objectSpread(_objectSpread({
|
|
90
95
|
style: column.colorFn && {
|
|
91
96
|
color: column.colorFn(row, column.key)
|
|
92
97
|
}
|
|
93
|
-
},
|
|
98
|
+
}, _tmp2), {}, {
|
|
94
99
|
onClick: function onClick(e) {
|
|
95
100
|
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
96
101
|
column.action && column.action(row, e);
|
|
@@ -121,43 +126,44 @@ var TableBody = function TableBody(props) {
|
|
|
121
126
|
}
|
|
122
127
|
};
|
|
123
128
|
|
|
129
|
+
var isSelected = function isSelected(row) {
|
|
130
|
+
var _props$selected;
|
|
131
|
+
|
|
132
|
+
return props.multiSelect && ((_props$selected = props.selected) === null || _props$selected === void 0 ? void 0 : _props$selected.indexOf(props.keyExpr ? row[props.keyExpr] : row)) > -1 || !props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row);
|
|
133
|
+
};
|
|
134
|
+
|
|
124
135
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableBody, {
|
|
125
136
|
children: props.currentPageRows.length > 0 ? props.currentPageRows.map(function (row, index) {
|
|
126
|
-
var _props$selected;
|
|
127
|
-
|
|
128
137
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableBodyRow, {
|
|
129
|
-
className: props.selectable ? 'selectable' : '',
|
|
138
|
+
className: "".concat(props.selectable ? 'selectable' : '', " ").concat(isSelected(row) ? 'selected' : ''),
|
|
130
139
|
onClick: function onClick() {
|
|
131
140
|
return props.onRowClick && props.onRowClick(row);
|
|
132
141
|
},
|
|
133
|
-
onMouseDown:
|
|
134
|
-
return event.preventDefault();
|
|
135
|
-
},
|
|
142
|
+
onMouseDown: _common.defaultOnMouseDownHandler,
|
|
136
143
|
onKeyPress: function onKeyPress(e) {
|
|
137
144
|
if (e.key === 'Enter') {
|
|
138
145
|
props.onRowClick && props.onRowClick(row);
|
|
139
146
|
}
|
|
140
147
|
},
|
|
141
|
-
tabIndex: props.selectable ? 0 : undefined,
|
|
148
|
+
tabIndex: props.selectable && !props.showLoadingIndicator ? 0 : undefined,
|
|
142
149
|
"data-testid": "TestTableDataRow",
|
|
143
150
|
children: [props.multiSelect && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
|
|
144
151
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCellContent, {
|
|
145
152
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputFields.Checkbox, {
|
|
146
|
-
selected: (
|
|
147
|
-
readonly: true
|
|
153
|
+
selected: isSelected(row)
|
|
148
154
|
})
|
|
149
155
|
})
|
|
150
156
|
}), props.columns.map(function (column) {
|
|
151
157
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
|
|
152
|
-
style:
|
|
153
|
-
color: column.colorFn(row, column.key),
|
|
154
|
-
maxWidth: column.width
|
|
155
|
-
} : {
|
|
158
|
+
style: {
|
|
156
159
|
maxWidth: column.width
|
|
157
160
|
},
|
|
158
161
|
title: column.shortenText && row[column.key],
|
|
159
162
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCellContent, {
|
|
160
163
|
className: "".concat(column.shortenText ? "truncate-text" : '', " ").concat(column.justify || ''),
|
|
164
|
+
style: {
|
|
165
|
+
color: column.colorFn && column.colorFn(row, column.key)
|
|
166
|
+
},
|
|
161
167
|
children: renderCellBody(column, row)
|
|
162
168
|
})
|
|
163
169
|
}, "row_".concat(index, "_").concat(column.key));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["TableBody","props","renderCellBody","column","row","type","variant","href","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Size","Small","customContent","currentPageRows","length","map","index","selectable","onRowClick","event","undefined","multiSelect","selected","indexOf","keyExpr","columns","maxWidth","width","shortenText","justify"],"mappings":"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","sourcesContent":["import {TableColumn, TableProps} from './TableTypes';\nimport {Button} from '../Button';\nimport {Size} from '../types';\nimport * as React from 'react';\nimport {Checkbox} from '../InputFields';\nimport {ButtonProps} from '../Button/Button';\nimport IconButton, {IconButtonProps} from '../Button/Iconbutton';\nimport {HyperlinkProps} from '../HyperLink/HyperLink';\nimport {HyperLink} from '../HyperLink';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon, StyledTableCellText\n} from './TableStyles';\n\n\ninterface TableBodyProps extends TableProps {\n currentPageRows: any[];\n onRowClick?: (row: any) => void;\n selected?: any | any[];\n}\n\nconst TableBody: React.FC<TableBodyProps> = (props) => {\n\n const renderCellBody = (column: TableColumn, row: any) => {\n switch (column.type) {\n case 'link': {\n const props = ({variant: 'default', href: '#', ...column.additionalProps}) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...props}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </HyperLink>\n );\n }\n case 'icon': {\n const props = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...props}\n action={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {column.icon}\n </IconButton>\n }\n case 'button': {\n const props = ({\n variant: 'tertiary',\n size: Size.Small,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...props}\n onClick={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </Button>\n }\n case 'boolean':\n return <Checkbox selected={!!row[column.key]} readonly={true}/>;\n case 'custom':\n return column.customContent && column.customContent(row, column.key);\n case 'number':\n case 'text':\n default:\n return (\n <>\n {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n return (\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={props.selectable ? 'selectable' : ''}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={(event) => event.preventDefault()}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1}\n readonly={true}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={column.colorFn ? {\n color: column.colorFn(row, column.key),\n maxWidth: column.width\n } : {maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableBodyRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n There are no rows to display\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableBodyRow>\n )}\n\n </StyledTableBody>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["TableBody","props","renderCellBody","column","row","type","tmp","variant","href","tabIndex","showLoadingIndicator","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Size","Small","customContent","isSelected","multiSelect","selected","indexOf","keyExpr","currentPageRows","length","map","index","selectable","onRowClick","defaultOnMouseDownHandler","undefined","columns","maxWidth","width","shortenText","justify"],"mappings":"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","sourcesContent":["import {TableColumn, TableProps} from './TableTypes';\nimport {Button} from '../Button';\nimport {Size} from '../types';\nimport * as React from 'react';\nimport {Checkbox} from '../InputFields';\nimport {ButtonProps} from '../Button/Button';\nimport IconButton, {IconButtonProps} from '../Button/Iconbutton';\nimport {HyperlinkProps} from '../HyperLink/HyperLink';\nimport {HyperLink} from '../HyperLink';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon, StyledTableCellText\n} from './TableStyles';\nimport {defaultOnMouseDownHandler} from '../common';\n\n\ninterface TableBodyProps extends TableProps {\n currentPageRows: any[];\n onRowClick?: (row: any) => void;\n selected?: any | any[];\n}\n\nconst TableBody: React.FC<TableBodyProps> = (props) => {\n\n const renderCellBody = (column: TableColumn, row: any) => {\n switch (column.type) {\n case 'link': {\n const tmp = ({\n variant: 'default',\n href: '#',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </HyperLink>\n );\n }\n case 'icon': {\n const tmp = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...tmp}\n action={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {column.icon}\n </IconButton>\n }\n case 'button': {\n const tmp = ({\n variant: 'tertiary',\n size: Size.Small,\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\n onClick={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </Button>\n }\n case 'boolean':\n return <Checkbox selected={!!row[column.key]} readonly={true}/>;\n case 'custom':\n return column.customContent && column.customContent(row, column.key);\n case 'number':\n case 'text':\n default:\n return (\n <>\n {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n\n const isSelected = (row: any) => {\n return (props.multiSelect && props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1) ||\n (!props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row));\n }\n\n return (\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={`${props.selectable ? 'selectable' : ''} ${ isSelected(row) ? 'selected' : ''}`}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable && !props.showLoadingIndicator ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={isSelected(row)}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={{maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}\n style={{\n color: column.colorFn && column.colorFn(row, column.key),\n }}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableBodyRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n There are no rows to display\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableBodyRow>\n )}\n\n </StyledTableBody>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.cjs"}
|
package/dist/Table/TableBody.js
CHANGED
|
@@ -12,6 +12,7 @@ import { Checkbox } from '../InputFields';
|
|
|
12
12
|
import IconButton from '../Button/Iconbutton';
|
|
13
13
|
import { HyperLink } from '../HyperLink';
|
|
14
14
|
import { StyledTableBody, StyledTableBodyRow, StyledTableCell, StyledTableCellContent, StyledTableCellIcon, StyledTableCellText } from './TableStyles';
|
|
15
|
+
import { defaultOnMouseDownHandler } from '../common';
|
|
15
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
17
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
18
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -21,16 +22,17 @@ var TableBody = function TableBody(props) {
|
|
|
21
22
|
switch (column.type) {
|
|
22
23
|
case 'link':
|
|
23
24
|
{
|
|
24
|
-
var
|
|
25
|
+
var tmp = _objectSpread({
|
|
25
26
|
variant: 'default',
|
|
26
|
-
href: '#'
|
|
27
|
+
href: '#',
|
|
28
|
+
tabIndex: props.showLoadingIndicator ? -1 : 0
|
|
27
29
|
}, column.additionalProps);
|
|
28
30
|
|
|
29
31
|
return /*#__PURE__*/_jsx(HyperLink, _objectSpread(_objectSpread({
|
|
30
32
|
style: column.colorFn && {
|
|
31
33
|
color: column.colorFn(row, column.key)
|
|
32
34
|
}
|
|
33
|
-
},
|
|
35
|
+
}, tmp), {}, {
|
|
34
36
|
onClick: function onClick(e) {
|
|
35
37
|
e.preventDefault();
|
|
36
38
|
e.stopPropagation();
|
|
@@ -42,14 +44,15 @@ var TableBody = function TableBody(props) {
|
|
|
42
44
|
|
|
43
45
|
case 'icon':
|
|
44
46
|
{
|
|
45
|
-
var
|
|
47
|
+
var _tmp = _objectSpread({
|
|
46
48
|
iconColor: column.colorFn && column.colorFn(row, column.key),
|
|
47
49
|
variant: 'secondary',
|
|
48
50
|
shape: 'circular',
|
|
51
|
+
tabIndex: props.showLoadingIndicator ? -1 : 0,
|
|
49
52
|
useTransparentBackground: true
|
|
50
53
|
}, column.additionalProps);
|
|
51
54
|
|
|
52
|
-
return /*#__PURE__*/_jsx(IconButton, _objectSpread(_objectSpread({},
|
|
55
|
+
return /*#__PURE__*/_jsx(IconButton, _objectSpread(_objectSpread({}, _tmp), {}, {
|
|
53
56
|
action: function action(e) {
|
|
54
57
|
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
55
58
|
column.action && column.action(row, e);
|
|
@@ -60,16 +63,17 @@ var TableBody = function TableBody(props) {
|
|
|
60
63
|
|
|
61
64
|
case 'button':
|
|
62
65
|
{
|
|
63
|
-
var
|
|
66
|
+
var _tmp2 = _objectSpread({
|
|
64
67
|
variant: 'tertiary',
|
|
65
|
-
size: Size.Small
|
|
68
|
+
size: Size.Small,
|
|
69
|
+
tabIndex: props.showLoadingIndicator ? -1 : 0
|
|
66
70
|
}, column.additionalProps);
|
|
67
71
|
|
|
68
72
|
return /*#__PURE__*/_jsx(Button, _objectSpread(_objectSpread({
|
|
69
73
|
style: column.colorFn && {
|
|
70
74
|
color: column.colorFn(row, column.key)
|
|
71
75
|
}
|
|
72
|
-
},
|
|
76
|
+
}, _tmp2), {}, {
|
|
73
77
|
onClick: function onClick(e) {
|
|
74
78
|
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
75
79
|
column.action && column.action(row, e);
|
|
@@ -100,43 +104,44 @@ var TableBody = function TableBody(props) {
|
|
|
100
104
|
}
|
|
101
105
|
};
|
|
102
106
|
|
|
107
|
+
var isSelected = function isSelected(row) {
|
|
108
|
+
var _props$selected;
|
|
109
|
+
|
|
110
|
+
return props.multiSelect && ((_props$selected = props.selected) === null || _props$selected === void 0 ? void 0 : _props$selected.indexOf(props.keyExpr ? row[props.keyExpr] : row)) > -1 || !props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row);
|
|
111
|
+
};
|
|
112
|
+
|
|
103
113
|
return /*#__PURE__*/_jsx(StyledTableBody, {
|
|
104
114
|
children: props.currentPageRows.length > 0 ? props.currentPageRows.map(function (row, index) {
|
|
105
|
-
var _props$selected;
|
|
106
|
-
|
|
107
115
|
return /*#__PURE__*/_jsxs(StyledTableBodyRow, {
|
|
108
|
-
className: props.selectable ? 'selectable' : '',
|
|
116
|
+
className: "".concat(props.selectable ? 'selectable' : '', " ").concat(isSelected(row) ? 'selected' : ''),
|
|
109
117
|
onClick: function onClick() {
|
|
110
118
|
return props.onRowClick && props.onRowClick(row);
|
|
111
119
|
},
|
|
112
|
-
onMouseDown:
|
|
113
|
-
return event.preventDefault();
|
|
114
|
-
},
|
|
120
|
+
onMouseDown: defaultOnMouseDownHandler,
|
|
115
121
|
onKeyPress: function onKeyPress(e) {
|
|
116
122
|
if (e.key === 'Enter') {
|
|
117
123
|
props.onRowClick && props.onRowClick(row);
|
|
118
124
|
}
|
|
119
125
|
},
|
|
120
|
-
tabIndex: props.selectable ? 0 : undefined,
|
|
126
|
+
tabIndex: props.selectable && !props.showLoadingIndicator ? 0 : undefined,
|
|
121
127
|
"data-testid": "TestTableDataRow",
|
|
122
128
|
children: [props.multiSelect && /*#__PURE__*/_jsx(StyledTableCell, {
|
|
123
129
|
children: /*#__PURE__*/_jsx(StyledTableCellContent, {
|
|
124
130
|
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
125
|
-
selected: (
|
|
126
|
-
readonly: true
|
|
131
|
+
selected: isSelected(row)
|
|
127
132
|
})
|
|
128
133
|
})
|
|
129
134
|
}), props.columns.map(function (column) {
|
|
130
135
|
return /*#__PURE__*/_jsx(StyledTableCell, {
|
|
131
|
-
style:
|
|
132
|
-
color: column.colorFn(row, column.key),
|
|
133
|
-
maxWidth: column.width
|
|
134
|
-
} : {
|
|
136
|
+
style: {
|
|
135
137
|
maxWidth: column.width
|
|
136
138
|
},
|
|
137
139
|
title: column.shortenText && row[column.key],
|
|
138
140
|
children: /*#__PURE__*/_jsx(StyledTableCellContent, {
|
|
139
141
|
className: "".concat(column.shortenText ? "truncate-text" : '', " ").concat(column.justify || ''),
|
|
142
|
+
style: {
|
|
143
|
+
color: column.colorFn && column.colorFn(row, column.key)
|
|
144
|
+
},
|
|
140
145
|
children: renderCellBody(column, row)
|
|
141
146
|
})
|
|
142
147
|
}, "row_".concat(index, "_").concat(column.key));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["Button","Size","React","Checkbox","IconButton","HyperLink","StyledTableBody","StyledTableBodyRow","StyledTableCell","StyledTableCellContent","StyledTableCellIcon","StyledTableCellText","TableBody","props","renderCellBody","column","row","type","variant","href","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Small","customContent","currentPageRows","length","map","index","selectable","onRowClick","event","undefined","multiSelect","selected","indexOf","keyExpr","columns","maxWidth","width","shortenText","justify"],"mappings":"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","sourcesContent":["import {TableColumn, TableProps} from './TableTypes';\nimport {Button} from '../Button';\nimport {Size} from '../types';\nimport * as React from 'react';\nimport {Checkbox} from '../InputFields';\nimport {ButtonProps} from '../Button/Button';\nimport IconButton, {IconButtonProps} from '../Button/Iconbutton';\nimport {HyperlinkProps} from '../HyperLink/HyperLink';\nimport {HyperLink} from '../HyperLink';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon, StyledTableCellText\n} from './TableStyles';\n\n\ninterface TableBodyProps extends TableProps {\n currentPageRows: any[];\n onRowClick?: (row: any) => void;\n selected?: any | any[];\n}\n\nconst TableBody: React.FC<TableBodyProps> = (props) => {\n\n const renderCellBody = (column: TableColumn, row: any) => {\n switch (column.type) {\n case 'link': {\n const props = ({variant: 'default', href: '#', ...column.additionalProps}) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...props}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </HyperLink>\n );\n }\n case 'icon': {\n const props = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...props}\n action={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {column.icon}\n </IconButton>\n }\n case 'button': {\n const props = ({\n variant: 'tertiary',\n size: Size.Small,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...props}\n onClick={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </Button>\n }\n case 'boolean':\n return <Checkbox selected={!!row[column.key]} readonly={true}/>;\n case 'custom':\n return column.customContent && column.customContent(row, column.key);\n case 'number':\n case 'text':\n default:\n return (\n <>\n {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n return (\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={props.selectable ? 'selectable' : ''}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={(event) => event.preventDefault()}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1}\n readonly={true}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={column.colorFn ? {\n color: column.colorFn(row, column.key),\n maxWidth: column.width\n } : {maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableBodyRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n There are no rows to display\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableBodyRow>\n )}\n\n </StyledTableBody>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["Button","Size","React","Checkbox","IconButton","HyperLink","StyledTableBody","StyledTableBodyRow","StyledTableCell","StyledTableCellContent","StyledTableCellIcon","StyledTableCellText","defaultOnMouseDownHandler","TableBody","props","renderCellBody","column","row","type","tmp","variant","href","tabIndex","showLoadingIndicator","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Small","customContent","isSelected","multiSelect","selected","indexOf","keyExpr","currentPageRows","length","map","index","selectable","onRowClick","undefined","columns","maxWidth","width","shortenText","justify"],"mappings":"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","sourcesContent":["import {TableColumn, TableProps} from './TableTypes';\nimport {Button} from '../Button';\nimport {Size} from '../types';\nimport * as React from 'react';\nimport {Checkbox} from '../InputFields';\nimport {ButtonProps} from '../Button/Button';\nimport IconButton, {IconButtonProps} from '../Button/Iconbutton';\nimport {HyperlinkProps} from '../HyperLink/HyperLink';\nimport {HyperLink} from '../HyperLink';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon, StyledTableCellText\n} from './TableStyles';\nimport {defaultOnMouseDownHandler} from '../common';\n\n\ninterface TableBodyProps extends TableProps {\n currentPageRows: any[];\n onRowClick?: (row: any) => void;\n selected?: any | any[];\n}\n\nconst TableBody: React.FC<TableBodyProps> = (props) => {\n\n const renderCellBody = (column: TableColumn, row: any) => {\n switch (column.type) {\n case 'link': {\n const tmp = ({\n variant: 'default',\n href: '#',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </HyperLink>\n );\n }\n case 'icon': {\n const tmp = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...tmp}\n action={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {column.icon}\n </IconButton>\n }\n case 'button': {\n const tmp = ({\n variant: 'tertiary',\n size: Size.Small,\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\n onClick={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </Button>\n }\n case 'boolean':\n return <Checkbox selected={!!row[column.key]} readonly={true}/>;\n case 'custom':\n return column.customContent && column.customContent(row, column.key);\n case 'number':\n case 'text':\n default:\n return (\n <>\n {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n\n const isSelected = (row: any) => {\n return (props.multiSelect && props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1) ||\n (!props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row));\n }\n\n return (\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={`${props.selectable ? 'selectable' : ''} ${ isSelected(row) ? 'selected' : ''}`}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable && !props.showLoadingIndicator ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={isSelected(row)}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={{maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}\n style={{\n color: column.colorFn && column.colorFn(row, column.key),\n }}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableBodyRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n There are no rows to display\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableBodyRow>\n )}\n\n </StyledTableBody>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.js"}
|
|
@@ -23,6 +23,8 @@ var _TableStyles = require("./TableStyles");
|
|
|
23
23
|
|
|
24
24
|
var _icons = require("../icons");
|
|
25
25
|
|
|
26
|
+
var _common = require("../common");
|
|
27
|
+
|
|
26
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
29
|
|
|
28
30
|
var TableFooter = function TableFooter(props) {
|
|
@@ -45,13 +47,11 @@ var TableFooter = function TableFooter(props) {
|
|
|
45
47
|
onClick: function onClick() {
|
|
46
48
|
return props.setIsCollapsed(!props.isCollapsed);
|
|
47
49
|
},
|
|
48
|
-
onMouseDown:
|
|
49
|
-
return e.preventDefault();
|
|
50
|
-
},
|
|
50
|
+
onMouseDown: _common.defaultOnMouseDownHandler,
|
|
51
51
|
disabled: props.isCollapsed && props.rows.length <= props.rowsPerPage,
|
|
52
52
|
children: [props.isCollapsed && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
53
53
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
54
|
-
children: ["Show more(", props.rows.length - props.rowsPerPage, ")"]
|
|
54
|
+
children: ["Show more (", props.rows.length - props.rowsPerPage, ")"]
|
|
55
55
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.ArrowDropDown, {})]
|
|
56
56
|
}), !props.isCollapsed && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
57
57
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
@@ -64,6 +64,7 @@ var TableFooter = function TableFooter(props) {
|
|
|
64
64
|
list: rowsPerPageValues,
|
|
65
65
|
margin: '0',
|
|
66
66
|
disableSorting: true,
|
|
67
|
+
disabled: props.showLoadingIndicator,
|
|
67
68
|
onSelect: function onSelect(value) {
|
|
68
69
|
return props.onRowsPerPageChange(+value);
|
|
69
70
|
},
|
|
@@ -79,7 +80,7 @@ var TableFooter = function TableFooter(props) {
|
|
|
79
80
|
action: function action() {
|
|
80
81
|
return props.prevPage();
|
|
81
82
|
},
|
|
82
|
-
disabled: props.from === 1,
|
|
83
|
+
disabled: props.from === 1 || props.showLoadingIndicator,
|
|
83
84
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ChevronLeft, {
|
|
84
85
|
size: "24",
|
|
85
86
|
color: _styles.COLORS.neutral_600
|
|
@@ -90,7 +91,7 @@ var TableFooter = function TableFooter(props) {
|
|
|
90
91
|
action: function action() {
|
|
91
92
|
return props.nextPage();
|
|
92
93
|
},
|
|
93
|
-
disabled: props.to === props.total,
|
|
94
|
+
disabled: props.to === props.total || props.showLoadingIndicator,
|
|
94
95
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ChevronRight, {
|
|
95
96
|
size: "24",
|
|
96
97
|
color: _styles.COLORS.neutral_600
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["TableFooter","props","rowsPerPageValues","label","dropDownText","rowsPerPage","columns","length","multiSelect","accordion","setIsCollapsed","isCollapsed","
|
|
1
|
+
{"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["TableFooter","props","rowsPerPageValues","label","dropDownText","rowsPerPage","columns","length","multiSelect","accordion","setIsCollapsed","isCollapsed","defaultOnMouseDownHandler","rows","showLoadingIndicator","value","onRowsPerPageChange","total","from","to","prevPage","COLORS","neutral_600","nextPage"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownFilter} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {DropdownFilterItem} from '../Dropdown/DropdownFilter';\nimport {\n StyledTableFooter, StyledTableFooterCollapseButton,\n StyledTableFooterContent,\n StyledTableFooterControls,\n StyledTableFooterCurrentInfo\n} from './TableStyles';\nimport {SystemIcons} from '../icons';\nimport {defaultOnMouseDownHandler} from '../common';\n\n\ninterface TableFooterProps extends TableProps {\n onRowsPerPageChange: (value: number) => void;\n rowsPerPage: number;\n from?: number;\n to?: number;\n total?: number;\n nextPage: () => void;\n prevPage: () => void;\n setIsCollapsed: (isCollapsed: boolean) => void;\n isCollapsed: boolean;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageValues: DropdownFilterItem[] = [{label: '10'}, {label: '20'}, {label: '50'}, {label: '100'}];\n\n const dropDownText = `Rows per page: ${props.rowsPerPage}`;\n\n return (\n <StyledTableFooter>\n <tr>\n <td colSpan={props.columns.length + (props.multiSelect ? 1 : 0)} data-testid=\"TestTableFooterRow\">\n {\n props.accordion &&\n <StyledTableFooterCollapseButton onClick={() => props.setIsCollapsed(!props.isCollapsed)}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={props.isCollapsed && props.rows.length <= props.rowsPerPage}>\n {\n props.isCollapsed &&\n <>\n <span>Show more ({props.rows.length - props.rowsPerPage})</span>\n <SystemIcons.ArrowDropDown/>\n </>\n }\n {\n !props.isCollapsed &&\n <>\n <span>Show less</span>\n <SystemIcons.ArrowDropUp/>\n </>\n }\n </StyledTableFooterCollapseButton>\n }\n {\n !props.accordion &&\n <StyledTableFooterContent>\n <DropdownFilter\n id=\"rows-per-page\"\n list={rowsPerPageValues}\n margin={'0'}\n disableSorting={true}\n disabled={props.showLoadingIndicator}\n onSelect={(value) => props.onRowsPerPageChange(+value)}\n initalValue={dropDownText}\n keepInitialValue={true}\n isButton={true}\n />\n <StyledTableFooterCurrentInfo>\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </StyledTableFooterCurrentInfo>\n <StyledTableFooterControls>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1 || props.showLoadingIndicator}>\n <ChevronLeft size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.nextPage()}\n disabled={props.to === props.total || props.showLoadingIndicator}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </StyledTableFooterControls>\n </StyledTableFooterContent>\n }\n </td>\n </tr>\n </StyledTableFooter>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.cjs"}
|