@coveord/plasma-mantine 48.1.1 → 48.2.0
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/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +7 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/table/Table.js +7 -1
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/definitions/components/table/Table.d.ts.map +1 -1
- package/dist/esm/components/table/Table.js +7 -1
- package/dist/esm/components/table/Table.js.map +1 -1
- package/package.json +1 -1
- package/src/components/table/Table.tsx +7 -0
|
@@ -36,7 +36,10 @@ var useStyles = (0, _core.createStyles)(function(theme, param, getRef) {
|
|
|
36
36
|
var hasHeader = param.hasHeader;
|
|
37
37
|
return {
|
|
38
38
|
table: {
|
|
39
|
-
width: "100%"
|
|
39
|
+
width: "100%",
|
|
40
|
+
"& td:first-child": {
|
|
41
|
+
paddingLeft: theme.spacing.md
|
|
42
|
+
}
|
|
40
43
|
},
|
|
41
44
|
header: {
|
|
42
45
|
position: "sticky",
|
|
@@ -44,6 +47,9 @@ var useStyles = (0, _core.createStyles)(function(theme, param, getRef) {
|
|
|
44
47
|
backgroundColor: theme.colorScheme === "dark" ? theme.black : theme.white,
|
|
45
48
|
transition: "box-shadow 150ms ease",
|
|
46
49
|
zIndex: 12,
|
|
50
|
+
"& tr th:first-child div": {
|
|
51
|
+
paddingLeft: theme.spacing.md
|
|
52
|
+
},
|
|
47
53
|
"&::after": {
|
|
48
54
|
content: '""',
|
|
49
55
|
position: "absolute",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Collapse, createStyles, Loader, Skeleton, Table as MantineTable} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useClickOutside, useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n flexRender,\n getCoreRowModel,\n Row,\n TableState,\n useReactTable,\n} from '@tanstack/react-table';\nimport {InitialTableState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Fragment, ReactElement, ReactNode, useCallback, useEffect, useState} from 'react';\n\nimport {TableActions} from './TableActions';\nimport {TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {onTableChangeEvent, TableContext, TableFormType} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {Th} from './Th';\n\nconst useStyles = createStyles<string, {hasHeader: boolean}>((theme, {hasHeader}, getRef) => ({\n table: {\n width: '100%',\n },\n header: {\n position: 'sticky',\n top: hasHeader ? 69 : 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 12, // skeleton is 11\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n },\n\n rowSelected: {\n ref: getRef('rowSelected'),\n },\n\n row: {\n [`&:hover, &.${getRef('rowSelected')}`]: {\n backgroundColor:\n theme.colorScheme === 'dark'\n ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2)\n : theme.colors[theme.primaryColor][0],\n },\n },\n}));\n\ninterface TableProps<T> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState & Partial<TableFormType>;\n}\n\ninterface TableType {\n <T>(props: TableProps<T>): ReactElement;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n DateRangePicker: typeof TableDateRangePicker;\n}\n\nexport const Table: TableType = <T,>({\n data,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n onMount,\n onChange,\n children,\n loading = false,\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {predicates: initialState?.predicates ?? {}, dateRange: initialState?.dateRange ?? [null, null]},\n });\n\n const {cx, classes} = useStyles({hasHeader: !!header});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {pagination: {pageSize: TablePerPage.DEFAULT_SIZE}}),\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: true,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n });\n const [state, setState] = useState<TableState>(table.initialState);\n table.setOptions((prev) => ({\n ...prev,\n state,\n onStateChange: setState,\n }));\n\n const triggerChange = () => onChange?.({...state, ...form.values});\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n }, []);\n\n const outsideClickRef = useClickOutside(() => {\n table.resetRowSelection(true);\n });\n\n useDidUpdate(() => {\n triggerChange();\n clearSelection();\n }, [state.globalFilter, state.sorting, state.pagination, form.values]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n const clearSelection = () => {\n setState((prevState) => ({...prevState, rowSelection: {}}));\n };\n\n const getSelectedRow = useCallback(\n () => table.getSelectedRowModel().flatRows?.[0]?.original ?? null,\n [state.rowSelection]\n );\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const toggleRowSelection = (row: Row<T>) => {\n table.setRowSelection(() => ({[row.id]: !row.getIsSelected()}));\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={() => toggleRowSelection(row)}\n className={cx(classes.row, {[classes.rowSelected]: row.getIsSelected()})}\n >\n {row.getVisibleCells().map((cell) => {\n const size = cell.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\n return (\n <td key={cell.id} style={{width}}>\n <Skeleton visible={loading} sx={!loading ? {borderRadius: 0} : undefined}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={columns.length + 1}\n style={{padding: 0, borderBottomColor: row.getIsExpanded() ? undefined : 'transparent'}}\n >\n <Collapse in={row.getIsExpanded()} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n setState,\n clearFilters,\n getSelectedRow,\n clearSelection,\n form,\n }}\n >\n {header}\n <MantineTable className={classes.table} horizontalSpacing=\"sm\" verticalSpacing=\"xs\" pb=\"sm\">\n <thead className={classes.header}>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ))}\n </thead>\n <tbody>\n {rows.length ? (\n rows\n ) : (\n <tr>\n <td colSpan={columns.length}>{noDataChildren}</td>\n </tr>\n )}\n </tbody>\n </MantineTable>\n {footer}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.DateRangePicker = TableDateRangePicker;\n"],"names":["Table","useStyles","createStyles","theme","getRef","hasHeader","table","width","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","rowSelected","ref","row","fn","rgba","primaryColor","data","noDataChildren","getExpandChildren","initialState","columns","onMount","onChange","children","loading","convertedChildren","Children","toArray","find","child","type","TableHeader","footer","TableFooter","predicates","dateRange","initialStateWithoutForm","form","useForm","initialValues","cx","classes","useReactTable","defaultsDeep","pagination","pageSize","TablePerPage","DEFAULT_SIZE","getCoreRowModel","manualPagination","getRowCanExpand","original","useState","state","setState","setOptions","prev","onStateChange","triggerChange","values","useEffect","outsideClickRef","useClickOutside","resetRowSelection","useDidUpdate","clearSelection","globalFilter","sorting","clearFilters","useCallback","setFieldValue","prevState","rowSelection","getSelectedRow","getSelectedRowModel","flatRows","Center","sx","flexGrow","Loader","toggleRowSelection","setRowSelection","id","getIsSelected","rows","getRowModel","map","rowChildren","Fragment","tr","onClick","className","getVisibleCells","cell","size","column","getSize","defaultColumnSizing","undefined","td","style","Skeleton","visible","borderRadius","flexRender","columnDef","getContext","colSpan","length","padding","borderBottomColor","getIsExpanded","Collapse","in","px","py","Box","TableContext","Provider","value","MantineTable","horizontalSpacing","verticalSpacing","pb","thead","getHeaderGroups","headerGroup","headers","columnHeader","Th","tbody","Actions","TableActions","Filter","TableFilter","Footer","Header","Pagination","TablePagination","Predicate","TablePredicate","PerPage","CollapsibleColumn","TableCollapsibleColumn","DateRangePicker","TableDateRangePicker"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Collapse, createStyles, Loader, Skeleton, Table as MantineTable} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useClickOutside, useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n flexRender,\n getCoreRowModel,\n Row,\n TableState,\n useReactTable,\n} from '@tanstack/react-table';\nimport {InitialTableState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Fragment, ReactElement, ReactNode, useCallback, useEffect, useState} from 'react';\n\nimport {TableActions} from './TableActions';\nimport {TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {onTableChangeEvent, TableContext, TableFormType} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {Th} from './Th';\n\nconst useStyles = createStyles<string, {hasHeader: boolean}>((theme, {hasHeader}, getRef) => ({\n table: {\n width: '100%',\n '& td:first-child': {\n paddingLeft: theme.spacing.md,\n },\n },\n\n header: {\n position: 'sticky',\n top: hasHeader ? 69 : 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 12, // skeleton is 11\n '& tr th:first-child div': {\n paddingLeft: theme.spacing.md,\n },\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n },\n\n rowSelected: {\n ref: getRef('rowSelected'),\n },\n\n row: {\n [`&:hover, &.${getRef('rowSelected')}`]: {\n backgroundColor:\n theme.colorScheme === 'dark'\n ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2)\n : theme.colors[theme.primaryColor][0],\n },\n },\n}));\n\ninterface TableProps<T> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState & Partial<TableFormType>;\n}\n\ninterface TableType {\n <T>(props: TableProps<T>): ReactElement;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n DateRangePicker: typeof TableDateRangePicker;\n}\n\nexport const Table: TableType = <T,>({\n data,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n onMount,\n onChange,\n children,\n loading = false,\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {predicates: initialState?.predicates ?? {}, dateRange: initialState?.dateRange ?? [null, null]},\n });\n\n const {cx, classes} = useStyles({hasHeader: !!header});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {pagination: {pageSize: TablePerPage.DEFAULT_SIZE}}),\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: true,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n });\n const [state, setState] = useState<TableState>(table.initialState);\n table.setOptions((prev) => ({\n ...prev,\n state,\n onStateChange: setState,\n }));\n\n const triggerChange = () => onChange?.({...state, ...form.values});\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n }, []);\n\n const outsideClickRef = useClickOutside(() => {\n table.resetRowSelection(true);\n });\n\n useDidUpdate(() => {\n triggerChange();\n clearSelection();\n }, [state.globalFilter, state.sorting, state.pagination, form.values]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n const clearSelection = () => {\n setState((prevState) => ({...prevState, rowSelection: {}}));\n };\n\n const getSelectedRow = useCallback(\n () => table.getSelectedRowModel().flatRows?.[0]?.original ?? null,\n [state.rowSelection]\n );\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const toggleRowSelection = (row: Row<T>) => {\n table.setRowSelection(() => ({[row.id]: !row.getIsSelected()}));\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={() => toggleRowSelection(row)}\n className={cx(classes.row, {[classes.rowSelected]: row.getIsSelected()})}\n >\n {row.getVisibleCells().map((cell) => {\n const size = cell.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\n return (\n <td key={cell.id} style={{width}}>\n <Skeleton visible={loading} sx={!loading ? {borderRadius: 0} : undefined}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={columns.length + 1}\n style={{padding: 0, borderBottomColor: row.getIsExpanded() ? undefined : 'transparent'}}\n >\n <Collapse in={row.getIsExpanded()} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n setState,\n clearFilters,\n getSelectedRow,\n clearSelection,\n form,\n }}\n >\n {header}\n <MantineTable className={classes.table} horizontalSpacing=\"sm\" verticalSpacing=\"xs\" pb=\"sm\">\n <thead className={classes.header}>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ))}\n </thead>\n <tbody>\n {rows.length ? (\n rows\n ) : (\n <tr>\n <td colSpan={columns.length}>{noDataChildren}</td>\n </tr>\n )}\n </tbody>\n </MantineTable>\n {footer}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.DateRangePicker = TableDateRangePicker;\n"],"names":["Table","useStyles","createStyles","theme","getRef","hasHeader","table","width","paddingLeft","spacing","md","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","rowSelected","ref","row","fn","rgba","primaryColor","data","noDataChildren","getExpandChildren","initialState","columns","onMount","onChange","children","loading","convertedChildren","Children","toArray","find","child","type","TableHeader","footer","TableFooter","predicates","dateRange","initialStateWithoutForm","form","useForm","initialValues","cx","classes","useReactTable","defaultsDeep","pagination","pageSize","TablePerPage","DEFAULT_SIZE","getCoreRowModel","manualPagination","getRowCanExpand","original","useState","state","setState","setOptions","prev","onStateChange","triggerChange","values","useEffect","outsideClickRef","useClickOutside","resetRowSelection","useDidUpdate","clearSelection","globalFilter","sorting","clearFilters","useCallback","setFieldValue","prevState","rowSelection","getSelectedRow","getSelectedRowModel","flatRows","Center","sx","flexGrow","Loader","toggleRowSelection","setRowSelection","id","getIsSelected","rows","getRowModel","map","rowChildren","Fragment","tr","onClick","className","getVisibleCells","cell","size","column","getSize","defaultColumnSizing","undefined","td","style","Skeleton","visible","borderRadius","flexRender","columnDef","getContext","colSpan","length","padding","borderBottomColor","getIsExpanded","Collapse","in","px","py","Box","TableContext","Provider","value","MantineTable","horizontalSpacing","verticalSpacing","pb","thead","getHeaderGroups","headerGroup","headers","columnHeader","Th","tbody","Actions","TableActions","Filter","TableFilter","Footer","Header","Pagination","TablePagination","Predicate","TablePredicate","PerPage","CollapsibleColumn","TableCollapsibleColumn","DateRangePicker","TableDateRangePicker"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAGA,OAAO,EACH,SAAS,EAOZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAqB,YAAY,EAAE,SAAS,EAAmC,MAAM,OAAO,CAAC;AAEpG,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAgB,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAGA,OAAO,EACH,SAAS,EAOZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAqB,YAAY,EAAE,SAAS,EAAmC,MAAM,OAAO,CAAC;AAEpG,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAgB,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AA6ChD,UAAU,UAAU,CAAC,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAC;IACV;;;;OAIG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC;IAC5C;;OAEG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7D;AAED,UAAU,SAAS;IACf,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;IACxC,OAAO,EAAE,OAAO,YAAY,CAAC;IAC7B,MAAM,EAAE,OAAO,WAAW,CAAC;IAC3B,MAAM,EAAE,OAAO,WAAW,CAAC;IAC3B,MAAM,EAAE,OAAO,WAAW,CAAC;IAC3B,UAAU,EAAE,OAAO,eAAe,CAAC;IACnC,OAAO,EAAE,OAAO,YAAY,CAAC;IAC7B,SAAS,EAAE,OAAO,cAAc,CAAC;IACjC,iBAAiB,EAAE,OAAO,sBAAsB,CAAC;IACjD,eAAe,EAAE,OAAO,oBAAoB,CAAC;CAChD;AAED,eAAO,MAAM,KAAK,EAAE,SAyJnB,CAAC"}
|
|
@@ -25,7 +25,10 @@ var useStyles = createStyles(function(theme, param, getRef) {
|
|
|
25
25
|
var hasHeader = param.hasHeader;
|
|
26
26
|
return {
|
|
27
27
|
table: {
|
|
28
|
-
width: "100%"
|
|
28
|
+
width: "100%",
|
|
29
|
+
"& td:first-child": {
|
|
30
|
+
paddingLeft: theme.spacing.md
|
|
31
|
+
}
|
|
29
32
|
},
|
|
30
33
|
header: {
|
|
31
34
|
position: "sticky",
|
|
@@ -33,6 +36,9 @@ var useStyles = createStyles(function(theme, param, getRef) {
|
|
|
33
36
|
backgroundColor: theme.colorScheme === "dark" ? theme.black : theme.white,
|
|
34
37
|
transition: "box-shadow 150ms ease",
|
|
35
38
|
zIndex: 12,
|
|
39
|
+
"& tr th:first-child div": {
|
|
40
|
+
paddingLeft: theme.spacing.md
|
|
41
|
+
},
|
|
36
42
|
"&::after": {
|
|
37
43
|
content: '""',
|
|
38
44
|
position: "absolute",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Collapse, createStyles, Loader, Skeleton, Table as MantineTable} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useClickOutside, useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n flexRender,\n getCoreRowModel,\n Row,\n TableState,\n useReactTable,\n} from '@tanstack/react-table';\nimport {InitialTableState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Fragment, ReactElement, ReactNode, useCallback, useEffect, useState} from 'react';\n\nimport {TableActions} from './TableActions';\nimport {TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {onTableChangeEvent, TableContext, TableFormType} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {Th} from './Th';\n\nconst useStyles = createStyles<string, {hasHeader: boolean}>((theme, {hasHeader}, getRef) => ({\n table: {\n width: '100%',\n },\n header: {\n position: 'sticky',\n top: hasHeader ? 69 : 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 12, // skeleton is 11\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n },\n\n rowSelected: {\n ref: getRef('rowSelected'),\n },\n\n row: {\n [`&:hover, &.${getRef('rowSelected')}`]: {\n backgroundColor:\n theme.colorScheme === 'dark'\n ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2)\n : theme.colors[theme.primaryColor][0],\n },\n },\n}));\n\ninterface TableProps<T> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState & Partial<TableFormType>;\n}\n\ninterface TableType {\n <T>(props: TableProps<T>): ReactElement;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n DateRangePicker: typeof TableDateRangePicker;\n}\n\nexport const Table: TableType = <T,>({\n data,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n onMount,\n onChange,\n children,\n loading = false,\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {predicates: initialState?.predicates ?? {}, dateRange: initialState?.dateRange ?? [null, null]},\n });\n\n const {cx, classes} = useStyles({hasHeader: !!header});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {pagination: {pageSize: TablePerPage.DEFAULT_SIZE}}),\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: true,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n });\n const [state, setState] = useState<TableState>(table.initialState);\n table.setOptions((prev) => ({\n ...prev,\n state,\n onStateChange: setState,\n }));\n\n const triggerChange = () => onChange?.({...state, ...form.values});\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n }, []);\n\n const outsideClickRef = useClickOutside(() => {\n table.resetRowSelection(true);\n });\n\n useDidUpdate(() => {\n triggerChange();\n clearSelection();\n }, [state.globalFilter, state.sorting, state.pagination, form.values]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n const clearSelection = () => {\n setState((prevState) => ({...prevState, rowSelection: {}}));\n };\n\n const getSelectedRow = useCallback(\n () => table.getSelectedRowModel().flatRows?.[0]?.original ?? null,\n [state.rowSelection]\n );\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const toggleRowSelection = (row: Row<T>) => {\n table.setRowSelection(() => ({[row.id]: !row.getIsSelected()}));\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={() => toggleRowSelection(row)}\n className={cx(classes.row, {[classes.rowSelected]: row.getIsSelected()})}\n >\n {row.getVisibleCells().map((cell) => {\n const size = cell.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\n return (\n <td key={cell.id} style={{width}}>\n <Skeleton visible={loading} sx={!loading ? {borderRadius: 0} : undefined}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={columns.length + 1}\n style={{padding: 0, borderBottomColor: row.getIsExpanded() ? undefined : 'transparent'}}\n >\n <Collapse in={row.getIsExpanded()} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n setState,\n clearFilters,\n getSelectedRow,\n clearSelection,\n form,\n }}\n >\n {header}\n <MantineTable className={classes.table} horizontalSpacing=\"sm\" verticalSpacing=\"xs\" pb=\"sm\">\n <thead className={classes.header}>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ))}\n </thead>\n <tbody>\n {rows.length ? (\n rows\n ) : (\n <tr>\n <td colSpan={columns.length}>{noDataChildren}</td>\n </tr>\n )}\n </tbody>\n </MantineTable>\n {footer}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.DateRangePicker = TableDateRangePicker;\n"],"names":["Box","Center","Collapse","createStyles","Loader","Skeleton","Table","MantineTable","useForm","useClickOutside","useDidUpdate","defaultColumnSizing","flexRender","getCoreRowModel","useReactTable","defaultsDeep","Children","Fragment","useCallback","useEffect","useState","TableActions","TableCollapsibleColumn","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TablePagination","TablePerPage","TablePredicate","Th","useStyles","theme","getRef","hasHeader","table","width","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","rowSelected","ref","row","fn","rgba","primaryColor","data","noDataChildren","getExpandChildren","initialState","columns","onMount","onChange","children","loading","convertedChildren","toArray","find","child","type","footer","predicates","dateRange","initialStateWithoutForm","form","initialValues","cx","classes","pagination","pageSize","DEFAULT_SIZE","manualPagination","getRowCanExpand","original","state","setState","setOptions","prev","onStateChange","triggerChange","values","outsideClickRef","resetRowSelection","clearSelection","globalFilter","sorting","clearFilters","setFieldValue","prevState","rowSelection","getSelectedRow","getSelectedRowModel","flatRows","sx","flexGrow","toggleRowSelection","setRowSelection","id","getIsSelected","rows","getRowModel","map","rowChildren","tr","onClick","className","getVisibleCells","cell","size","column","getSize","undefined","td","style","visible","borderRadius","columnDef","getContext","colSpan","length","padding","borderBottomColor","getIsExpanded","in","px","py","Provider","value","horizontalSpacing","verticalSpacing","pb","thead","getHeaderGroups","headerGroup","headers","columnHeader","tbody","Actions","Filter","Footer","Header","Pagination","Predicate","PerPage","CollapsibleColumn","DateRangePicker"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Collapse, createStyles, Loader, Skeleton, Table as MantineTable} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useClickOutside, useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n flexRender,\n getCoreRowModel,\n Row,\n TableState,\n useReactTable,\n} from '@tanstack/react-table';\nimport {InitialTableState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Fragment, ReactElement, ReactNode, useCallback, useEffect, useState} from 'react';\n\nimport {TableActions} from './TableActions';\nimport {TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {onTableChangeEvent, TableContext, TableFormType} from './TableContext';\nimport {TableDateRangePicker} from './TableDateRangePicker';\nimport {TableFilter} from './TableFilter';\nimport {TableFooter} from './TableFooter';\nimport {TableHeader} from './TableHeader';\nimport {TablePagination} from './TablePagination';\nimport {TablePerPage} from './TablePerPage';\nimport {TablePredicate} from './TablePredicate';\nimport {Th} from './Th';\n\nconst useStyles = createStyles<string, {hasHeader: boolean}>((theme, {hasHeader}, getRef) => ({\n table: {\n width: '100%',\n '& td:first-child': {\n paddingLeft: theme.spacing.md,\n },\n },\n\n header: {\n position: 'sticky',\n top: hasHeader ? 69 : 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 12, // skeleton is 11\n '& tr th:first-child div': {\n paddingLeft: theme.spacing.md,\n },\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n },\n\n rowSelected: {\n ref: getRef('rowSelected'),\n },\n\n row: {\n [`&:hover, &.${getRef('rowSelected')}`]: {\n backgroundColor:\n theme.colorScheme === 'dark'\n ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2)\n : theme.colors[theme.primaryColor][0],\n },\n },\n}));\n\ninterface TableProps<T> {\n /**\n * Data to display in the table\n */\n data: T[];\n /**\n * Columns to display in the table.\n *\n * @see https://tanstack.com/table/v8/docs/guide/column-defs\n */\n columns: Array<ColumnDef<T>>;\n /**\n * Function called when the table mounts\n *\n * @param state the state of the table\n */\n onMount?: onTableChangeEvent;\n /**\n * Function called when the table should update\n *\n * @param state the state of the table\n */\n onChange?: onTableChangeEvent;\n /**\n * Function that generates the expandable content of a row\n * Return null for rows that don't need to be expandable\n *\n * @param datum the row for which the children should be generated.\n */\n getExpandChildren?: (datum: T) => ReactNode;\n /**\n * React children to show when the table has no rows to show. You can leverage useTable to get the state of the table\n */\n noDataChildren?: ReactNode;\n /**\n * Whether the table is loading or not\n *\n * @default false\n */\n loading?: boolean;\n /**\n * Childrens to display in the table. They need to be wrap in either `Table.Header` or `Table.Footer`\n *\n * @example\n * <Table ...>\n * <Table.Header>\n * <div>Hello</div>\n * </Table.Header>\n * </Table>\n */\n children?: ReactNode;\n\n /**\n * Initial state of the table\n */\n initialState?: InitialTableState & Partial<TableFormType>;\n}\n\ninterface TableType {\n <T>(props: TableProps<T>): ReactElement;\n Actions: typeof TableActions;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n DateRangePicker: typeof TableDateRangePicker;\n}\n\nexport const Table: TableType = <T,>({\n data,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n onMount,\n onChange,\n children,\n loading = false,\n}: TableProps<T>) => {\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {predicates: initialState?.predicates ?? {}, dateRange: initialState?.dateRange ?? [null, null]},\n });\n\n const {cx, classes} = useStyles({hasHeader: !!header});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {pagination: {pageSize: TablePerPage.DEFAULT_SIZE}}),\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: true,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n });\n const [state, setState] = useState<TableState>(table.initialState);\n table.setOptions((prev) => ({\n ...prev,\n state,\n onStateChange: setState,\n }));\n\n const triggerChange = () => onChange?.({...state, ...form.values});\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n }, []);\n\n const outsideClickRef = useClickOutside(() => {\n table.resetRowSelection(true);\n });\n\n useDidUpdate(() => {\n triggerChange();\n clearSelection();\n }, [state.globalFilter, state.sorting, state.pagination, form.values]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n const clearSelection = () => {\n setState((prevState) => ({...prevState, rowSelection: {}}));\n };\n\n const getSelectedRow = useCallback(\n () => table.getSelectedRowModel().flatRows?.[0]?.original ?? null,\n [state.rowSelection]\n );\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const toggleRowSelection = (row: Row<T>) => {\n table.setRowSelection(() => ({[row.id]: !row.getIsSelected()}));\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={() => toggleRowSelection(row)}\n className={cx(classes.row, {[classes.rowSelected]: row.getIsSelected()})}\n >\n {row.getVisibleCells().map((cell) => {\n const size = cell.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\n return (\n <td key={cell.id} style={{width}}>\n <Skeleton visible={loading} sx={!loading ? {borderRadius: 0} : undefined}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Skeleton>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={columns.length + 1}\n style={{padding: 0, borderBottomColor: row.getIsExpanded() ? undefined : 'transparent'}}\n >\n <Collapse in={row.getIsExpanded()} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n setState,\n clearFilters,\n getSelectedRow,\n clearSelection,\n form,\n }}\n >\n {header}\n <MantineTable className={classes.table} horizontalSpacing=\"sm\" verticalSpacing=\"xs\" pb=\"sm\">\n <thead className={classes.header}>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ))}\n </thead>\n <tbody>\n {rows.length ? (\n rows\n ) : (\n <tr>\n <td colSpan={columns.length}>{noDataChildren}</td>\n </tr>\n )}\n </tbody>\n </MantineTable>\n {footer}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.DateRangePicker = TableDateRangePicker;\n"],"names":["Box","Center","Collapse","createStyles","Loader","Skeleton","Table","MantineTable","useForm","useClickOutside","useDidUpdate","defaultColumnSizing","flexRender","getCoreRowModel","useReactTable","defaultsDeep","Children","Fragment","useCallback","useEffect","useState","TableActions","TableCollapsibleColumn","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TablePagination","TablePerPage","TablePredicate","Th","useStyles","theme","getRef","hasHeader","table","width","paddingLeft","spacing","md","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","rowSelected","ref","row","fn","rgba","primaryColor","data","noDataChildren","getExpandChildren","initialState","columns","onMount","onChange","children","loading","convertedChildren","toArray","find","child","type","footer","predicates","dateRange","initialStateWithoutForm","form","initialValues","cx","classes","pagination","pageSize","DEFAULT_SIZE","manualPagination","getRowCanExpand","original","state","setState","setOptions","prev","onStateChange","triggerChange","values","outsideClickRef","resetRowSelection","clearSelection","globalFilter","sorting","clearFilters","setFieldValue","prevState","rowSelection","getSelectedRow","getSelectedRowModel","flatRows","sx","flexGrow","toggleRowSelection","setRowSelection","id","getIsSelected","rows","getRowModel","map","rowChildren","tr","onClick","className","getVisibleCells","cell","size","column","getSize","undefined","td","style","visible","borderRadius","columnDef","getContext","colSpan","length","padding","borderBottomColor","getIsExpanded","in","px","py","Provider","value","horizontalSpacing","verticalSpacing","pb","thead","getHeaderGroups","headerGroup","headers","columnHeader","tbody","Actions","Filter","Footer","Header","Pagination","Predicate","PerPage","CollapsibleColumn","DateRangePicker"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -29,13 +29,20 @@ import {Th} from './Th';
|
|
|
29
29
|
const useStyles = createStyles<string, {hasHeader: boolean}>((theme, {hasHeader}, getRef) => ({
|
|
30
30
|
table: {
|
|
31
31
|
width: '100%',
|
|
32
|
+
'& td:first-child': {
|
|
33
|
+
paddingLeft: theme.spacing.md,
|
|
34
|
+
},
|
|
32
35
|
},
|
|
36
|
+
|
|
33
37
|
header: {
|
|
34
38
|
position: 'sticky',
|
|
35
39
|
top: hasHeader ? 69 : 0,
|
|
36
40
|
backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,
|
|
37
41
|
transition: 'box-shadow 150ms ease',
|
|
38
42
|
zIndex: 12, // skeleton is 11
|
|
43
|
+
'& tr th:first-child div': {
|
|
44
|
+
paddingLeft: theme.spacing.md,
|
|
45
|
+
},
|
|
39
46
|
|
|
40
47
|
'&::after': {
|
|
41
48
|
content: '""',
|