@coveord/plasma-mantine 52.6.0 → 52.7.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.
Files changed (128) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +31 -30
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/table/Table.d.ts.map +1 -1
  5. package/dist/cjs/components/table/Table.js +32 -86
  6. package/dist/cjs/components/table/Table.js.map +1 -1
  7. package/dist/cjs/components/table/Table.styles.d.ts +2 -5
  8. package/dist/cjs/components/table/Table.styles.d.ts.map +1 -1
  9. package/dist/cjs/components/table/Table.styles.js +7 -45
  10. package/dist/cjs/components/table/Table.styles.js.map +1 -1
  11. package/dist/cjs/components/table/Table.types.d.ts +57 -1
  12. package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
  13. package/dist/cjs/components/table/TableActions.d.ts +12 -2
  14. package/dist/cjs/components/table/TableActions.d.ts.map +1 -1
  15. package/dist/cjs/components/table/TableActions.js +29 -7
  16. package/dist/cjs/components/table/TableActions.js.map +1 -1
  17. package/dist/cjs/components/table/TableDateRangePicker.d.ts +12 -1
  18. package/dist/cjs/components/table/TableDateRangePicker.d.ts.map +1 -1
  19. package/dist/cjs/components/table/TableDateRangePicker.js +31 -5
  20. package/dist/cjs/components/table/TableDateRangePicker.js.map +1 -1
  21. package/dist/cjs/components/table/TableFilter.d.ts +1 -0
  22. package/dist/cjs/components/table/TableFilter.d.ts.map +1 -1
  23. package/dist/cjs/components/table/TableFilter.js +3 -1
  24. package/dist/cjs/components/table/TableFilter.js.map +1 -1
  25. package/dist/cjs/components/table/TableHeader.d.ts.map +1 -1
  26. package/dist/cjs/components/table/TableHeader.js +3 -1
  27. package/dist/cjs/components/table/TableHeader.js.map +1 -1
  28. package/dist/cjs/components/table/TableLayoutControl.d.ts +3 -0
  29. package/dist/cjs/components/table/TableLayoutControl.d.ts.map +1 -0
  30. package/dist/cjs/components/table/TableLayoutControl.js +50 -0
  31. package/dist/cjs/components/table/TableLayoutControl.js.map +1 -0
  32. package/dist/cjs/components/table/TableLoading.d.ts +4 -0
  33. package/dist/cjs/components/table/TableLoading.d.ts.map +1 -0
  34. package/dist/cjs/components/table/TableLoading.js +28 -0
  35. package/dist/cjs/components/table/TableLoading.js.map +1 -0
  36. package/dist/cjs/components/table/TablePredicate.d.ts +12 -2
  37. package/dist/cjs/components/table/TablePredicate.d.ts.map +1 -1
  38. package/dist/cjs/components/table/TablePredicate.js +29 -4
  39. package/dist/cjs/components/table/TablePredicate.js.map +1 -1
  40. package/dist/cjs/components/table/Th.d.ts.map +1 -1
  41. package/dist/cjs/components/table/Th.js +2 -1
  42. package/dist/cjs/components/table/Th.js.map +1 -1
  43. package/dist/cjs/components/table/index.d.ts +1 -0
  44. package/dist/cjs/components/table/index.d.ts.map +1 -1
  45. package/dist/cjs/components/table/index.js +12 -3
  46. package/dist/cjs/components/table/index.js.map +1 -1
  47. package/dist/cjs/components/table/layouts/RowLayout.d.ts +3 -0
  48. package/dist/cjs/components/table/layouts/RowLayout.d.ts.map +1 -0
  49. package/dist/cjs/components/table/layouts/RowLayout.js +156 -0
  50. package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -0
  51. package/dist/cjs/components/table/layouts/TableLayouts.d.ts +4 -0
  52. package/dist/cjs/components/table/layouts/TableLayouts.d.ts.map +1 -0
  53. package/dist/cjs/components/table/layouts/TableLayouts.js +16 -0
  54. package/dist/cjs/components/table/layouts/TableLayouts.js.map +1 -0
  55. package/dist/cjs/theme/Theme.js +7 -5
  56. package/dist/cjs/theme/Theme.js.map +1 -1
  57. package/dist/esm/components/table/Table.d.ts.map +1 -1
  58. package/dist/esm/components/table/Table.js +35 -89
  59. package/dist/esm/components/table/Table.js.map +1 -1
  60. package/dist/esm/components/table/Table.styles.d.ts +2 -5
  61. package/dist/esm/components/table/Table.styles.d.ts.map +1 -1
  62. package/dist/esm/components/table/Table.styles.js +7 -45
  63. package/dist/esm/components/table/Table.styles.js.map +1 -1
  64. package/dist/esm/components/table/Table.types.d.ts +57 -1
  65. package/dist/esm/components/table/Table.types.d.ts.map +1 -1
  66. package/dist/esm/components/table/Table.types.js.map +1 -1
  67. package/dist/esm/components/table/TableActions.d.ts +12 -2
  68. package/dist/esm/components/table/TableActions.d.ts.map +1 -1
  69. package/dist/esm/components/table/TableActions.js +30 -8
  70. package/dist/esm/components/table/TableActions.js.map +1 -1
  71. package/dist/esm/components/table/TableDateRangePicker.d.ts +12 -1
  72. package/dist/esm/components/table/TableDateRangePicker.d.ts.map +1 -1
  73. package/dist/esm/components/table/TableDateRangePicker.js +32 -6
  74. package/dist/esm/components/table/TableDateRangePicker.js.map +1 -1
  75. package/dist/esm/components/table/TableFilter.d.ts +1 -0
  76. package/dist/esm/components/table/TableFilter.d.ts.map +1 -1
  77. package/dist/esm/components/table/TableFilter.js +3 -1
  78. package/dist/esm/components/table/TableFilter.js.map +1 -1
  79. package/dist/esm/components/table/TableHeader.d.ts.map +1 -1
  80. package/dist/esm/components/table/TableHeader.js +3 -1
  81. package/dist/esm/components/table/TableHeader.js.map +1 -1
  82. package/dist/esm/components/table/TableLayoutControl.d.ts +3 -0
  83. package/dist/esm/components/table/TableLayoutControl.d.ts.map +1 -0
  84. package/dist/esm/components/table/TableLayoutControl.js +40 -0
  85. package/dist/esm/components/table/TableLayoutControl.js.map +1 -0
  86. package/dist/esm/components/table/TableLoading.d.ts +4 -0
  87. package/dist/esm/components/table/TableLoading.d.ts.map +1 -0
  88. package/dist/esm/components/table/TableLoading.js +18 -0
  89. package/dist/esm/components/table/TableLoading.js.map +1 -0
  90. package/dist/esm/components/table/TablePredicate.d.ts +12 -2
  91. package/dist/esm/components/table/TablePredicate.d.ts.map +1 -1
  92. package/dist/esm/components/table/TablePredicate.js +30 -5
  93. package/dist/esm/components/table/TablePredicate.js.map +1 -1
  94. package/dist/esm/components/table/Th.d.ts.map +1 -1
  95. package/dist/esm/components/table/Th.js +2 -1
  96. package/dist/esm/components/table/Th.js.map +1 -1
  97. package/dist/esm/components/table/index.d.ts +1 -0
  98. package/dist/esm/components/table/index.d.ts.map +1 -1
  99. package/dist/esm/components/table/index.js +1 -0
  100. package/dist/esm/components/table/index.js.map +1 -1
  101. package/dist/esm/components/table/layouts/RowLayout.d.ts +3 -0
  102. package/dist/esm/components/table/layouts/RowLayout.d.ts.map +1 -0
  103. package/dist/esm/components/table/layouts/RowLayout.js +146 -0
  104. package/dist/esm/components/table/layouts/RowLayout.js.map +1 -0
  105. package/dist/esm/components/table/layouts/TableLayouts.d.ts +4 -0
  106. package/dist/esm/components/table/layouts/TableLayouts.d.ts.map +1 -0
  107. package/dist/esm/components/table/layouts/TableLayouts.js +6 -0
  108. package/dist/esm/components/table/layouts/TableLayouts.js.map +1 -0
  109. package/dist/esm/theme/Theme.js +7 -5
  110. package/dist/esm/theme/Theme.js.map +1 -1
  111. package/package.json +6 -6
  112. package/src/components/table/Table.styles.ts +33 -88
  113. package/src/components/table/Table.tsx +39 -86
  114. package/src/components/table/Table.types.ts +59 -0
  115. package/src/components/table/TableActions.tsx +22 -6
  116. package/src/components/table/TableDateRangePicker.tsx +27 -6
  117. package/src/components/table/TableFilter.tsx +4 -3
  118. package/src/components/table/TableHeader.tsx +2 -0
  119. package/src/components/table/TableLayoutControl.tsx +29 -0
  120. package/src/components/table/TableLoading.tsx +8 -0
  121. package/src/components/table/TablePredicate.tsx +24 -7
  122. package/src/components/table/Th.tsx +1 -0
  123. package/src/components/table/__tests__/Table.spec.tsx +121 -369
  124. package/src/components/table/index.ts +1 -0
  125. package/src/components/table/layouts/RowLayout.tsx +150 -0
  126. package/src/components/table/layouts/TableLayouts.tsx +5 -0
  127. package/src/components/table/layouts/__tests__/RowLayout.spec.tsx +296 -0
  128. package/src/theme/Theme.tsx +5 -5
