@coveord/plasma-mantine 52.26.6 → 52.27.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 +35 -34
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/table/Table.d.ts.map +1 -1
- package/dist/cjs/components/table/Table.js +7 -3
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/Table.styles.d.ts +1 -0
- package/dist/cjs/components/table/Table.styles.d.ts.map +1 -1
- package/dist/cjs/components/table/Table.styles.js +6 -5
- package/dist/cjs/components/table/Table.styles.js.map +1 -1
- package/dist/cjs/components/table/Table.types.d.ts +8 -2
- package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/RowLayout.js +2 -1
- package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts +4 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js +99 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts +10 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts.map +1 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.js +23 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.styles.js.map +1 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.d.ts +46 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.d.ts.map +1 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.js +6 -0
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.types.js.map +1 -0
- package/dist/esm/components/table/Table.d.ts.map +1 -1
- package/dist/esm/components/table/Table.js +6 -2
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.styles.d.ts +1 -0
- package/dist/esm/components/table/Table.styles.d.ts.map +1 -1
- package/dist/esm/components/table/Table.styles.js +6 -5
- package/dist/esm/components/table/Table.styles.js.map +1 -1
- package/dist/esm/components/table/Table.types.d.ts +8 -2
- package/dist/esm/components/table/Table.types.d.ts.map +1 -1
- package/dist/esm/components/table/Table.types.js.map +1 -1
- package/dist/esm/components/table/layouts/RowLayout.js +1 -1
- package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts +4 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js +84 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts +10 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.d.ts.map +1 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.js +11 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.styles.js.map +1 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.d.ts +46 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.d.ts.map +1 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.js +3 -0
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.types.js.map +1 -0
- package/package.json +1 -1
- package/src/components/table/Table.styles.ts +6 -5
- package/src/components/table/Table.tsx +6 -1
- package/src/components/table/Table.types.ts +8 -1
- package/src/components/table/__tests__/TableColumnsSelector.spec.tsx +260 -0
- package/src/components/table/layouts/RowLayout.tsx +1 -1
- package/src/components/table/table-columns-selector/TableColumnsSelector.styles.ts +8 -0
- package/src/components/table/table-columns-selector/TableColumnsSelector.tsx +78 -0
- package/src/components/table/table-columns-selector/TableColumnsSelector.types.ts +46 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;AAkB/E,eAAO,MAAM,KAAK,EAAE,SA0LnB,CAAC"}
|
|
@@ -29,6 +29,7 @@ var _TableLayouts = require("./layouts/TableLayouts");
|
|
|
29
29
|
var _TableActions = require("./table-actions/TableActions");
|
|
30
30
|
var _TableCollapsibleColumn = require("./table-column/TableCollapsibleColumn");
|
|
31
31
|
var _TableSelectableColumn = require("./table-column/TableSelectableColumn");
|
|
32
|
+
var _TableColumnsSelector = require("./table-columns-selector/TableColumnsSelector");
|
|
32
33
|
var _TableConsumer = require("./table-consumer/TableConsumer");
|
|
33
34
|
var _TableDateRangePicker = require("./table-date-range-picker/TableDateRangePicker");
|
|
34
35
|
var _TableFilter = require("./table-filter/TableFilter");
|
|
@@ -43,7 +44,7 @@ var Table = function(param) {
|
|
|
43
44
|
var data = param.data, getRowId = param.getRowId, noDataChildren = param.noDataChildren, getExpandChildren = param.getExpandChildren, _param_initialState = param.initialState, initialState = _param_initialState === void 0 ? {} : _param_initialState, columns = param.columns, _param_layouts = param.layouts, layouts = _param_layouts === void 0 ? [
|
|
44
45
|
_TableLayouts.TableLayouts.Rows
|
|
45
46
|
] : _param_layouts, onMount = param.onMount, onChange = param.onChange, children = param.children, _param_loading = param.loading, loading = _param_loading === void 0 ? false : _param_loading, doubleClickAction = param.doubleClickAction, multiRowSelectionEnabled = param.multiRowSelectionEnabled, disableRowSelection = param.disableRowSelection, onRowSelectionChange = param.onRowSelectionChange, additionalRootNodes = param.additionalRootNodes, classNames = param.classNames, styles = param.styles, unstyled = param.unstyled, _param_options = param.options, options = _param_options === void 0 ? {} : _param_options;
|
|
46
|
-
var _initialState, _initialState1, _initialState2, _options, _form_values, _form_values_dateRange, _form_values_dateRange1;
|
|
47
|
+
var _initialState, _initialState1, _initialState2, _options, _form_values, _form_values_dateRange, _form_values_dateRange1, _table_getRowModel;
|
|
47
48
|
var convertedChildren = _react.Children.toArray(children);
|
|
48
49
|
var header = convertedChildren.find(function(child) {
|
|
49
50
|
return child.type === _TableHeader.TableHeader;
|
|
@@ -105,6 +106,7 @@ var Table = function(param) {
|
|
|
105
106
|
maxSize: _reacttable.defaultColumnSizing.maxSize
|
|
106
107
|
}
|
|
107
108
|
}, options));
|
|
109
|
+
var getAllColumns = table.getAllFlatColumns;
|
|
108
110
|
var _useState = _sliced_to_array._((0, _react.useState)(table.initialState), 2), state = _useState[0], setState = _useState[1];
|
|
109
111
|
table.setOptions(function(prev) {
|
|
110
112
|
return _object_spread_props._(_object_spread._({}, prev), {
|
|
@@ -165,7 +167,7 @@ var Table = function(param) {
|
|
|
165
167
|
var name = param.name;
|
|
166
168
|
return name === form.values.layout;
|
|
167
169
|
});
|
|
168
|
-
var hasRows = table.getRowModel().rows.length > 0;
|
|
170
|
+
var hasRows = ((_table_getRowModel = table.getRowModel()) === null || _table_getRowModel === void 0 ? void 0 : _table_getRowModel.rows.length) > 0;
|
|
169
171
|
var _lastUpdated_props_dependencies;
|
|
170
172
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Box, {
|
|
171
173
|
ref: outsideClickRef,
|
|
@@ -184,7 +186,8 @@ var Table = function(param) {
|
|
|
184
186
|
multiRowSelectionEnabled: multiRowSelectionEnabled,
|
|
185
187
|
getPageCount: table.getPageCount,
|
|
186
188
|
disableRowSelection: disableRowSelection,
|
|
187
|
-
layouts: layouts
|
|
189
|
+
layouts: layouts,
|
|
190
|
+
getAllColumns: getAllColumns
|
|
188
191
|
},
|
|
189
192
|
children: [
|
|
190
193
|
consumer,
|
|
@@ -246,6 +249,7 @@ var Table = function(param) {
|
|
|
246
249
|
})
|
|
247
250
|
});
|
|
248
251
|
};
|
|
252
|
+
Table.ColumnsSelector = _TableColumnsSelector.TableColumnsSelector;
|
|
249
253
|
Table.Actions = _TableActions.TableActions;
|
|
250
254
|
Table.Filter = _TableFilter.TableFilter;
|
|
251
255
|
Table.Footer = _TableFooter.TableFooter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n TableState as TanstackTableState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, ReactElement, cloneElement, useCallback, useEffect, useState} from 'react';\n\nimport {useRowSelection} from '../../hooks/useRowSelection';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableContext} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n classNames,\n styles,\n unstyled,\n options = {},\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 const consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles(null, {name: 'PlasmaTable', classNames, styles, unstyled});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n ...options,\n });\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody className={classes.body}>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","TableLayouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","classNames","styles","unstyled","options","form","convertedChildren","Children","toArray","header","find","child","type","TableHeader","footer","TableFooter","consumer","TableConsumer","lastUpdated","TableLastUpdated","predicates","dateRange","initialStateWithoutForm","useForm","initialValues","layout","name","classes","useStyles","table","useReactTable","defaultsDeep","pagination","pageSize","TablePerPage","DEFAULT_SIZE","globalFilter","TableSelectableColumn","concat","getCoreRowModel","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","defaultColumn","size","minSize","defaultColumnSizing","maxSize","useState","state","setState","setOptions","prev","onStateChange","useRowSelection","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","debounce","useEffect","cancel","useDidUpdate","sorting","JSON","stringify","clearFilters","useCallback","setFieldValue","prevState","Center","sx","flexGrow","Loader","Layout","hasRows","getRowModel","rows","length","Box","ref","TableContext","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","getAllColumns","Header","tbody","body","Body","td","TableLoading","visible","cloneElement","dependencies","props","Actions","TableActions","Filter","TableFilter","Footer","LastUpdated","Pagination","TablePagination","Predicate","TablePredicate","PerPage","CollapsibleColumn","TableCollapsibleColumn","AccordionColumn","TableAccordionColumn","DateRangePicker","TableDateRangePicker","Consumer","Loading","Layouts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n Row,\n TableState as TanstackTableState,\n defaultColumnSizing,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, ReactElement, cloneElement, useCallback, useEffect, useState} from 'react';\n\nimport {useRowSelection} from '../../hooks/useRowSelection';\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableContext} from './TableContext';\nimport {TableLayouts} from './layouts/TableLayouts';\nimport {TableActions} from './table-actions/TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn';\nimport {TableColumnsSelector} from './table-columns-selector/TableColumnsSelector';\nimport {TableConsumer} from './table-consumer/TableConsumer';\nimport {TableDateRangePicker} from './table-date-range-picker/TableDateRangePicker';\nimport {TableFilter} from './table-filter/TableFilter';\nimport {TableFooter} from './table-footer/TableFooter';\nimport {TableHeader} from './table-header/TableHeader';\nimport {TableLastUpdated} from './table-last-updated/TableLastUpdated';\nimport {TableLoading} from './table-loading/TableLoading';\nimport {TablePagination} from './table-pagination/TablePagination';\nimport {TablePerPage} from './table-per-page/TablePerPage';\nimport {TablePredicate} from './table-predicate/TablePredicate';\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n layouts = [TableLayouts.Rows],\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\n additionalRootNodes,\n classNames,\n styles,\n unstyled,\n options = {},\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 const consumer = convertedChildren.find((child) => child.type === TableConsumer);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {\n predicates: initialState?.predicates ?? {},\n dateRange: initialState?.dateRange ?? [null, null],\n layout: initialState?.layout ?? layouts[0].name,\n },\n });\n const {classes} = useStyles(null, {name: 'PlasmaTable', classNames, styles, unstyled});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {\n pagination: {pageSize: TablePerPage.DEFAULT_SIZE},\n globalFilter: '',\n }),\n data,\n columns: multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getExpandChildren?.(row.original) ?? false,\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n ...options,\n });\n\n const getAllColumns = table.getAllFlatColumns;\n\n const [state, setState] = useState<TableState<T>>(table.initialState as TableState<T>);\n table.setOptions((prev) => ({\n ...prev,\n state: state as TanstackTableState,\n onStateChange: setState as Dispatch<React.SetStateAction<TanstackTableState>>,\n }));\n const {clearSelection, getSelectedRow, getSelectedRows, outsideClickRef} = useRowSelection(table, {\n multiRowSelectionEnabled,\n onRowSelectionChange,\n additionalRootNodes,\n });\n const isFiltered =\n !!state.globalFilter ||\n Object.keys(form.values?.predicates ?? {}).some((predicate) => !!form.values.predicates[predicate]) ||\n !!form.values.dateRange?.[0] ||\n !!form.values.dateRange?.[1];\n\n const triggerChange = debounce(() => onChange?.({...state, ...form.values}), 500);\n\n useEffect(() => {\n onMount?.({...state, ...form.values});\n return () => {\n triggerChange.cancel();\n };\n }, []);\n\n useDidUpdate(() => {\n triggerChange();\n if (!multiRowSelectionEnabled) {\n clearSelection();\n }\n }, [\n state.globalFilter,\n state.pagination,\n state.sorting,\n JSON.stringify(form.values.dateRange),\n JSON.stringify(form.values.predicates),\n ]);\n\n const clearFilters = useCallback(() => {\n form.setFieldValue('predicates', initialState.predicates ?? {});\n setState((prevState) => ({...prevState, globalFilter: ''}));\n }, []);\n\n if (!data) {\n return (\n <Center sx={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout = layouts.find(({name}) => name === form.values.layout);\n const hasRows = table.getRowModel()?.rows.length > 0;\n\n return (\n <Box ref={outsideClickRef}>\n <TableContext.Provider\n value={{\n onChange: triggerChange,\n state,\n isFiltered,\n setState,\n clearFilters,\n getSelectedRow,\n getSelectedRows,\n clearSelection,\n form,\n containerRef: outsideClickRef,\n multiRowSelectionEnabled,\n getPageCount: table.getPageCount,\n disableRowSelection,\n layouts,\n getAllColumns,\n }}\n >\n {consumer}\n {!hasRows && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <Box component=\"table\" className={classes.table} pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n </thead>\n <tbody className={classes.body}>\n {hasRows ? (\n <Layout.Body\n table={table}\n doubleClickAction={doubleClickAction}\n getExpandChildren={getExpandChildren}\n loading={loading}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading}>{noDataChildren}</TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated\n ? cloneElement(lastUpdated, {\n dependencies: [data, ...(lastUpdated.props.dependencies ?? [])],\n })\n : null}\n </>\n )}\n </TableContext.Provider>\n </Box>\n );\n};\n\nTable.ColumnsSelector = TableColumnsSelector;\nTable.Actions = TableActions;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Pagination = TablePagination;\nTable.Predicate = TablePredicate;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\nTable.Loading = TableLoading;\nTable.Layouts = TableLayouts;\n"],"names":["Table","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","layouts","TableLayouts","Rows","onMount","onChange","children","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","additionalRootNodes","classNames","styles","unstyled","options","form","table","convertedChildren","Children","toArray","header","find","child","type","TableHeader","footer","TableFooter","consumer","TableConsumer","lastUpdated","TableLastUpdated","predicates","dateRange","initialStateWithoutForm","useForm","initialValues","layout","name","classes","useStyles","useReactTable","defaultsDeep","pagination","pageSize","TablePerPage","DEFAULT_SIZE","globalFilter","TableSelectableColumn","concat","getCoreRowModel","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","defaultColumn","size","minSize","defaultColumnSizing","maxSize","getAllColumns","getAllFlatColumns","useState","state","setState","setOptions","prev","onStateChange","useRowSelection","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","Object","keys","values","some","predicate","triggerChange","debounce","useEffect","cancel","useDidUpdate","sorting","JSON","stringify","clearFilters","useCallback","setFieldValue","prevState","Center","sx","flexGrow","Loader","Layout","hasRows","getRowModel","rows","length","Box","ref","TableContext","Provider","value","containerRef","getPageCount","component","className","pb","thead","tr","th","style","padding","colSpan","Header","tbody","body","Body","td","TableLoading","visible","cloneElement","dependencies","props","ColumnsSelector","TableColumnsSelector","Actions","TableActions","Filter","TableFilter","Footer","LastUpdated","Pagination","TablePagination","Predicate","TablePredicate","PerPage","CollapsibleColumn","TableCollapsibleColumn","AccordionColumn","TableAccordionColumn","DateRangePicker","TableDateRangePicker","Consumer","Loading","Layouts"],"mappings":";;;;+BAmCaA;;;eAAAA;;;;;;;;;;oBAnCqB;oBACZ;qBACK;0BAQpB;uEACc;2EACI;qBACsE;+BAEjE;oEACR;4BAEK;4BACA;4BACA;sCACgC;qCACvB;oCACD;6BACP;oCACO;2BACT;2BACA;2BACA;gCACK;4BACJ;+BACG;4BACH;8BACE;AAEtB,IAAMA,QAAmB;QAC5BC,aAAAA,MACAC,iBAAAA,UACAC,uBAAAA,gBACAC,0BAAAA,+CACAC,cAAAA,gDAAe,CAAC,yBAChBC,gBAAAA,gCACAC,SAAAA,sCAAU;QAACC,0BAAY,CAACC,IAAI;KAAC,mBAC7BC,gBAAAA,SACAC,iBAAAA,UACAC,iBAAAA,iCACAC,SAAAA,sCAAU,wBACVC,0BAAAA,mBACAC,iCAAAA,0BACAC,4BAAAA,qBACAC,6BAAAA,sBACAC,4BAAAA,qBACAC,mBAAAA,YACAC,eAAAA,QACAC,iBAAAA,iCACAC,SAAAA,sCAAU,CAAC;QAWSjB,eACDA,gBACHA,gBAaMiB,UA4BNC,cACVA,wBACAA,yBAsCUC;IA5FhB,IAAMC,oBAAoBC,eAAQ,CAACC,OAAO,CAACf;IAC3C,IAAMgB,SAASH,kBAAkBI,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKC,wBAAW;;IAC3E,IAAMC,SAASR,kBAAkBI,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKG,wBAAW;;IAC3E,IAAMC,WAAWV,kBAAkBI,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKK,4BAAa;;IAC/E,IAAMC,cAAcZ,kBAAkBI,IAAI,CAAC,SAACC;eAAUA,MAAMC,IAAI,KAAKO,kCAAgB;;IAErF,IAAOC,aAAqDlC,aAArDkC,YAAYC,YAAyCnC,aAAzCmC,WAAcC,uDAA2BpC;QAArDkC;QAAYC;;QAGCnC,0BACDA,yBACHA;IAJhB,IAAMkB,OAAOmB,IAAAA,aAAO,EAAgB;QAChCC,eAAe;YACXJ,YAAYlC,CAAAA,4BAAAA,gBAAAA,0BAAAA,oCAAAA,cAAckC,UAAU,cAAxBlC,sCAAAA,2BAA4B,CAAC;YACzCmC,WAAWnC,CAAAA,2BAAAA,iBAAAA,0BAAAA,qCAAAA,eAAcmC,SAAS,cAAvBnC,qCAAAA,0BAA2B;gBAAC;gBAAM;aAAK;YAClDuC,QAAQvC,CAAAA,wBAAAA,iBAAAA,0BAAAA,qCAAAA,eAAcuC,MAAM,cAApBvC,kCAAAA,uBAAwBE,OAAO,CAAC,EAAE,CAACsC,IAAI;QACnD;IACJ;IACA,IAAM,AAACC,UAAWC,IAAAA,oBAAS,EAAC,MAAM;QAACF,MAAM;QAAe1B,YAAAA;QAAYC,QAAAA;QAAQC,UAAAA;IAAQ,GAA7EyB;QAa+B;IAXtC,IAAMtB,QAAQwB,IAAAA,yBAAa,EAAC;QACxB3C,cAAc4C,IAAAA,2BAAY,EAACR,yBAAyB;YAChDS,YAAY;gBAACC,UAAUC,0BAAY,CAACC,YAAY;YAAA;YAChDC,cAAc;QAClB;QACArD,MAAAA;QACAK,SAASS,2BAA2B;YAACwC,4CAAqB;SAAiB,CAACC,MAAM,CAAClD,WAAWA;QAC9FmD,iBAAiBA,IAAAA,2BAAe;QAChCC,kBAAkBpC,EAAAA,WAAAA,qBAAAA,+BAAAA,SAASqC,qBAAqB,MAAKC;QACrDC,yBAAyB,CAAC,CAAC9C;QAC3Bb,UAAAA;QACA4D,iBAAiB,SAACC;gBAAkB3D;mBAAF,CAAA,OAAA,CAAC,GAACA,qBAAAA,+BAAAA,yCAAAA,mBAAoB2D,IAAIC,QAAQ,gBAAlC,kBAAA,OAAuC;;QACzEC,oBAAoB,CAACpD;QACrBqD,eAAe;YACXC,MAAMP;YACNQ,SAASC,+BAAmB,CAACD,OAAO;YACpCE,SAASD,+BAAmB,CAACC,OAAO;QACxC;OACGhD;IAGP,IAAMiD,gBAAgB/C,MAAMgD,iBAAiB;IAE7C,IAA0BC,+BAAAA,IAAAA,eAAQ,EAAgBjD,MAAMnB,YAAY,OAA7DqE,QAAmBD,cAAZE,WAAYF;IAC1BjD,MAAMoD,UAAU,CAAC,SAACC;eAAU,4CACrBA;YACHH,OAAOA;YACPI,eAAeH;;;IAEnB,IAA2EI,oBAAAA,IAAAA,gCAAe,EAACvD,OAAO;QAC9FT,0BAAAA;QACAE,sBAAAA;QACAC,qBAAAA;IACJ,IAJO8D,iBAAoED,kBAApEC,gBAAgBC,iBAAoDF,kBAApDE,gBAAgBC,kBAAoCH,kBAApCG,iBAAiBC,kBAAmBJ,kBAAnBI;QAOxC5D;IAFhB,IAAM6D,aACF,CAAC,CAACV,MAAMpB,YAAY,IACpB+B,OAAOC,IAAI,CAAC/D,CAAAA,2BAAAA,eAAAA,KAAKgE,MAAM,cAAXhE,mCAAAA,aAAagB,UAAU,cAAvBhB,qCAAAA,0BAA2B,CAAC,GAAGiE,IAAI,CAAC,SAACC;eAAc,CAAC,CAAClE,KAAKgE,MAAM,CAAChD,UAAU,CAACkD,UAAU;UAClG,CAAC,GAAClE,yBAAAA,KAAKgE,MAAM,CAAC/C,SAAS,cAArBjB,6CAAAA,sBAAuB,CAAC,EAAE,KAC5B,CAAC,GAACA,0BAAAA,KAAKgE,MAAM,CAAC/C,SAAS,cAArBjB,8CAAAA,uBAAuB,CAAC,EAAE;IAEhC,IAAMmE,gBAAgBC,IAAAA,uBAAQ,EAAC;YAAMhF;gBAAAA,YAAAA,sBAAAA,gCAAAA,UAAW,qBAAI+D,OAAUnD,KAAKgE,MAAM;OAAI;IAE7EK,IAAAA,gBAAS,EAAC;YACNlF;SAAAA,WAAAA,qBAAAA,+BAAAA,SAAU,qBAAIgE,OAAUnD,KAAKgE,MAAM;QACnC,OAAO;YACHG,cAAcG,MAAM;QACxB;IACJ,GAAG,EAAE;IAELC,IAAAA,mBAAY,EAAC;QACTJ;QACA,IAAI,CAAC3E,0BAA0B;YAC3BiE;QACJ;IACJ,GAAG;QACCN,MAAMpB,YAAY;QAClBoB,MAAMxB,UAAU;QAChBwB,MAAMqB,OAAO;QACbC,KAAKC,SAAS,CAAC1E,KAAKgE,MAAM,CAAC/C,SAAS;QACpCwD,KAAKC,SAAS,CAAC1E,KAAKgE,MAAM,CAAChD,UAAU;KACxC;IAED,IAAM2D,eAAeC,IAAAA,kBAAW,EAAC;YACI9F;QAAjCkB,KAAK6E,aAAa,CAAC,cAAc/F,CAAAA,2BAAAA,aAAakC,UAAU,cAAvBlC,sCAAAA,2BAA2B,CAAC;QAC7DsE,SAAS,SAAC0B;mBAAe,4CAAIA;gBAAW/C,cAAc;;;IAC1D,GAAG,EAAE;IAEL,IAAI,CAACrD,MAAM;QACP,qBACI,qBAACqG,YAAM;YAACC,IAAI;gBAACC,UAAU;YAAC;sBACpB,cAAA,qBAACC,YAAM;;IAGnB;IAEA,IAAMC,SAASnG,QAAQsB,IAAI,CAAC;YAAEgB,aAAAA;eAAUA,SAAStB,KAAKgE,MAAM,CAAC3C,MAAM;;IACnE,IAAM+D,UAAUnF,EAAAA,qBAAAA,MAAMoF,WAAW,gBAAjBpF,yCAAAA,mBAAqBqF,IAAI,CAACC,MAAM,IAAG;QAgEIzE;IA9DvD,qBACI,qBAAC0E,SAAG;QAACC,KAAK7B;kBACN,cAAA,sBAAC8B,0BAAY,CAACC,QAAQ;YAClBC,OAAO;gBACHxG,UAAU+E;gBACVhB,OAAAA;gBACAU,YAAAA;gBACAT,UAAAA;gBACAuB,cAAAA;gBACAjB,gBAAAA;gBACAC,iBAAAA;gBACAF,gBAAAA;gBACAzD,MAAAA;gBACA6F,cAAcjC;gBACdpE,0BAAAA;gBACAsG,cAAc7F,MAAM6F,YAAY;gBAChCrG,qBAAAA;gBACAT,SAAAA;gBACAgE,eAAAA;YACJ;;gBAECpC;gBACA,CAACwE,WAAW,CAACvB,cAAc,CAACvE,UACzBV,+BAEA;;sCACI,sBAAC4G,SAAG;4BAACO,WAAU;4BAAQC,WAAWzE,QAAQtB,KAAK;4BAAEgG,IAAG;;8CAChD,sBAACC;oCAAMF,WAAWzE,QAAQlB,MAAM;;wCAC3B,CAAC,CAACA,uBACC,qBAAC8F;sDACG,cAAA,qBAACC;gDAAGC,OAAO;oDAACC,SAAS;gDAAC;gDAAGC,SAAStG,MAAM+C,aAAa,GAAGuC,MAAM;0DACzDlF;;6CAGT;sDACJ,qBAAC8E,OAAOqB,MAAM;4CACVvG,OAAOA;4CACPV,mBAAmBA;4CACnBV,mBAAmBA;4CACnBS,SAASA;;;;8CAGjB,qBAACmH;oCAAMT,WAAWzE,QAAQmF,IAAI;8CACzBtB,wBACG,qBAACD,OAAOwB,IAAI;wCACR1G,OAAOA;wCACPV,mBAAmBA;wCACnBV,mBAAmBA;wCACnBS,SAASA;uDAGb,qBAAC6G;kDACG,cAAA,qBAACS;4CAAGL,SAAStG,MAAM+C,aAAa,GAAGuC,MAAM;sDACrC,cAAA,qBAACsB,0BAAY;gDAACC,SAASxH;0DAAUV;;;;;;;wBAMpD8B;wBACAI,4BACKiG,IAAAA,mBAAY,EAACjG,aAAa;4BACtBkG,cAAc;gCAACtI;6BAAgD,CAAjD,OAAO,uBAAIoC,CAAAA,kCAAAA,YAAYmG,KAAK,CAACD,YAAY,cAA9BlG,6CAAAA,kCAAkC,EAAE;wBACjE,KACA;;;;;;AAM9B;AAEArC,MAAMyI,eAAe,GAAGC,0CAAoB;AAC5C1I,MAAM2I,OAAO,GAAGC,0BAAY;AAC5B5I,MAAM6I,MAAM,GAAGC,wBAAW;AAC1B9I,MAAM+I,MAAM,GAAG7G,wBAAW;AAC1BlC,MAAM+H,MAAM,GAAG/F,wBAAW;AAC1BhC,MAAMgJ,WAAW,GAAG1G,kCAAgB;AACpCtC,MAAMiJ,UAAU,GAAGC,gCAAe;AAClClJ,MAAMmJ,SAAS,GAAGC,8BAAc;AAChCpJ,MAAMqJ,OAAO,GAAGjG,0BAAY;AAC5BpD,MAAMmJ,SAAS,GAAGC,8BAAc;AAChCpJ,MAAMsJ,iBAAiB,GAAGC,8CAAsB;AAChDvJ,MAAMwJ,eAAe,GAAGC,4CAAoB;AAC5CzJ,MAAM0J,eAAe,GAAGC,0CAAoB;AAC5C3J,MAAM4J,QAAQ,GAAGxH,4BAAa;AAC9BpC,MAAM6J,OAAO,GAAGzB,0BAAY;AAC5BpI,MAAM8J,OAAO,GAAGtJ,0BAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS;;;;;;CAuBZ,CAAC;AAEJ,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS;;;;;;CAuBZ,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;;CAQhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -41,11 +41,12 @@ var useStyles = (0, _core.createStyles)(function(theme) {
|
|
|
41
41
|
};
|
|
42
42
|
});
|
|
43
43
|
var TableComponentsOrder = {
|
|
44
|
-
MultiSelectInfo:
|
|
45
|
-
Actions:
|
|
46
|
-
Predicate:
|
|
47
|
-
Filter:
|
|
48
|
-
DateRangePicker:
|
|
44
|
+
MultiSelectInfo: 7,
|
|
45
|
+
Actions: 6,
|
|
46
|
+
Predicate: 5,
|
|
47
|
+
Filter: 4,
|
|
48
|
+
DateRangePicker: 3,
|
|
49
|
+
ColumnsSelector: 2,
|
|
49
50
|
LayoutControl: 1
|
|
50
51
|
};
|
|
51
52
|
var _default = useStyles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nconst useStyles = createStyles<string>((theme) => ({\n table: {\n width: '100%',\n },\n\n header: {\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 1,\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n },\n },\n\n body: {},\n}));\n\nexport const TableComponentsOrder = {\n MultiSelectInfo:
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nconst useStyles = createStyles<string>((theme) => ({\n table: {\n width: '100%',\n },\n\n header: {\n position: 'sticky',\n top: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.black : theme.white,\n transition: 'box-shadow 150ms ease',\n zIndex: 1,\n\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n },\n },\n\n body: {},\n}));\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 7,\n Actions: 6,\n Predicate: 5,\n Filter: 4,\n DateRangePicker: 3,\n ColumnsSelector: 2,\n LayoutControl: 1,\n};\n\nexport default useStyles;\n"],"names":["TableComponentsOrder","useStyles","createStyles","theme","table","width","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","borderBottom","colors","gray","body","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","ColumnsSelector","LayoutControl"],"mappings":";;;;;;;;;;;IA2BaA,oBAAoB;eAApBA;;IAUb,OAAyB;eAAzB;;;oBArC2B;AAE3B,IAAMC,YAAYC,IAAAA,kBAAY,EAAS,SAACC;WAAW;QAC/CC,OAAO;YACHC,OAAO;QACX;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBN,MAAMO,WAAW,KAAK,SAASP,MAAMQ,KAAK,GAAGR,MAAMS,KAAK;YACzEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTR,UAAU;gBACVS,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRC,cAAc,AAAC,aAAiC,OAArBhB,MAAMiB,MAAM,CAACC,IAAI,CAAC,EAAE;YACnD;QACJ;QAEAC,MAAM,CAAC;IACX;;AAEO,IAAMtB,uBAAuB;IAChCuB,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;IACjBC,iBAAiB;IACjBC,eAAe;AACnB;IAEA,WAAe5B"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { Icon } from '@coveord/plasma-react-icons';
|
|
2
2
|
import { DefaultProps, Selectors } from '@mantine/core';
|
|
3
3
|
import { UseFormReturnType } from '@mantine/form';
|
|
4
|
-
import { ColumnDef, CoreOptions, TableOptions, InitialTableState as TanstackInitialTableState, TableState as TanstackTableState } from '@tanstack/table-core';
|
|
4
|
+
import { Column, ColumnDef, CoreOptions, TableOptions, InitialTableState as TanstackInitialTableState, TableState as TanstackTableState } from '@tanstack/table-core';
|
|
5
5
|
import { Dispatch, ReactElement, ReactNode, RefObject } from 'react';
|
|
6
6
|
import { DateRangePickerValue } from '../date-range-picker/DateRangePickerInlineCalendar';
|
|
7
|
+
import useStyles from './Table.styles';
|
|
7
8
|
import { TableLayoutProps } from './layouts/RowLayout.types';
|
|
8
9
|
import { TableLayouts } from './layouts/TableLayouts';
|
|
9
10
|
import { TableActions } from './table-actions/TableActions';
|
|
10
11
|
import { TableAccordionColumn, TableCollapsibleColumn } from './table-column/TableCollapsibleColumn';
|
|
12
|
+
import { TableColumnsSelector } from './table-columns-selector/TableColumnsSelector';
|
|
11
13
|
import { TableConsumer } from './table-consumer/TableConsumer';
|
|
12
14
|
import { TableDateRangePicker } from './table-date-range-picker/TableDateRangePicker';
|
|
13
15
|
import { TableFilter } from './table-filter/TableFilter';
|
|
@@ -18,7 +20,6 @@ import { TableLoading } from './table-loading/TableLoading';
|
|
|
18
20
|
import { TablePagination } from './table-pagination/TablePagination';
|
|
19
21
|
import { TablePerPage } from './table-per-page/TablePerPage';
|
|
20
22
|
import { TablePredicate } from './table-predicate/TablePredicate';
|
|
21
|
-
import useStyles from './Table.styles';
|
|
22
23
|
export type RowSelectionWithData<TData> = Record<string, TData>;
|
|
23
24
|
export interface RowSelectionState<TData> {
|
|
24
25
|
rowSelection: RowSelectionWithData<TData>;
|
|
@@ -69,6 +70,10 @@ export type TableFormType = {
|
|
|
69
70
|
layout: TableLayout['name'];
|
|
70
71
|
};
|
|
71
72
|
export type TableContextType<TData> = {
|
|
73
|
+
/**
|
|
74
|
+
* Returns all flat columns in the table.
|
|
75
|
+
*/
|
|
76
|
+
getAllColumns: () => Array<Column<TData, unknown>>;
|
|
72
77
|
/**
|
|
73
78
|
* Function to call when the table needs an update
|
|
74
79
|
*/
|
|
@@ -233,6 +238,7 @@ export interface TableProps<T> extends DefaultProps<TableStylesNames> {
|
|
|
233
238
|
}
|
|
234
239
|
export interface TableType {
|
|
235
240
|
<T>(props: TableProps<T>): ReactElement;
|
|
241
|
+
ColumnsSelector: typeof TableColumnsSelector;
|
|
236
242
|
Actions: typeof TableActions;
|
|
237
243
|
Filter: typeof TableFilter;
|
|
238
244
|
Footer: typeof TableFooter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,SAAS,EACT,WAAW,EACX,YAAY,EACZ,iBAAiB,IAAI,yBAAyB,EAC9C,UAAU,IAAI,kBAAkB,EACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAC,oBAAoB,EAAC,MAAM,oDAAoD,CAAC;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AACnG,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAC,oBAAoB,EAAC,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,7 @@ var RowLayoutBody = function(_param) {
|
|
|
62
62
|
"styles",
|
|
63
63
|
"unstyled"
|
|
64
64
|
]);
|
|
65
|
+
var _table_getRowModel;
|
|
65
66
|
var _useTable = (0, _TableContext.useTable)(), multiRowSelectionEnabled = _useTable.multiRowSelectionEnabled, disableRowSelection = _useTable.disableRowSelection;
|
|
66
67
|
var _useStyles = (0, _RowLayoutstyles.default)({
|
|
67
68
|
disableRowSelection: disableRowSelection,
|
|
@@ -76,7 +77,7 @@ var RowLayoutBody = function(_param) {
|
|
|
76
77
|
var cell = el.children[el.children.length - 1];
|
|
77
78
|
cell.querySelector("button").click();
|
|
78
79
|
};
|
|
79
|
-
var rows = table.getRowModel().rows.map(function(row) {
|
|
80
|
+
var rows = (_table_getRowModel = table.getRowModel()) === null || _table_getRowModel === void 0 ? void 0 : _table_getRowModel.rows.map(function(row) {
|
|
80
81
|
var _getExpandChildren;
|
|
81
82
|
var _getExpandChildren1;
|
|
82
83
|
var rowChildren = (_getExpandChildren1 = (_getExpandChildren = getExpandChildren) === null || _getExpandChildren === void 0 ? void 0 : _getExpandChildren(row.original)) !== null && _getExpandChildren1 !== void 0 ? _getExpandChildren1 : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout} from '../Table.types';\nimport {useTable} from '../TableContext';\nimport {TableCollapsibleColumn} from '../table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from '../table-column/TableSelectableColumn';\nimport {Th} from '../table-header/Th';\nimport {TableLoading} from '../table-loading/TableLoading';\nimport useStyles from './RowLayout.styles';\nimport {TableLayoutProps} from './RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\n\nconst RowLayoutHeader = <T,>({table, classNames, styles, unstyled}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n classNames,\n styles,\n unstyled,\n ...others\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["RowLayout","RowLayoutHeader","table","classNames","styles","unstyled","useTable","multiRowSelectionEnabled","disableRowSelection","classes","useStyles","name","headers","getHeaderGroups","map","headerGroup","tr","className","headerColumns","columnHeader","Th","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","others","cx","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","row","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","Fragment","onDoubleClick","rowSelected","rowUnselectable","aria-selected","data-testid","getVisibleCells","columnSizing","defaultColumnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","TableSelectableColumn","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","rowCollapsibleButtonCell","TableCollapsibleColumn","TableLoading","visible","flexRender","getContext","colSpan","getAllColumns","padding","Collapse","in","getIsExpanded","Box","collapsible","px","py","icon","ListSize16Px","Header","Body"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/layouts/RowLayout.tsx"],"sourcesContent":["import {ListSize16Px} from '@coveord/plasma-react-icons';\nimport {Box, Collapse} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {Fragment, type MouseEvent} from 'react';\nimport {TableLayout} from '../Table.types';\nimport {useTable} from '../TableContext';\nimport {TableCollapsibleColumn} from '../table-column/TableCollapsibleColumn';\nimport {TableSelectableColumn} from '../table-column/TableSelectableColumn';\nimport {Th} from '../table-header/Th';\nimport {TableLoading} from '../table-loading/TableLoading';\nimport useStyles from './RowLayout.styles';\nimport {TableLayoutProps} from './RowLayout.types'; // TODO https://coveord.atlassian.net/browse/ADUI-9182\n\nconst RowLayoutHeader = <T,>({table, classNames, styles, unstyled}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={classes.headerColumns}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\n\nconst RowLayoutBody = <T,>({\n table,\n doubleClickAction,\n getExpandChildren,\n loading,\n keepSelection,\n classNames,\n styles,\n unstyled,\n ...others\n}: TableLayoutProps<T>) => {\n const {multiRowSelectionEnabled, disableRowSelection} = useTable();\n const {classes, cx} = useStyles(\n {disableRowSelection, multiRowSelectionEnabled},\n {name: 'RowLayout', classNames, styles, unstyled},\n );\n\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel()?.rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = keepSelection && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (!disableRowSelection && !multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n data-testid={row.id}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && !disableRowSelection) {\n event.stopPropagation();\n row.getToggleSelectedHandler();\n }\n };\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n style={{\n width: columnSizing.size ?? 'auto',\n minWidth: columnSizing.minSize,\n maxWidth: columnSizing.maxSize,\n }}\n className={cx(classes.cell, {\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box className={classes.collapsible} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nexport const RowLayout: TableLayout = {\n name: 'Rows',\n icon: ListSize16Px,\n Header: RowLayoutHeader,\n Body: RowLayoutBody,\n};\n"],"names":["RowLayout","RowLayoutHeader","table","classNames","styles","unstyled","useTable","multiRowSelectionEnabled","disableRowSelection","classes","useStyles","name","headers","getHeaderGroups","map","headerGroup","tr","className","headerColumns","columnHeader","Th","header","id","RowLayoutBody","doubleClickAction","getExpandChildren","loading","keepSelection","others","cx","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","row","rowChildren","original","isSelected","getIsSelected","shouldKeepSelection","onClick","event","currentTarget","toggleSelected","Fragment","onDoubleClick","rowSelected","rowUnselectable","aria-selected","data-testid","getVisibleCells","columnSizing","defaultColumnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","TableSelectableColumn","stopPropagation","getToggleSelectedHandler","td","style","width","minWidth","maxWidth","rowCollapsibleButtonCell","TableCollapsibleColumn","TableLoading","visible","flexRender","getContext","colSpan","getAllColumns","padding","Collapse","in","getIsExpanded","Box","collapsible","px","py","icon","ListSize16Px","Header","Body"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableColumnsSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AAIvE,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,yBAAyB,CAmE7E,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "TableColumnsSelector", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return TableColumnsSelector;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
12
|
+
var _to_consumable_array = require("@swc/helpers/_/_to_consumable_array");
|
|
13
|
+
var _jsxruntime = require("react/jsx-runtime");
|
|
14
|
+
var _core = require("@mantine/core");
|
|
15
|
+
var _Tablestyles = require("../Table.styles");
|
|
16
|
+
var _TableContext = require("../TableContext");
|
|
17
|
+
var _TableColumnsSelectorstyles = /*#__PURE__*/ _interop_require_default._(require("./TableColumnsSelector.styles"));
|
|
18
|
+
var COLUMNS_IDS_TO_EXCLUDE = [
|
|
19
|
+
"collapsible",
|
|
20
|
+
"select"
|
|
21
|
+
];
|
|
22
|
+
var TableColumnsSelector = function(param) {
|
|
23
|
+
var classNames = param.classNames, styles = param.styles, unstyled = param.unstyled, _param_label = param.label, label = _param_label === void 0 ? "Edit columns" : _param_label, _param_buttonVariant = param.buttonVariant, buttonVariant = _param_buttonVariant === void 0 ? "outline" : _param_buttonVariant, _param_showVisibleCountLabel = param.showVisibleCountLabel, showVisibleCountLabel = _param_showVisibleCountLabel === void 0 ? false : _param_showVisibleCountLabel, _param_nonHideableColumns = param.nonHideableColumns, nonHideableColumns = _param_nonHideableColumns === void 0 ? [] : _param_nonHideableColumns, maxSelectableColumns = param.maxSelectableColumns, footer = param.footer, _param_limitReachedTooltip = param.limitReachedTooltip, limitReachedTooltip = _param_limitReachedTooltip === void 0 ? "You have reached the maximum display limit." : _param_limitReachedTooltip, columnNames = param.columnNames;
|
|
24
|
+
var classes = (0, _TableColumnsSelectorstyles.default)(null, {
|
|
25
|
+
name: "TableColumnsSelector",
|
|
26
|
+
classNames: classNames,
|
|
27
|
+
styles: styles,
|
|
28
|
+
unstyled: unstyled
|
|
29
|
+
}).classes;
|
|
30
|
+
var getAllColumns = (0, _TableContext.useTable)().getAllColumns;
|
|
31
|
+
var columnsToExclude = _to_consumable_array._(nonHideableColumns).concat(_to_consumable_array._(COLUMNS_IDS_TO_EXCLUDE));
|
|
32
|
+
var filteredColumns = getAllColumns().filter(function(column) {
|
|
33
|
+
return !columnsToExclude.includes(column.id);
|
|
34
|
+
});
|
|
35
|
+
var selectedColumnsCount = filteredColumns.filter(function(column) {
|
|
36
|
+
return column.getIsVisible();
|
|
37
|
+
}).length;
|
|
38
|
+
if (filteredColumns.length <= 0) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Grid.Col, {
|
|
42
|
+
span: "content",
|
|
43
|
+
order: _Tablestyles.TableComponentsOrder.ColumnsSelector,
|
|
44
|
+
py: "sm",
|
|
45
|
+
className: classes.root,
|
|
46
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Popover, {
|
|
47
|
+
withinPortal: true,
|
|
48
|
+
position: "bottom",
|
|
49
|
+
shadow: "md",
|
|
50
|
+
children: [
|
|
51
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Popover.Target, {
|
|
52
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Button, {
|
|
53
|
+
variant: buttonVariant,
|
|
54
|
+
children: "".concat(label).concat(showVisibleCountLabel ? " (".concat(selectedColumnsCount, ")") : "")
|
|
55
|
+
})
|
|
56
|
+
}),
|
|
57
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Popover.Dropdown, {
|
|
58
|
+
miw: 240,
|
|
59
|
+
children: [
|
|
60
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_core.ScrollArea.Autosize, {
|
|
61
|
+
mah: 154,
|
|
62
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Stack, {
|
|
63
|
+
children: filteredColumns.map(function(column) {
|
|
64
|
+
var _columnNames;
|
|
65
|
+
var isDisabled = selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible();
|
|
66
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Tooltip, {
|
|
67
|
+
label: limitReachedTooltip,
|
|
68
|
+
disabled: !isDisabled,
|
|
69
|
+
position: "left",
|
|
70
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
71
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Checkbox, {
|
|
72
|
+
label: ((_columnNames = columnNames) === null || _columnNames === void 0 ? void 0 : _columnNames[column.id]) || column.id,
|
|
73
|
+
name: column.id,
|
|
74
|
+
checked: column.getIsVisible(),
|
|
75
|
+
disabled: isDisabled,
|
|
76
|
+
onChange: column.getToggleVisibilityHandler()
|
|
77
|
+
}, column.id)
|
|
78
|
+
})
|
|
79
|
+
});
|
|
80
|
+
})
|
|
81
|
+
})
|
|
82
|
+
}),
|
|
83
|
+
maxSelectableColumns && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
84
|
+
children: [
|
|
85
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Divider, {
|
|
86
|
+
mb: "xs",
|
|
87
|
+
mt: "sm"
|
|
88
|
+
}),
|
|
89
|
+
footer
|
|
90
|
+
]
|
|
91
|
+
})
|
|
92
|
+
]
|
|
93
|
+
})
|
|
94
|
+
]
|
|
95
|
+
})
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
//# sourceMappingURL=TableColumnsSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {Button, Checkbox, Divider, Grid, Popover, ScrollArea, Stack, Tooltip} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nimport {TableComponentsOrder} from '../Table.styles';\nimport {useTable} from '../TableContext';\nimport useStyles from './TableColumnsSelector.styles';\nimport {TableColumnsSelectorProps} from './TableColumnsSelector.types';\n\nconst COLUMNS_IDS_TO_EXCLUDE = ['collapsible', 'select'];\n\nexport const TableColumnsSelector: FunctionComponent<TableColumnsSelectorProps> = ({\n classNames,\n styles,\n unstyled,\n label = 'Edit columns',\n buttonVariant = 'outline',\n showVisibleCountLabel = false,\n nonHideableColumns = [],\n maxSelectableColumns,\n footer,\n limitReachedTooltip = 'You have reached the maximum display limit.',\n columnNames,\n}) => {\n const {classes} = useStyles(null, {name: 'TableColumnsSelector', classNames, styles, unstyled});\n const {getAllColumns} = useTable();\n\n const columnsToExclude = [...nonHideableColumns, ...COLUMNS_IDS_TO_EXCLUDE];\n\n const filteredColumns = getAllColumns().filter((column) => !columnsToExclude.includes(column.id));\n\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n return (\n <Grid.Col span=\"content\" order={TableComponentsOrder.ColumnsSelector} py=\"sm\" className={classes.root}>\n <Popover withinPortal position=\"bottom\" shadow=\"md\">\n <Popover.Target>\n <Button variant={buttonVariant}>{`${label}${\n showVisibleCountLabel ? ` (${selectedColumnsCount})` : ''\n }`}</Button>\n </Popover.Target>\n <Popover.Dropdown miw={240}>\n <ScrollArea.Autosize mah={154}>\n <Stack>\n {filteredColumns.map((column) => {\n const isDisabled =\n selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible();\n return (\n <Tooltip label={limitReachedTooltip} disabled={!isDisabled} position=\"left\">\n <div>\n <Checkbox\n key={column.id}\n label={columnNames?.[column.id] || column.id}\n name={column.id}\n checked={column.getIsVisible()}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n })}\n </Stack>\n </ScrollArea.Autosize>\n {maxSelectableColumns && (\n <>\n <Divider mb=\"xs\" mt=\"sm\" />\n {footer}\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n </Grid.Col>\n );\n};\n"],"names":["TableColumnsSelector","COLUMNS_IDS_TO_EXCLUDE","classNames","styles","unstyled","label","buttonVariant","showVisibleCountLabel","nonHideableColumns","maxSelectableColumns","footer","limitReachedTooltip","columnNames","classes","useStyles","name","getAllColumns","useTable","columnsToExclude","filteredColumns","filter","column","includes","id","selectedColumnsCount","getIsVisible","length","Grid","Col","span","order","TableComponentsOrder","ColumnsSelector","py","className","root","Popover","withinPortal","position","shadow","Target","Button","variant","Dropdown","miw","ScrollArea","Autosize","mah","Stack","map","isDisabled","Tooltip","disabled","div","Checkbox","checked","onChange","getToggleVisibilityHandler","Divider","mb","mt"],"mappings":";;;;+BAUaA;;;eAAAA;;;;;;oBAVsE;2BAGhD;4BACZ;mFACD;AAGtB,IAAMC,yBAAyB;IAAC;IAAe;CAAS;AAEjD,IAAMD,uBAAqE;QAC9EE,mBAAAA,YACAC,eAAAA,QACAC,iBAAAA,+BACAC,OAAAA,kCAAQ,4DACRC,eAAAA,kDAAgB,uEAChBC,uBAAAA,kEAAwB,wEACxBC,oBAAAA,4DAAqB,EAAE,8BACvBC,6BAAAA,sBACAC,eAAAA,2CACAC,qBAAAA,8DAAsB,4EACtBC,oBAAAA;IAEA,IAAM,AAACC,UAAWC,IAAAA,mCAAS,EAAC,MAAM;QAACC,MAAM;QAAwBb,YAAAA;QAAYC,QAAAA;QAAQC,UAAAA;IAAQ,GAAtFS;IACP,IAAM,AAACG,gBAAiBC,IAAAA,sBAAQ,IAAzBD;IAEP,IAAME,mBAAmB,AAAC,uBAAGV,2BAAoB,uBAAGP;IAEpD,IAAMkB,kBAAkBH,gBAAgBI,MAAM,CAAC,SAACC;eAAW,CAACH,iBAAiBI,QAAQ,CAACD,OAAOE,EAAE;;IAE/F,IAAMC,uBAAuBL,gBAAgBC,MAAM,CAAC,SAACC;eAAWA,OAAOI,YAAY;OAAIC,MAAM;IAE7F,IAAIP,gBAAgBO,MAAM,IAAI,GAAG;QAC7B,OAAO;IACX;IAEA,qBACI,qBAACC,UAAI,CAACC,GAAG;QAACC,MAAK;QAAUC,OAAOC,iCAAoB,CAACC,eAAe;QAAEC,IAAG;QAAKC,WAAWrB,QAAQsB,IAAI;kBACjG,cAAA,sBAACC,aAAO;YAACC,YAAY;YAACC,UAAS;YAASC,QAAO;;8BAC3C,qBAACH,aAAO,CAACI,MAAM;8BACX,cAAA,qBAACC,YAAM;wBAACC,SAASpC;kCAAgB,AAAC,GAC9BC,OADgCF,OAEnC,OADGE,wBAAwB,AAAC,KAAyB,OAArBiB,sBAAqB,OAAK;;;8BAG/D,sBAACY,aAAO,CAACO,QAAQ;oBAACC,KAAK;;sCACnB,qBAACC,gBAAU,CAACC,QAAQ;4BAACC,KAAK;sCACtB,cAAA,qBAACC,WAAK;0CACD7B,gBAAgB8B,GAAG,CAAC,SAAC5B;wCAQKT;oCAPvB,IAAMsC,aACF1B,wBAAwBf,wBAAwB,CAACY,OAAOI,YAAY;oCACxE,qBACI,qBAAC0B,aAAO;wCAAC9C,OAAOM;wCAAqByC,UAAU,CAACF;wCAAYZ,UAAS;kDACjE,cAAA,qBAACe;sDACG,cAAA,qBAACC,cAAQ;gDAELjD,OAAOO,EAAAA,eAAAA,yBAAAA,mCAAAA,YAAa,CAACS,OAAOE,EAAE,CAAC,KAAIF,OAAOE,EAAE;gDAC5CR,MAAMM,OAAOE,EAAE;gDACfgC,SAASlC,OAAOI,YAAY;gDAC5B2B,UAAUF;gDACVM,UAAUnC,OAAOoC,0BAA0B;+CALtCpC,OAAOE,EAAE;;;gCAUlC;;;wBAGPd,sCACG;;8CACI,qBAACiD,aAAO;oCAACC,IAAG;oCAAKC,IAAG;;gCACnBlD;;;;;;;;AAO7B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const _default: (params: void, options?: import("@mantine/core").UseStylesOptions<string>) => {
|
|
2
|
+
classes: {
|
|
3
|
+
root: string;
|
|
4
|
+
wrapper: string;
|
|
5
|
+
};
|
|
6
|
+
cx: (...args: any) => string;
|
|
7
|
+
theme: import("@mantine/core").MantineTheme;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=TableColumnsSelector.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableColumnsSelector.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.styles.ts"],"names":[],"mappings":";;;;;;;;AAEA,wBAKI"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _core = require("@mantine/core");
|
|
12
|
+
var _default = (0, _core.createStyles)(function(theme) {
|
|
13
|
+
return {
|
|
14
|
+
root: {
|
|
15
|
+
maxWidth: "100%"
|
|
16
|
+
},
|
|
17
|
+
wrapper: {
|
|
18
|
+
display: "inline-flex"
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=TableColumnsSelector.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nexport default createStyles((theme) => ({\n root: {maxWidth: '100%'},\n wrapper: {\n display: 'inline-flex',\n },\n}));\n"],"names":["createStyles","theme","root","maxWidth","wrapper","display"],"mappings":";;;;+BAEA;;;eAAA;;;oBAF2B;IAE3B,WAAeA,IAAAA,kBAAY,EAAC,SAACC;WAAW;QACpCC,MAAM;YAACC,UAAU;QAAM;QACvBC,SAAS;YACLC,SAAS;QACb;IACJ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DefaultProps, Selectors } from '@mantine/core';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import useStyles from './TableColumnsSelector.styles';
|
|
4
|
+
type TableColumnsSelectorStylesNames = Selectors<typeof useStyles>;
|
|
5
|
+
export interface TableColumnsSelectorProps extends DefaultProps<TableColumnsSelectorStylesNames> {
|
|
6
|
+
/**
|
|
7
|
+
* The label of the button
|
|
8
|
+
* @default 'Edit columns'
|
|
9
|
+
*/
|
|
10
|
+
label?: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* The style variant of the button
|
|
13
|
+
* @default 'outline'
|
|
14
|
+
*/
|
|
15
|
+
buttonVariant?: string;
|
|
16
|
+
/**
|
|
17
|
+
* An array of column ids that the user cannot hide. This is useful for columns that are required for the table to function properly.
|
|
18
|
+
* @default []
|
|
19
|
+
*/
|
|
20
|
+
nonHideableColumns?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Whether the count of visible columns is shown in the button label.
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
showVisibleCountLabel?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The maximum number of columns that can be selected at the same time.
|
|
28
|
+
* If defined a footer will render with the remaining number of columns that can be selected.
|
|
29
|
+
*/
|
|
30
|
+
maxSelectableColumns?: number;
|
|
31
|
+
/**
|
|
32
|
+
* A dictionary of column ids and names to use for the checkbox labels.
|
|
33
|
+
*/
|
|
34
|
+
columnNames: Record<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* The content to display in the footer when maxSelectableColumns is defined.
|
|
37
|
+
*/
|
|
38
|
+
footer?: ReactNode;
|
|
39
|
+
/**
|
|
40
|
+
* The tooltip to display when the user hovers over a disabled checkbox.
|
|
41
|
+
* @default 'You have reached the maximum display limit.'
|
|
42
|
+
*/
|
|
43
|
+
limitReachedTooltip?: string;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=TableColumnsSelector.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableColumnsSelector.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,SAAS,MAAM,+BAA+B,CAAC;AAEtD,KAAK,+BAA+B,GAAG,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnE,MAAM,WAAW,yBAA0B,SAAQ,YAAY,CAAC,+BAA+B,CAAC;IAC5F;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/table/table-columns-selector/TableColumnsSelector.types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;AAkB/E,eAAO,MAAM,KAAK,EAAE,SA0LnB,CAAC"}
|