@@ -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;AAsB/E,eAAO,MAAM,KAAK,EAAE,SA4MnB,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.tsx"],"names":[],"mappings":"AASA,OAAO,EAAwC,SAAS,EAAC,MAAM,eAAe,CAAC;AAiB/E,eAAO,MAAM,KAAK,EAAE,SAwKnB,CAAC"}
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "Table", {
8
8
  return Table;
9
9
  }
10
10
  });
11
- var _define_property = require("@swc/helpers/_/_define_property");
12
11
  var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
13
12
  var _object_spread = require("@swc/helpers/_/_object_spread");
14
13
  var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
@@ -35,22 +34,13 @@ var _TablePagination = require("./TablePagination");
35
34
  var _TablePerPage = require("./TablePerPage");
36
35
  var _TablePredicate = require("./TablePredicate");
37
36
  var _TableSelectableColumn = require("./TableSelectableColumn");
38
- var _Th = require("./Th");
39
37
  var _useRowSelection = require("./useRowSelection");
40
- var LoadingSkeleton = function(props) {
41
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Skeleton, _object_spread_props._(_object_spread._({
42
- style: {
43
- display: "inline-block"
44
- }
45
- }, props), {
46
- sx: !props.visible ? {
47
- borderRadius: 0
48
- } : undefined,
49
- children: props.children
50
- }));
51
- };
38
+ var _TableLoading = require("./TableLoading");
39
+ var _TableLayouts = require("./layouts/TableLayouts");
52
40
  var Table = function(param) {
53
- 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, 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, _param_options = param.options, options = _param_options === void 0 ? {} : _param_options;
41
+ 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 ? [
42
+ _TableLayouts.TableLayouts.Rows
43
+ ] : _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, _param_options = param.options, options = _param_options === void 0 ? {} : _param_options;
54
44
  var _form_values, _form_values_dateRange, _form_values_dateRange1;
55
45
  var convertedChildren = _react.Children.toArray(children);
56
46
  var header = convertedChildren.find(function(child) {
@@ -66,20 +56,18 @@ var Table = function(param) {
66
56
  "predicates",
67
57
  "dateRange"
68
58
  ]);
69
- var _initialState_predicates, _initialState_dateRange;
59
+ var _initialState_predicates, _initialState_dateRange, _initialState_layout;
70
60
  var form = (0, _form.useForm)({
71
61
  initialValues: {
72
62
  predicates: (_initialState_predicates = initialState === null || initialState === void 0 ? void 0 : initialState.predicates) !== null && _initialState_predicates !== void 0 ? _initialState_predicates : {},
73
63
  dateRange: (_initialState_dateRange = initialState === null || initialState === void 0 ? void 0 : initialState.dateRange) !== null && _initialState_dateRange !== void 0 ? _initialState_dateRange : [
74
64
  null,
75
65
  null
76
- ]
66
+ ],
67
+ layout: (_initialState_layout = initialState === null || initialState === void 0 ? void 0 : initialState.layout) !== null && _initialState_layout !== void 0 ? _initialState_layout : layouts[0].name
77
68
  }
78
69
  });
79
- var _useStyles = (0, _Tablestyles.default)({
80
- multiRowSelectionEnabled: multiRowSelectionEnabled,
81
- disableRowSelection: disableRowSelection
82
- }), cx = _useStyles.cx, classes = _useStyles.classes;
70
+ var classes = (0, _Tablestyles.default)().classes;
83
71
  var _ref;
84
72
  var table = (0, _reacttable.useReactTable)(_object_spread._({
85
73
  initialState: (0, _lodashdefaultsdeep.default)(initialStateWithoutForm, {
@@ -133,7 +121,8 @@ var Table = function(param) {
133
121
  state.globalFilter,
134
122
  state.pagination,
135
123
  state.sorting,
136
- form.values
124
+ JSON.stringify(form.values.dateRange),
125
+ JSON.stringify(form.values.predicates)
137
126
  ]);
138
127
  var clearFilters = (0, _react.useCallback)(function() {
139
128
  var _initialState_predicates;
@@ -152,58 +141,11 @@ var Table = function(param) {
152
141
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Loader, {})
153
142
  });
154
143
  }
155
- var rows = table.getRowModel().rows.map(function(row) {
156
- var _getExpandChildren;
157
- var rowChildren = (_getExpandChildren = getExpandChildren === null || getExpandChildren === void 0 ? void 0 : getExpandChildren(row.original)) !== null && _getExpandChildren !== void 0 ? _getExpandChildren : null;
158
- var isSelected = !!row.getIsSelected();
159
- var _obj;
160
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {
161
- children: [
162
- /*#__PURE__*/ (0, _jsxruntime.jsx)("tr", {
163
- onClick: function() {
164
- return disableRowSelection ? undefined : row.toggleSelected();
165
- },
166
- onDoubleClick: function() {
167
- return doubleClickAction === null || doubleClickAction === void 0 ? void 0 : doubleClickAction(row.original);
168
- },
169
- className: cx(classes.row, (_obj = {}, _define_property._(_obj, classes.rowSelected, isSelected), _define_property._(_obj, classes.rowUnselectable, disableRowSelection), _obj)),
170
- "aria-selected": isSelected,
171
- children: row.getVisibleCells().map(function(cell) {
172
- var size = cell.column.getSize();
173
- var width = size !== _reacttable.defaultColumnSizing.size ? size : undefined;
174
- return /*#__PURE__*/ (0, _jsxruntime.jsx)("td", {
175
- style: {
176
- width: width
177
- },
178
- className: cx(_define_property._({}, classes.rowCollapsibleButtonCell, cell.column.id === _TableCollapsibleColumn.TableCollapsibleColumn.id)),
179
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingSkeleton, {
180
- visible: loading,
181
- children: (0, _reacttable.flexRender)(cell.column.columnDef.cell, cell.getContext())
182
- })
183
- }, cell.id);
184
- })
185
- }),
186
- rowChildren ? /*#__PURE__*/ (0, _jsxruntime.jsx)("tr", {
187
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)("td", {
188
- colSpan: table.getAllColumns().length,
189
- style: {
190
- padding: 0,
191
- borderTop: row.getIsExpanded() ? undefined : "none",
192
- borderBottom: row.getIsExpanded() ? undefined : "none"
193
- },
194
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Collapse, {
195
- in: row.getIsExpanded(),
196
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Box, {
197
- px: "sm",
198
- py: "xs",
199
- children: rowChildren
200
- })
201
- })
202
- })
203
- }) : null
204
- ]
205
- }, row.id);
144
+ var Layout = layouts.find(function(param) {
145
+ var name = param.name;
146
+ return name === form.values.layout;
206
147
  });
148
+ var hasRows = table.getRowModel().rows.length > 0;
207
149
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Box, {
208
150
  ref: outsideClickRef,
209
151
  children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_TableContext.TableContext.Provider, {
@@ -220,11 +162,12 @@ var Table = function(param) {
220
162
  containerRef: outsideClickRef,
221
163
  multiRowSelectionEnabled: multiRowSelectionEnabled,
222
164
  getPageCount: table.getPageCount,
223
- disableRowSelection: disableRowSelection
165
+ disableRowSelection: disableRowSelection,
166
+ layouts: layouts
224
167
  },
225
168
  children: [
226
169
  consumer,
227
- !rows.length && !isFiltered && !loading ? noDataChildren : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
170
+ !hasRows && !isFiltered && !loading ? noDataChildren : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
228
171
  children: [
229
172
  /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Table, {
230
173
  className: classes.table,
@@ -246,23 +189,24 @@ var Table = function(param) {
246
189
  children: header
247
190
  })
248
191
  }) : null,
249
- table.getHeaderGroups().map(function(headerGroup) {
250
- return /*#__PURE__*/ (0, _jsxruntime.jsx)("tr", {
251
- className: classes.headerColumns,
252
- children: headerGroup.headers.map(function(columnHeader) {
253
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Th.Th, {
254
- header: columnHeader
255
- }, columnHeader.id);
256
- })
257
- }, headerGroup.id);
192
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(Layout.Header, {
193
+ table: table,
194
+ doubleClickAction: doubleClickAction,
195
+ getExpandChildren: getExpandChildren,
196
+ loading: loading
258
197
  })
259
198
  ]
260
199
  }),
261
200
  /*#__PURE__*/ (0, _jsxruntime.jsx)("tbody", {
262
- children: rows.length ? rows : /*#__PURE__*/ (0, _jsxruntime.jsx)("tr", {
201
+ children: hasRows ? /*#__PURE__*/ (0, _jsxruntime.jsx)(Layout.Body, {
202
+ table: table,
203
+ doubleClickAction: doubleClickAction,
204
+ getExpandChildren: getExpandChildren,
205
+ loading: loading
206
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)("tr", {
263
207
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)("td", {
264
208
  colSpan: table.getAllColumns().length,
265
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingSkeleton, {
209
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_TableLoading.TableLoading, {
266
210
  visible: loading,
267
211
  children: noDataChildren
268
212
  })
@@ -290,5 +234,7 @@ Table.CollapsibleColumn = _TableCollapsibleColumn.TableCollapsibleColumn;
290
234
  Table.AccordionColumn = _TableCollapsibleColumn.TableAccordionColumn;
291
235
  Table.DateRangePicker = _TableDateRangePicker.TableDateRangePicker;
292
236
  Table.Consumer = _TableConsumer.TableConsumer;
237
+ Table.Loading = _TableLoading.TableLoading;
238
+ Table.Layouts = _TableLayouts.TableLayouts;
293
239
 
294
240
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Collapse, Loader, Table as MantineTable, Skeleton, SkeletonProps} 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 flexRender,\n getCoreRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, FC, Fragment, ReactElement, useCallback, useEffect, useState} from 'react';\n\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableActions} from './TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {TableConsumer} from './TableConsumer';\nimport {TableContext} 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 {TableSelectableColumn} from './TableSelectableColumn';\nimport {Th} from './Th';\nimport {useRowSelection} from './useRowSelection';\n\nconst LoadingSkeleton: FC<SkeletonProps> = (props) => (\n <Skeleton style={{display: 'inline-block'}} {...props} sx={!props.visible ? {borderRadius: 0} : undefined}>\n {props.children}\n </Skeleton>\n);\n\nexport const Table: TableType = <T,>({\n data,\n getRowId,\n noDataChildren,\n getExpandChildren,\n initialState = {},\n columns,\n onMount,\n onChange,\n children,\n loading = false,\n doubleClickAction,\n multiRowSelectionEnabled,\n disableRowSelection,\n onRowSelectionChange,\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\n const {predicates, dateRange, ...initialStateWithoutForm} = initialState;\n const form = useForm<TableFormType>({\n initialValues: {predicates: initialState?.predicates ?? {}, dateRange: initialState?.dateRange ?? [null, null]},\n });\n const {cx, classes} = useStyles({multiRowSelectionEnabled, disableRowSelection});\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {pagination: {pageSize: TablePerPage.DEFAULT_SIZE}}),\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 ...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 });\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 }, [state.globalFilter, state.pagination, state.sorting, form.values]);\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 rows = table.getRowModel().rows.map((row) => {\n const rowChildren = getExpandChildren?.(row.original) ?? null;\n const isSelected = !!row.getIsSelected();\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={() => (disableRowSelection ? undefined : row.toggleSelected())}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {\n [classes.rowSelected]: isSelected,\n [classes.rowUnselectable]: disableRowSelection,\n })}\n aria-selected={isSelected}\n >\n {row.getVisibleCells().map((cell) => {\n const size = cell.column.getSize();\n const width = size !== defaultColumnSizing.size ? size : undefined;\n return (\n <td\n key={cell.id}\n style={{width}}\n className={cx({\n [classes.rowCollapsibleButtonCell]: cell.column.id === TableCollapsibleColumn.id,\n })}\n >\n <LoadingSkeleton visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </LoadingSkeleton>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n borderTop: row.getIsExpanded() ? undefined : 'none',\n borderBottom: row.getIsExpanded() ? undefined : 'none',\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\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 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 }}\n >\n {consumer}\n {!rows.length && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n <MantineTable className={classes.table} horizontalSpacing=\"sm\" verticalSpacing=\"xs\" pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th\n // need to use inline style because Mantine define style on `.mantine-{id} thead tr th`\n style={{padding: 0, fontWeight: 'unset'}}\n colSpan={table.getAllColumns().length}\n >\n {header}\n </th>\n </tr>\n ) : null}\n {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 </thead>\n <tbody>\n {rows.length ? (\n rows\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <LoadingSkeleton visible={loading}>{noDataChildren}</LoadingSkeleton>\n </td>\n </tr>\n )}\n </tbody>\n </MantineTable>\n {footer}\n </>\n )}\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.AccordionColumn = TableAccordionColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Consumer = TableConsumer;\n"],"names":["Table","LoadingSkeleton","props","Skeleton","style","display","sx","visible","borderRadius","undefined","children","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","onMount","onChange","loading","doubleClickAction","multiRowSelectionEnabled","disableRowSelection","onRowSelectionChange","options","form","convertedChildren","Children","toArray","header","find","child","type","TableHeader","footer","TableFooter","consumer","TableConsumer","predicates","dateRange","initialStateWithoutForm","useForm","initialValues","useStyles","cx","classes","table","useReactTable","defaultsDeep","pagination","pageSize","TablePerPage","DEFAULT_SIZE","TableSelectableColumn","concat","getCoreRowModel","manualPagination","getPaginationRowModel","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","useState","state","setState","setOptions","prev","onStateChange","useRowSelection","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","globalFilter","Object","keys","values","some","predicate","triggerChange","debounce","useEffect","cancel","useDidUpdate","sorting","clearFilters","useCallback","setFieldValue","prevState","Center","flexGrow","Loader","rows","getRowModel","map","rowChildren","isSelected","getIsSelected","Fragment","tr","onClick","toggleSelected","onDoubleClick","className","rowSelected","rowUnselectable","aria-selected","getVisibleCells","cell","size","column","getSize","width","defaultColumnSizing","td","rowCollapsibleButtonCell","id","TableCollapsibleColumn","flexRender","columnDef","getContext","colSpan","getAllColumns","length","padding","borderTop","getIsExpanded","borderBottom","Collapse","in","Box","px","py","ref","TableContext","Provider","value","containerRef","getPageCount","MantineTable","horizontalSpacing","verticalSpacing","pb","thead","th","fontWeight","getHeaderGroups","headerGroup","headerColumns","headers","columnHeader","Th","tbody","Actions","TableActions","Filter","TableFilter","Footer","Header","Pagination","TablePagination","Predicate","TablePredicate","PerPage","CollapsibleColumn","AccordionColumn","TableAccordionColumn","DateRangePicker","TableDateRangePicker","Consumer"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Loader, Table as MantineTable} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ColumnDef, Row, TableState as TanstackTableState, getCoreRowModel, useReactTable} from '@tanstack/react-table';\nimport debounce from 'lodash.debounce';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Children, Dispatch, ReactElement, useCallback, useEffect, useState} from 'react';\n\nimport useStyles from './Table.styles';\nimport {TableFormType, TableProps, TableState, TableType} from './Table.types';\nimport {TableActions} from './TableActions';\nimport {TableAccordionColumn, TableCollapsibleColumn} from './TableCollapsibleColumn';\nimport {TableConsumer} from './TableConsumer';\nimport {TableContext} 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 {TableSelectableColumn} from './TableSelectableColumn';\nimport {useRowSelection} from './useRowSelection';\nimport {TableLoading} from './TableLoading';\nimport {TableLayouts} from './layouts/TableLayouts';\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 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\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();\n\n const table = useReactTable({\n initialState: defaultsDeep(initialStateWithoutForm, {pagination: {pageSize: TablePerPage.DEFAULT_SIZE}}),\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 ...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 });\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 <MantineTable className={classes.table} horizontalSpacing=\"sm\" verticalSpacing=\"xs\" pb=\"sm\">\n <thead className={classes.header}>\n {!!header ? (\n <tr>\n <th\n // need to use inline style because Mantine define style on `.mantine-{id} thead tr th`\n style={{padding: 0, fontWeight: 'unset'}}\n colSpan={table.getAllColumns().length}\n >\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>\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 </MantineTable>\n {footer}\n </>\n )}\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.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","options","form","convertedChildren","Children","toArray","header","find","child","type","TableHeader","footer","TableFooter","consumer","TableConsumer","predicates","dateRange","initialStateWithoutForm","useForm","initialValues","layout","name","classes","useStyles","table","useReactTable","defaultsDeep","pagination","pageSize","TablePerPage","DEFAULT_SIZE","TableSelectableColumn","concat","getCoreRowModel","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","useState","state","setState","setOptions","prev","onStateChange","useRowSelection","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","globalFilter","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","MantineTable","className","horizontalSpacing","verticalSpacing","pb","thead","tr","th","style","padding","fontWeight","colSpan","getAllColumns","Header","tbody","Body","td","TableLoading","visible","Actions","TableActions","Filter","TableFilter","Footer","Pagination","TablePagination","Predicate","TablePredicate","PerPage","CollapsibleColumn","TableCollapsibleColumn","AccordionColumn","TableAccordionColumn","DateRangePicker","TableDateRangePicker","Consumer","Loading","Layouts"],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- interface TableStylesParams {
2
- multiRowSelectionEnabled: boolean;
3
- disableRowSelection: boolean;
4
- }
5
- declare const useStyles: (params: TableStylesParams, options?: import("@mantine/core").UseStylesOptions<string>) => {
1
+ declare const useStyles: (params: void, options?: import("@mantine/core").UseStylesOptions<string>) => {
6
2
  classes: {
7
3
  [x: string]: string;
8
4
  };
@@ -15,6 +11,7 @@ export declare const TableComponentsOrder: {
15
11
  Predicate: number;
16
12
  Filter: number;
17
13
  DateRangePicker: number;
14
+ LayoutControl: number;
18
15
  };
19
16
  export default useStyles;
20
17
  //# sourceMappingURL=Table.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACvB,wBAAwB,EAAE,OAAO,CAAC;IAClC,mBAAmB,EAAE,OAAO,CAAC;CAChC;AAED,QAAA,MAAM,SAAS;;;;;;CAiFb,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;CAMhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Table.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS;;;;;;CA8BZ,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -17,9 +17,7 @@ _export(exports, {
17
17
  }
18
18
  });
19
19
  var _core = require("@mantine/core");
20
- var useStyles = (0, _core.createStyles)(function(theme, param) {
21
- var multiRowSelectionEnabled = param.multiRowSelectionEnabled, disableRowSelection = param.disableRowSelection;
22
- var rowBackgroundColor = theme.colorScheme === "dark" ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2) : theme.colors[theme.primaryColor][0];
20
+ var useStyles = (0, _core.createStyles)(function(theme) {
23
21
  return {
24
22
  table: {
25
23
  width: "100%",
@@ -47,52 +45,16 @@ var useStyles = (0, _core.createStyles)(function(theme, param) {
47
45
  bottom: 0,
48
46
  borderBottom: "1px solid ".concat(theme.colors.gray[3])
49
47
  }
50
- },
51
- headerColumns: {
52
- "& th:first-of-type > *": {
53
- paddingLeft: theme.spacing.xl
54
- },
55
- "& input[type=checkbox]": {
56
- backgroundColor: disableRowSelection ? "".concat(theme.colors.gray[2]) : undefined,
57
- borderColor: disableRowSelection ? "".concat(theme.colors.gray[3]) : "".concat(theme.colors.gray[4]),
58
- pointerEvents: disableRowSelection ? "none" : "auto",
59
- cursor: disableRowSelection ? "not-allowed" : "default",
60
- "& + svg": {
61
- color: disableRowSelection ? "".concat(theme.colors.gray[5]) : "inherit"
62
- }
63
- }
64
- },
65
- rowSelected: {
66
- backgroundColor: multiRowSelectionEnabled ? undefined : rowBackgroundColor
67
- },
68
- rowUnselectable: {
69
- "& input[type=checkbox]": {
70
- backgroundColor: "".concat(theme.colors.gray[2]),
71
- borderColor: "".concat(theme.colors.gray[3]),
72
- pointerEvents: "none",
73
- cursor: "not-allowed",
74
- "&:checked + svg": {
75
- color: "".concat(theme.colors.gray[5])
76
- }
77
- }
78
- },
79
- rowCollapsibleButtonCell: {
80
- textAlign: "right",
81
- padding: "calc(".concat(theme.spacing.xs, "/2) ").concat(theme.spacing.sm, " !important")
82
- },
83
- row: {
84
- "&:hover": {
85
- backgroundColor: rowBackgroundColor
86
- }
87
48
  }
88
49
  };
89
50
  });
90
51
  var TableComponentsOrder = {
91
- MultiSelectInfo: 5,
92
- Actions: 4,
93
- Predicate: 3,
94
- Filter: 2,
95
- DateRangePicker: 1
52
+ MultiSelectInfo: 6,
53
+ Actions: 5,
54
+ Predicate: 4,
55
+ Filter: 3,
56
+ DateRangePicker: 2,
57
+ LayoutControl: 1
96
58
  };
97
59
  var _default = useStyles;
98
60
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\ninterface TableStylesParams {\n multiRowSelectionEnabled: boolean;\n disableRowSelection: boolean;\n}\n\nconst useStyles = createStyles<string, TableStylesParams>((theme, {multiRowSelectionEnabled, disableRowSelection}) => {\n const rowBackgroundColor =\n theme.colorScheme === 'dark'\n ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2)\n : theme.colors[theme.primaryColor][0];\n return {\n table: {\n width: '100%',\n '& thead tr th': {\n borderBottom: 'none',\n },\n '& td:first-of-type': {\n paddingLeft: theme.spacing.xl,\n },\n '& tbody td': {\n verticalAlign: 'top',\n },\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 headerColumns: {\n '& th:first-of-type > *': {\n paddingLeft: theme.spacing.xl,\n },\n\n '& input[type=checkbox]': {\n backgroundColor: disableRowSelection ? `${theme.colors.gray[2]}` : undefined,\n borderColor: disableRowSelection ? `${theme.colors.gray[3]}` : `${theme.colors.gray[4]}`,\n pointerEvents: disableRowSelection ? 'none' : 'auto',\n cursor: disableRowSelection ? 'not-allowed' : 'default',\n\n '& + svg': {\n color: disableRowSelection ? `${theme.colors.gray[5]}` : 'inherit',\n },\n },\n },\n\n rowSelected: {\n backgroundColor: multiRowSelectionEnabled ? undefined : rowBackgroundColor,\n },\n\n rowUnselectable: {\n '& input[type=checkbox]': {\n backgroundColor: `${theme.colors.gray[2]}`,\n borderColor: `${theme.colors.gray[3]}`,\n pointerEvents: 'none',\n cursor: 'not-allowed',\n\n '&:checked + svg': {\n color: `${theme.colors.gray[5]}`,\n },\n },\n },\n\n rowCollapsibleButtonCell: {\n textAlign: 'right',\n padding: `calc(${theme.spacing.xs}/2) ${theme.spacing.sm} !important`,\n },\n\n row: {\n '&:hover': {\n backgroundColor: rowBackgroundColor,\n },\n },\n };\n});\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 5,\n Actions: 4,\n Predicate: 3,\n Filter: 2,\n DateRangePicker: 1,\n};\n\nexport default useStyles;\n"],"names":["TableComponentsOrder","useStyles","createStyles","theme","multiRowSelectionEnabled","disableRowSelection","rowBackgroundColor","colorScheme","fn","rgba","colors","primaryColor","table","width","borderBottom","paddingLeft","spacing","xl","verticalAlign","header","position","top","backgroundColor","black","white","transition","zIndex","content","left","right","bottom","gray","headerColumns","undefined","borderColor","pointerEvents","cursor","color","rowSelected","rowUnselectable","rowCollapsibleButtonCell","textAlign","padding","xs","sm","row","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker"],"mappings":";;;;;;;;;;;IA0FaA,oBAAoB;eAApBA;;IAQb,OAAyB;eAAzB;;;oBAlG2B;AAO3B,IAAMC,YAAYC,IAAAA,oBAAwC,SAACC;QAAQC,iCAAAA,0BAA0BC,4BAAAA;IACzF,IAAMC,qBACFH,MAAMI,gBAAgB,SAChBJ,MAAMK,GAAGC,KAAKN,MAAMO,MAAM,CAACP,MAAMQ,aAAa,CAAC,EAAE,EAAE,OACnDR,MAAMO,MAAM,CAACP,MAAMQ,aAAa,CAAC,EAAE;IAC7C,OAAO;QACHC,OAAO;YACHC,OAAO;YACP,iBAAiB;gBACbC,cAAc;YAClB;YACA,sBAAsB;gBAClBC,aAAaZ,MAAMa,QAAQC;YAC/B;YACA,cAAc;gBACVC,eAAe;YACnB;QACJ;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBnB,MAAMI,gBAAgB,SAASJ,MAAMoB,QAAQpB,MAAMqB;YACpEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTP,UAAU;gBACVQ,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRhB,cAAc,AAAC,aAAiC,OAArBX,MAAMO,OAAOqB,IAAI,CAAC,EAAE;YACnD;QACJ;QAEAC,eAAe;YACX,0BAA0B;gBACtBjB,aAAaZ,MAAMa,QAAQC;YAC/B;YAEA,0BAA0B;gBACtBK,iBAAiBjB,sBAAsB,AAAC,GAAuB,OAArBF,MAAMO,OAAOqB,IAAI,CAAC,EAAE,IAAKE;gBACnEC,aAAa7B,sBAAsB,AAAC,GAAuB,OAArBF,MAAMO,OAAOqB,IAAI,CAAC,EAAE,IAAK,AAAC,GAAuB,OAArB5B,MAAMO,OAAOqB,IAAI,CAAC,EAAE;gBACtFI,eAAe9B,sBAAsB,SAAS;gBAC9C+B,QAAQ/B,sBAAsB,gBAAgB;gBAE9C,WAAW;oBACPgC,OAAOhC,sBAAsB,AAAC,GAAuB,OAArBF,MAAMO,OAAOqB,IAAI,CAAC,EAAE,IAAK;gBAC7D;YACJ;QACJ;QAEAO,aAAa;YACThB,iBAAiBlB,2BAA2B6B,YAAY3B;QAC5D;QAEAiC,iBAAiB;YACb,0BAA0B;gBACtBjB,iBAAiB,AAAC,GAAuB,OAArBnB,MAAMO,OAAOqB,IAAI,CAAC,EAAE;gBACxCG,aAAa,AAAC,GAAuB,OAArB/B,MAAMO,OAAOqB,IAAI,CAAC,EAAE;gBACpCI,eAAe;gBACfC,QAAQ;gBAER,mBAAmB;oBACfC,OAAO,AAAC,GAAuB,OAArBlC,MAAMO,OAAOqB,IAAI,CAAC,EAAE;gBAClC;YACJ;QACJ;QAEAS,0BAA0B;YACtBC,WAAW;YACXC,SAAS,AAAC,QAA8BvC,OAAvBA,MAAMa,QAAQ2B,IAAG,QAAuB,OAAjBxC,MAAMa,QAAQ4B,IAAG;QAC7D;QAEAC,KAAK;YACD,WAAW;gBACPvB,iBAAiBhB;YACrB;QACJ;IACJ;AACJ;AAEO,IAAMN,uBAAuB;IAChC8C,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;AACrB;IAEA,WAAejD"}
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 '& thead tr th': {\n borderBottom: 'none',\n },\n '& td:first-of-type': {\n paddingLeft: theme.spacing.xl,\n },\n '& tbody td': {\n verticalAlign: 'top',\n },\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\nexport const TableComponentsOrder = {\n MultiSelectInfo: 6,\n Actions: 5,\n Predicate: 4,\n Filter: 3,\n DateRangePicker: 2,\n LayoutControl: 1,\n};\n\nexport default useStyles;\n"],"names":["TableComponentsOrder","useStyles","createStyles","theme","table","width","borderBottom","paddingLeft","spacing","xl","verticalAlign","header","position","top","backgroundColor","colorScheme","black","white","transition","zIndex","content","left","right","bottom","colors","gray","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","LayoutControl"],"mappings":";;;;;;;;;;;IAkCaA,oBAAoB;eAApBA;;IASb,OAAyB;eAAzB;;;oBA3C2B;AAE3B,IAAMC,YAAYC,IAAAA,oBAAqB,SAACC;WAAW;QAC/CC,OAAO;YACHC,OAAO;YACP,iBAAiB;gBACbC,cAAc;YAClB;YACA,sBAAsB;gBAClBC,aAAaJ,MAAMK,QAAQC;YAC/B;YACA,cAAc;gBACVC,eAAe;YACnB;QACJ;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBX,MAAMY,gBAAgB,SAASZ,MAAMa,QAAQb,MAAMc;YACpEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTR,UAAU;gBACVS,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRjB,cAAc,AAAC,aAAiC,OAArBH,MAAMqB,OAAOC,IAAI,CAAC,EAAE;YACnD;QACJ;IACJ;;AAEO,IAAMzB,uBAAuB;IAChC0B,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;IACjBC,eAAe;AACnB;IAEA,WAAe9B"}
@@ -1,6 +1,7 @@
1
1
  import { UseFormReturnType } from '@mantine/form';
2
- import { ColumnDef, CoreOptions, TableOptions, InitialTableState as TanstackInitialTableState, TableState as TanstackTableState } from '@tanstack/table-core';
2
+ import { ColumnDef, CoreOptions, Table, TableOptions, InitialTableState as TanstackInitialTableState, TableState as TanstackTableState } from '@tanstack/table-core';
3
3
  import { Dispatch, ReactElement, ReactNode, RefObject } from 'react';
4
+ import { Icon } from '@coveord/plasma-react-icons';
4
5
  import { DateRangePickerValue } from '../date-range-picker/DateRangePickerInlineCalendar';
5
6
  import { TableActions } from './TableActions';
6
7
  import { TableAccordionColumn, TableCollapsibleColumn } from './TableCollapsibleColumn';
@@ -9,9 +10,11 @@ import { TableDateRangePicker } from './TableDateRangePicker';
9
10
  import { TableFilter } from './TableFilter';
10
11
  import { TableFooter } from './TableFooter';
11
12
  import { TableHeader } from './TableHeader';
13
+ import { TableLoading } from './TableLoading';
12
14
  import { TablePagination } from './TablePagination';
13
15
  import { TablePerPage } from './TablePerPage';
14
16
  import { TablePredicate } from './TablePredicate';
17
+ import { TableLayouts } from './layouts/TableLayouts';
15
18
  export type RowSelectionWithData<TData> = Record<string, TData>;
16
19
  export interface RowSelectionState<TData> {
17
20
  rowSelection: RowSelectionWithData<TData>;
@@ -21,6 +24,43 @@ export interface TableState<TData> extends Omit<TanstackTableState, 'rowSelectio
21
24
  export interface InitialTableState<TData> extends Omit<TanstackInitialTableState, 'rowSelection'>, Partial<RowSelectionState<TData>>, Partial<TableFormType> {
22
25
  }
23
26
  export type onTableChangeEvent<TData> = (params: TableState<TData> & TableFormType) => void;
27
+ export interface TableLayout {
28
+ /**
29
+ * Name of the layout.
30
+ * Will be displayed in the layout control
31
+ */
32
+ name: string;
33
+ /**
34
+ * Icon illustrating the layout.
35
+ * Will be displayed in the layout control
36
+ */
37
+ icon?: Icon;
38
+ /**
39
+ * Header portion of the table.
40
+ * In the standard row layout that is where column headers would be displayed.
41
+ */
42
+ Header: <T>(props: TableLayoutProps<T>) => ReactElement;
43
+ /**
44
+ * Body portion of the table.
45
+ * In the standard row layout that is where the rows would be displayed.
46
+ */
47
+ Body: <T>(props: TableLayoutProps<T>) => ReactElement;
48
+ }
49
+ export interface TableLayoutProps<T = unknown> {
50
+ table: Table<T>;
51
+ loading?: boolean;
52
+ /**
53
+ * Action passed when user double clicks on a row
54
+ */
55
+ doubleClickAction?: (datum: T) => void;
56
+ /**
57
+ * Function that generates the expandable content of a row
58
+ * Return null for rows that don't need to be expandable
59
+ *
60
+ * @param datum the row for which the children should be generated.
61
+ */
62
+ getExpandChildren?: (datum: T) => ReactNode;
63
+ }
24
64
  export type TableFormType = {
25
65
  /**
26
66
  * Object containing the table predicates and their selected values
@@ -34,6 +74,10 @@ export type TableFormType = {
34
74
  * @example [new Date(2022, 0, 1), new Date(2022, 0, 31)]
35
75
  */
36
76
  dateRange: DateRangePickerValue;
77
+ /**
78
+ * Selected layout name
79
+ */
80
+ layout: TableLayout['name'];
37
81
  };
38
82
  export type TableContextType<TData> = {
39
83
  /**
@@ -91,6 +135,10 @@ export type TableContextType<TData> = {
91
135
  * Function that returns the number of pages
92
136
  */
93
137
  getPageCount: () => number;
138
+ /**
139
+ * Available layouts. When more than one layout is provided, it will display a layout control to switch between them.
140
+ */
141
+ layouts: TableLayout[];
94
142
  };
95
143
  export interface TableProps<T> {
96
144
  /**
@@ -107,6 +155,12 @@ export interface TableProps<T> {
107
155
  * @see https://tanstack.com/table/v8/docs/guide/column-defs
108
156
  */
109
157
  columns: Array<ColumnDef<T>>;
158
+ /**
159
+ * Available layouts
160
+ *
161
+ * @default [Table.Layouts.Rows]
162
+ */
163
+ layouts?: TableLayout[];
110
164
  /**
111
165
  * Function called when the table mounts
112
166
  *
@@ -191,5 +245,7 @@ export interface TableType {
191
245
  CollapsibleColumn: typeof TableCollapsibleColumn;
192
246
  AccordionColumn: typeof TableAccordionColumn;
193
247
  Consumer: typeof TableConsumer;
248
+ Loading: typeof TableLoading;
249
+ Layouts: typeof TableLayouts;
194
250
  }
195
251
  //# sourceMappingURL=Table.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/Table.types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,15 @@
1
+ import { DefaultProps, Selectors } from '@mantine/core';
1
2
  import { ReactElement, ReactNode } from 'react';
2
- interface TableActionsProps<T> {
3
+ declare const useStyles: (params: void, options?: import("@mantine/core").UseStylesOptions<string>) => {
4
+ classes: {
5
+ root: string;
6
+ wrapper: string;
7
+ };
8
+ cx: (...args: any) => string;
9
+ theme: import("@mantine/core").MantineTheme;
10
+ };
11
+ type TableActionsStylesNames = Selectors<typeof useStyles>;
12
+ interface TableActionsProps<T> extends DefaultProps<TableActionsStylesNames> {
3
13
  /**
4
14
  * Function that return components for the selected row or selected rows when multi row selection is enabled
5
15
  *
@@ -21,6 +31,6 @@ interface TableActionsProps<T> {
21
31
  */
22
32
  children: ((datum: T) => ReactNode) | ((data: T[]) => ReactNode);
23
33
  }
24
- export declare const TableActions: <T>({ children }: TableActionsProps<T>) => ReactElement;
34
+ export declare const TableActions: <T>({ children, classNames, styles, unstyled, ...others }: TableActionsProps<T>) => ReactElement;
25
35
  export {};
26
36
  //# sourceMappingURL=TableActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableActions.d.ts","sourceRoot":"","sources":["../../../../src/components/table/TableActions.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAK9C,UAAU,iBAAiB,CAAC,CAAC;IACzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,YAAY,6CAA2C,YAiBnE,CAAC"}
1
+ {"version":3,"file":"TableActions.d.ts","sourceRoot":"","sources":["../../../../src/components/table/TableActions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,YAAY,EAAe,SAAS,EAAC,MAAM,eAAe,CAAC;AACjF,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAK9C,QAAA,MAAM,SAAS;;;;;;;CAKZ,CAAC;AAEJ,KAAK,uBAAuB,GAAG,SAAS,CAAC,OAAO,SAAS,CAAC,CAAC;AAE3D,UAAU,iBAAiB,CAAC,CAAC,CAAE,SAAQ,YAAY,CAAC,uBAAuB,CAAC;IACxE;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,YAAY,sFAMC,YAkBzB,CAAC"}
@@ -8,29 +8,51 @@ Object.defineProperty(exports, "TableActions", {
8
8
  return TableActions;
9
9
  }
10
10
  });
11
+ var _object_spread = require("@swc/helpers/_/_object_spread");
12
+ var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
13
+ var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
11
14
  var _jsxruntime = require("react/jsx-runtime");
12
15
  var _core = require("@mantine/core");
13
16
  var _Tablestyles = require("./Table.styles");
14
17
  var _TableContext = require("./TableContext");
15
- var TableActions = function(param) {
16
- var children = param.children;
18
+ var useStyles = (0, _core.createStyles)(function(theme) {
19
+ return {
20
+ root: {},
21
+ wrapper: {
22
+ display: "inline-flex"
23
+ }
24
+ };
25
+ });
26
+ var TableActions = function(_param) {
27
+ var children = _param.children, classNames = _param.classNames, styles = _param.styles, unstyled = _param.unstyled, others = _object_without_properties._(_param, [
28
+ "children",
29
+ "classNames",
30
+ "styles",
31
+ "unstyled"
32
+ ]);
33
+ var classes = useStyles(null, {
34
+ name: "TableActions",
35
+ classNames: classNames,
36
+ styles: styles,
37
+ unstyled: unstyled
38
+ }).classes;
17
39
  var _useTable = (0, _TableContext.useTable)(), getSelectedRows = _useTable.getSelectedRows, multiRowSelectionEnabled = _useTable.multiRowSelectionEnabled;
18
40
  var selectedRows = getSelectedRows();
19
41
  if (selectedRows.length <= 0) {
20
42
  return null;
21
43
  }
22
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Grid.Col, {
44
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Grid.Col, _object_spread_props._(_object_spread._({
23
45
  span: "content",
24
46
  order: _Tablestyles.TableComponentsOrder.Actions,
25
47
  py: "sm",
48
+ className: classes.root
49
+ }, others), {
26
50
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Group, {
27
51
  spacing: "xs",
28
- style: {
29
- display: "inline-flex"
30
- },
52
+ className: classes.wrapper,
31
53
  children: multiRowSelectionEnabled ? children(selectedRows) : children(selectedRows[0])
32
54
  })
33
- });
55
+ }));
34
56
  };
35
57
 
36
58
  //# sourceMappingURL=TableActions.js.map