@coveord/plasma-mantine 52.1.0 → 52.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +28 -28
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/__tests__/Utils.js +9 -9
- package/dist/cjs/__tests__/Utils.js.map +1 -1
- package/dist/cjs/__tests__/VitestSetup.js +2 -2
- package/dist/cjs/__tests__/VitestSetup.js.map +1 -1
- package/dist/cjs/components/blank-slate/BlankSlate.js +3 -3
- package/dist/cjs/components/blank-slate/index.js +2 -2
- package/dist/cjs/components/blank-slate/index.js.map +1 -1
- package/dist/cjs/components/button/Button.js +15 -15
- package/dist/cjs/components/button/Button.js.map +1 -1
- package/dist/cjs/components/button/ButtonWithDisabledTooltip.js +8 -8
- package/dist/cjs/components/button/index.js +2 -2
- package/dist/cjs/components/button/index.js.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +30 -30
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/code-editor/index.js +2 -2
- package/dist/cjs/components/code-editor/index.js.map +1 -1
- package/dist/cjs/components/code-editor/languages/xml.js +4 -4
- package/dist/cjs/components/code-editor/languages/xml.js.map +1 -1
- package/dist/cjs/components/collection/Collection.js +25 -25
- package/dist/cjs/components/collection/Collection.js.map +1 -1
- package/dist/cjs/components/collection/CollectionItem.js +29 -29
- package/dist/cjs/components/collection/CollectionItem.js.map +1 -1
- package/dist/cjs/components/collection/index.js +2 -2
- package/dist/cjs/components/collection/index.js.map +1 -1
- package/dist/cjs/components/copyToClipboard/CopyToClipboard.js +13 -13
- package/dist/cjs/components/copyToClipboard/CopyToClipboard.js.map +1 -1
- package/dist/cjs/components/copyToClipboard/index.js +2 -2
- package/dist/cjs/components/copyToClipboard/index.js.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.js +16 -16
- package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.js.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.js +16 -16
- package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.js.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.js +10 -10
- package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.js.map +1 -1
- package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js +9 -9
- package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/index.js +4 -4
- package/dist/cjs/components/date-range-picker/index.js.map +1 -1
- package/dist/cjs/components/header/Header.js +23 -23
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +4 -8
- package/dist/cjs/components/header/index.js +2 -2
- package/dist/cjs/components/header/index.js.map +1 -1
- package/dist/cjs/components/index.js +14 -14
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirm.js +12 -12
- package/dist/cjs/components/inline-confirm/InlineConfirm.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmButton.js +5 -5
- package/dist/cjs/components/inline-confirm/InlineConfirmMenuItem.js +5 -5
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js +4 -4
- package/dist/cjs/components/inline-confirm/index.js +4 -4
- package/dist/cjs/components/inline-confirm/index.js.map +1 -1
- package/dist/cjs/components/inline-confirm/useInlineConfirm.js +2 -2
- package/dist/cjs/components/menu/Menu.js +7 -7
- package/dist/cjs/components/menu/index.js +2 -2
- package/dist/cjs/components/menu/index.js.map +1 -1
- package/dist/cjs/components/modal-wizard/ModalWizard.js +22 -22
- package/dist/cjs/components/modal-wizard/ModalWizard.js.map +1 -1
- package/dist/cjs/components/modal-wizard/ModalWizardStep.js +2 -2
- package/dist/cjs/components/modal-wizard/index.js +2 -2
- package/dist/cjs/components/modal-wizard/index.js.map +1 -1
- package/dist/cjs/components/prompt/Prompt.js +18 -18
- package/dist/cjs/components/prompt/PromptFooter.js +7 -7
- package/dist/cjs/components/prompt/PromptFooter.js.map +1 -1
- package/dist/cjs/components/prompt/index.js +2 -2
- package/dist/cjs/components/prompt/index.js.map +1 -1
- package/dist/cjs/components/sticky-footer/StickyFooter.js +8 -8
- package/dist/cjs/components/sticky-footer/index.js +2 -2
- package/dist/cjs/components/sticky-footer/index.js.map +1 -1
- package/dist/cjs/components/table/Table.js +96 -86
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/Table.styles.js +30 -7
- package/dist/cjs/components/table/Table.styles.js.map +1 -1
- package/dist/cjs/components/table/TableActions.js +15 -6
- package/dist/cjs/components/table/TableActions.js.map +1 -1
- package/dist/cjs/components/table/TableCollapsibleColumn.js +10 -10
- package/dist/cjs/components/table/TableCollapsibleColumn.js.map +1 -1
- package/dist/cjs/components/table/TableConsumer.js +2 -2
- package/dist/cjs/components/table/TableDateRangePicker.js +51 -41
- package/dist/cjs/components/table/TableDateRangePicker.js.map +1 -1
- package/dist/cjs/components/table/TableFilter.js +31 -25
- package/dist/cjs/components/table/TableFilter.js.map +1 -1
- package/dist/cjs/components/table/TableFooter.js +6 -6
- package/dist/cjs/components/table/TableHeader.js +45 -45
- package/dist/cjs/components/table/TableHeader.js.map +1 -1
- package/dist/cjs/components/table/TablePagination.js +8 -8
- package/dist/cjs/components/table/TablePagination.js.map +1 -1
- package/dist/cjs/components/table/TablePerPage.js +9 -9
- package/dist/cjs/components/table/TablePerPage.js.map +1 -1
- package/dist/cjs/components/table/TablePredicate.js +31 -25
- package/dist/cjs/components/table/TablePredicate.js.map +1 -1
- package/dist/cjs/components/table/TableSelectableColumn.js +4 -4
- package/dist/cjs/components/table/Th.js +17 -17
- package/dist/cjs/components/table/index.js +4 -4
- package/dist/cjs/components/table/index.js.map +1 -1
- package/dist/cjs/components/table/useRowSelection.js +9 -9
- package/dist/cjs/components/table/useRowSelection.js.map +1 -1
- package/dist/cjs/form/FormProvider.js +4 -4
- package/dist/cjs/form/FormProvider.js.map +1 -1
- package/dist/cjs/form/index.js +3 -3
- package/dist/cjs/form/index.js.map +1 -1
- package/dist/cjs/form/useForm.js +4 -4
- package/dist/cjs/form/useForm.js.map +1 -1
- package/dist/cjs/hooks/index.js +3 -3
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useControlledList.js +5 -5
- package/dist/cjs/hooks/useControlledList.js.map +1 -1
- package/dist/cjs/hooks/useParentHeight.js +2 -2
- package/dist/cjs/hooks/useParentHeight.js.map +1 -1
- package/dist/cjs/index.js +9 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/theme/PlasmaColors.js +30 -30
- package/dist/cjs/theme/Plasmantine.js +4 -4
- package/dist/cjs/theme/Theme.js +13 -13
- package/dist/cjs/theme/Theme.js.map +1 -1
- package/dist/cjs/theme/index.js +2 -2
- package/dist/cjs/theme/index.js.map +1 -1
- package/dist/cjs/utils/index.js +3 -3
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/overrideComponent.js +2 -2
- package/dist/cjs/utils/overrideComponent.js.map +1 -1
- package/dist/definitions/components/header/Header.d.ts.map +1 -1
- package/dist/definitions/components/table/Table.d.ts.map +1 -1
- package/dist/definitions/components/table/Table.styles.d.ts +7 -1
- package/dist/definitions/components/table/Table.styles.d.ts.map +1 -1
- package/dist/definitions/components/table/TableActions.d.ts.map +1 -1
- package/dist/definitions/components/table/TableDateRangePicker.d.ts.map +1 -1
- package/dist/definitions/components/table/TableFilter.d.ts.map +1 -1
- package/dist/definitions/components/table/TableHeader.d.ts +1 -0
- package/dist/definitions/components/table/TableHeader.d.ts.map +1 -1
- package/dist/definitions/components/table/TablePredicate.d.ts.map +1 -1
- package/dist/esm/__tests__/Utils.js +1 -1
- package/dist/esm/components/button/Button.js +6 -6
- package/dist/esm/components/button/ButtonWithDisabledTooltip.js +3 -3
- package/dist/esm/components/code-editor/CodeEditor.js +6 -6
- package/dist/esm/components/code-editor/languages/xml.js +2 -2
- package/dist/esm/components/collection/Collection.js +3 -3
- package/dist/esm/components/collection/CollectionItem.js +4 -4
- package/dist/esm/components/copyToClipboard/CopyToClipboard.js +2 -2
- package/dist/esm/components/date-range-picker/DateRangePickerInlineCalendar.js +2 -2
- package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.js +2 -2
- package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.js +3 -3
- package/dist/esm/components/date-range-picker/EditableDateRangePicker.js +1 -1
- package/dist/esm/components/header/Header.js +11 -11
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +4 -8
- package/dist/esm/components/inline-confirm/InlineConfirm.js +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmButton.js +2 -2
- package/dist/esm/components/inline-confirm/InlineConfirmMenuItem.js +2 -2
- package/dist/esm/components/menu/Menu.js +2 -2
- package/dist/esm/components/modal-wizard/ModalWizard.js +4 -4
- package/dist/esm/components/prompt/Prompt.js +3 -3
- package/dist/esm/components/prompt/PromptFooter.js +3 -3
- package/dist/esm/components/sticky-footer/StickyFooter.js +3 -3
- package/dist/esm/components/table/Table.js +27 -17
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.styles.js +19 -4
- package/dist/esm/components/table/Table.styles.js.map +1 -1
- package/dist/esm/components/table/TableActions.js +13 -4
- package/dist/esm/components/table/TableActions.js.map +1 -1
- package/dist/esm/components/table/TableCollapsibleColumn.js +2 -2
- package/dist/esm/components/table/TableDateRangePicker.js +45 -35
- package/dist/esm/components/table/TableDateRangePicker.js.map +1 -1
- package/dist/esm/components/table/TableFilter.js +26 -20
- package/dist/esm/components/table/TableFilter.js.map +1 -1
- package/dist/esm/components/table/TableFooter.js +3 -3
- package/dist/esm/components/table/TableHeader.js +41 -41
- package/dist/esm/components/table/TableHeader.js.map +1 -1
- package/dist/esm/components/table/TablePagination.js +2 -2
- package/dist/esm/components/table/TablePerPage.js +2 -2
- package/dist/esm/components/table/TablePredicate.js +28 -22
- package/dist/esm/components/table/TablePredicate.js.map +1 -1
- package/dist/esm/components/table/useRowSelection.js +2 -2
- package/dist/esm/form/useForm.js +2 -2
- package/dist/esm/hooks/useControlledList.js +2 -2
- package/dist/esm/hooks/useParentHeight.js +1 -1
- package/dist/esm/theme/Theme.js +2 -2
- package/dist/esm/utils/overrideComponent.js +1 -1
- package/package.json +8 -8
- package/src/components/header/Header.tsx +5 -7
- package/src/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +4 -8
- package/src/components/table/Table.styles.ts +21 -5
- package/src/components/table/Table.tsx +10 -4
- package/src/components/table/TableActions.tsx +9 -6
- package/src/components/table/TableDateRangePicker.tsx +23 -20
- package/src/components/table/TableFilter.tsx +21 -18
- package/src/components/table/TableHeader.tsx +35 -23
- package/src/components/table/TablePredicate.tsx +15 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import _object_spread from "@swc/helpers/
|
|
2
|
-
import _object_spread_props from "@swc/helpers/
|
|
3
|
-
import _object_without_properties from "@swc/helpers/
|
|
4
|
-
import _sliced_to_array from "@swc/helpers/
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
|
+
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
5
5
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { Box, CloseButton, createStyles, Modal, Progress } from "@mantine/core";
|
|
7
7
|
import { Children, useEffect, useMemo, useState } from "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import _object_spread from "@swc/helpers/
|
|
2
|
-
import _object_spread_props from "@swc/helpers/
|
|
3
|
-
import _object_without_properties from "@swc/helpers/
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { color } from "@coveord/plasma-tokens";
|
|
6
6
|
import { createStyles, Modal } from "@mantine/core";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import _object_spread from "@swc/helpers/
|
|
2
|
-
import _object_spread_props from "@swc/helpers/
|
|
3
|
-
import _object_without_properties from "@swc/helpers/
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import { StickyFooter } from "../sticky-footer";
|
|
6
6
|
export var PromptFooter = function(_param) /*#__PURE__*/ {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import _object_spread from "@swc/helpers/
|
|
2
|
-
import _object_spread_props from "@swc/helpers/
|
|
3
|
-
import _object_without_properties from "@swc/helpers/
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { Box, createStyles, Divider, Group } from "@mantine/core";
|
|
6
6
|
var useStyles = createStyles(function() {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import _define_property from "@swc/helpers/
|
|
2
|
-
import _object_spread from "@swc/helpers/
|
|
3
|
-
import _object_spread_props from "@swc/helpers/
|
|
4
|
-
import _object_without_properties from "@swc/helpers/
|
|
5
|
-
import _sliced_to_array from "@swc/helpers/
|
|
1
|
+
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
4
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
5
|
+
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
7
|
import { Box, Center, Collapse, Loader, Skeleton, Table as MantineTable } from "@mantine/core";
|
|
8
8
|
import { useForm } from "@mantine/form";
|
|
@@ -14,6 +14,7 @@ import { Children, Fragment, useCallback, useEffect, useState } from "react";
|
|
|
14
14
|
import useStyles from "./Table.styles";
|
|
15
15
|
import { TableActions } from "./TableActions";
|
|
16
16
|
import { TableAccordionColumn, TableCollapsibleColumn } from "./TableCollapsibleColumn";
|
|
17
|
+
import { TableConsumer } from "./TableConsumer";
|
|
17
18
|
import { TableContext } from "./TableContext";
|
|
18
19
|
import { TableDateRangePicker } from "./TableDateRangePicker";
|
|
19
20
|
import { TableFilter } from "./TableFilter";
|
|
@@ -22,7 +23,6 @@ import { TableHeader } from "./TableHeader";
|
|
|
22
23
|
import { TablePagination } from "./TablePagination";
|
|
23
24
|
import { TablePerPage } from "./TablePerPage";
|
|
24
25
|
import { TablePredicate } from "./TablePredicate";
|
|
25
|
-
import { TableConsumer } from "./TableConsumer";
|
|
26
26
|
import { TableSelectableColumn } from "./TableSelectableColumn";
|
|
27
27
|
import { Th } from "./Th";
|
|
28
28
|
import { useRowSelection } from "./useRowSelection";
|
|
@@ -66,7 +66,6 @@ export var Table = function(param) {
|
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
var _useStyles = useStyles({
|
|
69
|
-
hasHeader: !!header,
|
|
70
69
|
multiRowSelectionEnabled: multiRowSelectionEnabled
|
|
71
70
|
}), cx = _useStyles.cx, classes = _useStyles.classes;
|
|
72
71
|
var _ref;
|
|
@@ -213,24 +212,35 @@ export var Table = function(param) {
|
|
|
213
212
|
consumer,
|
|
214
213
|
!rows.length && !isFiltered && !loading ? noDataChildren : /*#__PURE__*/ _jsxs(_Fragment, {
|
|
215
214
|
children: [
|
|
216
|
-
header,
|
|
217
215
|
/*#__PURE__*/ _jsxs(MantineTable, {
|
|
218
216
|
className: classes.table,
|
|
219
217
|
horizontalSpacing: "sm",
|
|
220
218
|
verticalSpacing: "xs",
|
|
221
219
|
pb: "sm",
|
|
222
220
|
children: [
|
|
223
|
-
/*#__PURE__*/
|
|
221
|
+
/*#__PURE__*/ _jsxs("thead", {
|
|
224
222
|
className: classes.header,
|
|
225
|
-
children:
|
|
226
|
-
|
|
227
|
-
children:
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
},
|
|
223
|
+
children: [
|
|
224
|
+
!!header ? /*#__PURE__*/ _jsx("tr", {
|
|
225
|
+
children: /*#__PURE__*/ _jsx("th", {
|
|
226
|
+
style: {
|
|
227
|
+
padding: 0
|
|
228
|
+
},
|
|
229
|
+
colSpan: table.getAllColumns().length,
|
|
230
|
+
children: header
|
|
231
231
|
})
|
|
232
|
-
},
|
|
233
|
-
|
|
232
|
+
}) : null,
|
|
233
|
+
table.getHeaderGroups().map(function(headerGroup) {
|
|
234
|
+
return /*#__PURE__*/ _jsx("tr", {
|
|
235
|
+
className: classes.headerColumns,
|
|
236
|
+
children: headerGroup.headers.map(function(columnHeader) {
|
|
237
|
+
return /*#__PURE__*/ _jsx(Th, {
|
|
238
|
+
header: columnHeader
|
|
239
|
+
}, columnHeader.id);
|
|
240
|
+
})
|
|
241
|
+
}, headerGroup.id);
|
|
242
|
+
})
|
|
243
|
+
]
|
|
234
244
|
}),
|
|
235
245
|
/*#__PURE__*/ _jsx("tbody", {
|
|
236
246
|
children: rows.length ? rows : /*#__PURE__*/ _jsx("tr", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Collapse, Loader, Skeleton, SkeletonProps, Table as MantineTable} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n flexRender,\n getCoreRowModel,\n Row,\n TableState as TanstackTableState,\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 {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 {TableConsumer} from './TableConsumer';\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 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({hasHeader: !!header, multiRowSelectionEnabled});\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 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={() => row.toggleSelected()}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {[classes.rowSelected]: isSelected})}\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 }}\n >\n {consumer}\n {!rows.length && !isFiltered && !loading ? (\n noDataChildren\n ) : (\n <>\n {header}\n <MantineTable className={classes.table} horizontalSpacing=\"sm\" verticalSpacing=\"xs\" pb=\"sm\">\n <thead className={classes.header}>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ))}\n </thead>\n <tbody>\n {rows.length ? (\n rows\n ) : (\n <tr>\n <td colSpan={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":["Box","Center","Collapse","Loader","Skeleton","Table","MantineTable","useForm","useDidUpdate","defaultColumnSizing","flexRender","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","Fragment","useCallback","useEffect","useState","useStyles","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TablePagination","TablePerPage","TablePredicate","TableConsumer","TableSelectableColumn","Th","useRowSelection","LoadingSkeleton","props","style","display","sx","visible","borderRadius","undefined","children","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","onMount","onChange","loading","doubleClickAction","multiRowSelectionEnabled","onRowSelectionChange","options","form","convertedChildren","toArray","header","find","child","type","footer","consumer","predicates","dateRange","initialStateWithoutForm","initialValues","hasHeader","cx","classes","table","pagination","pageSize","DEFAULT_SIZE","concat","manualPagination","getPaginationRowModel","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","globalFilter","Object","keys","values","some","predicate","triggerChange","cancel","sorting","clearFilters","setFieldValue","prevState","flexGrow","rows","getRowModel","map","rowChildren","isSelected","getIsSelected","tr","onClick","toggleSelected","onDoubleClick","className","rowSelected","aria-selected","getVisibleCells","cell","size","column","getSize","width","td","rowCollapsibleButtonCell","id","columnDef","getContext","colSpan","getAllColumns","length","padding","borderTop","getIsExpanded","borderBottom","in","px","py","ref","Provider","value","containerRef","getPageCount","horizontalSpacing","verticalSpacing","pb","thead","getHeaderGroups","headerGroup","headers","columnHeader","tbody","Actions","Filter","Footer","Header","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["import {Box, Center, Collapse, Loader, Skeleton, SkeletonProps, Table as MantineTable} from '@mantine/core';\nimport {useForm} from '@mantine/form';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n flexRender,\n getCoreRowModel,\n Row,\n TableState as TanstackTableState,\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 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});\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 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={() => row.toggleSelected()}\n onDoubleClick={() => doubleClickAction?.(row.original)}\n className={cx(classes.row, {[classes.rowSelected]: isSelected})}\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 }}\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 style={{padding: 0}} colSpan={table.getAllColumns().length}>\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":["Box","Center","Collapse","Loader","Skeleton","Table","MantineTable","useForm","useDidUpdate","defaultColumnSizing","flexRender","getCoreRowModel","useReactTable","debounce","defaultsDeep","Children","Fragment","useCallback","useEffect","useState","useStyles","TableActions","TableAccordionColumn","TableCollapsibleColumn","TableConsumer","TableContext","TableDateRangePicker","TableFilter","TableFooter","TableHeader","TablePagination","TablePerPage","TablePredicate","TableSelectableColumn","Th","useRowSelection","LoadingSkeleton","props","style","display","sx","visible","borderRadius","undefined","children","data","getRowId","noDataChildren","getExpandChildren","initialState","columns","onMount","onChange","loading","doubleClickAction","multiRowSelectionEnabled","onRowSelectionChange","options","form","convertedChildren","toArray","header","find","child","type","footer","consumer","predicates","dateRange","initialStateWithoutForm","initialValues","cx","classes","table","pagination","pageSize","DEFAULT_SIZE","concat","manualPagination","getPaginationRowModel","enableMultiRowSelection","getRowCanExpand","row","original","enableRowSelection","state","setState","setOptions","prev","onStateChange","clearSelection","getSelectedRow","getSelectedRows","outsideClickRef","isFiltered","globalFilter","Object","keys","values","some","predicate","triggerChange","cancel","sorting","clearFilters","setFieldValue","prevState","flexGrow","rows","getRowModel","map","rowChildren","isSelected","getIsSelected","tr","onClick","toggleSelected","onDoubleClick","className","rowSelected","aria-selected","getVisibleCells","cell","size","column","getSize","width","td","rowCollapsibleButtonCell","id","columnDef","getContext","colSpan","getAllColumns","length","padding","borderTop","getIsExpanded","borderBottom","in","px","py","ref","Provider","value","containerRef","getPageCount","horizontalSpacing","verticalSpacing","pb","thead","th","getHeaderGroups","headerGroup","headerColumns","headers","columnHeader","tbody","Actions","Filter","Footer","Header","Pagination","Predicate","PerPage","CollapsibleColumn","AccordionColumn","DateRangePicker","Consumer"],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { createStyles } from "@mantine/core";
|
|
2
2
|
var useStyles = createStyles(function(theme, param) {
|
|
3
|
-
var
|
|
3
|
+
var multiRowSelectionEnabled = param.multiRowSelectionEnabled;
|
|
4
4
|
var rowBackgroundColor = theme.colorScheme === "dark" ? theme.fn.rgba(theme.colors[theme.primaryColor][7], 0.2) : theme.colors[theme.primaryColor][0];
|
|
5
5
|
return {
|
|
6
6
|
table: {
|
|
7
7
|
width: "100%",
|
|
8
|
-
"&
|
|
8
|
+
"& thead tr th": {
|
|
9
|
+
borderBottom: "none"
|
|
10
|
+
},
|
|
11
|
+
"& td:first-of-type": {
|
|
9
12
|
paddingLeft: theme.spacing.xl
|
|
10
13
|
},
|
|
11
14
|
"& tbody td": {
|
|
@@ -14,7 +17,7 @@ var useStyles = createStyles(function(theme, param) {
|
|
|
14
17
|
},
|
|
15
18
|
header: {
|
|
16
19
|
position: "sticky",
|
|
17
|
-
top:
|
|
20
|
+
top: 0,
|
|
18
21
|
backgroundColor: theme.colorScheme === "dark" ? theme.black : theme.white,
|
|
19
22
|
transition: "box-shadow 150ms ease",
|
|
20
23
|
zIndex: 1,
|
|
@@ -24,7 +27,12 @@ var useStyles = createStyles(function(theme, param) {
|
|
|
24
27
|
left: 0,
|
|
25
28
|
right: 0,
|
|
26
29
|
bottom: 0,
|
|
27
|
-
borderBottom: "1px solid ".concat(theme.colors.gray[
|
|
30
|
+
borderBottom: "1px solid ".concat(theme.colors.gray[3])
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
headerColumns: {
|
|
34
|
+
"& th:first-of-type > *": {
|
|
35
|
+
paddingLeft: theme.spacing.xl
|
|
28
36
|
}
|
|
29
37
|
},
|
|
30
38
|
rowSelected: {
|
|
@@ -41,6 +49,13 @@ var useStyles = createStyles(function(theme, param) {
|
|
|
41
49
|
}
|
|
42
50
|
};
|
|
43
51
|
});
|
|
52
|
+
export var TableComponentsOrder = {
|
|
53
|
+
MultiSelectInfo: 5,
|
|
54
|
+
Actions: 4,
|
|
55
|
+
Predicate: 3,
|
|
56
|
+
Filter: 2,
|
|
57
|
+
DateRangePicker: 1
|
|
58
|
+
};
|
|
44
59
|
export default useStyles;
|
|
45
60
|
|
|
46
61
|
//# sourceMappingURL=Table.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\ninterface TableStylesParams {\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/Table.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\ninterface TableStylesParams {\n multiRowSelectionEnabled: boolean;\n}\n\nconst useStyles = createStyles<string, TableStylesParams>((theme, {multiRowSelectionEnabled}) => {\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\n rowSelected: {\n backgroundColor: multiRowSelectionEnabled ? undefined : rowBackgroundColor,\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":["createStyles","useStyles","theme","multiRowSelectionEnabled","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","rowSelected","undefined","rowCollapsibleButtonCell","textAlign","padding","xs","sm","row","TableComponentsOrder","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker"],"mappings":"AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAM3C,IAAMC,YAAYD,aAAwC,SAACE,cAAsC;QAA9BC,iCAAAA;IAC/D,IAAMC,qBACFF,MAAMG,WAAW,KAAK,SAChBH,MAAMI,EAAE,CAACC,IAAI,CAACL,MAAMM,MAAM,CAACN,MAAMO,YAAY,CAAC,CAAC,EAAE,EAAE,OACnDP,MAAMM,MAAM,CAACN,MAAMO,YAAY,CAAC,CAAC,EAAE;IAC7C,OAAO;QACHC,OAAO;YACHC,OAAO;YACP,iBAAiB;gBACbC,cAAc;YAClB;YACA,sBAAsB;gBAClBC,aAAaX,MAAMY,OAAO,CAACC,EAAE;YACjC;YACA,cAAc;gBACVC,eAAe;YACnB;QACJ;QAEAC,QAAQ;YACJC,UAAU;YACVC,KAAK;YACLC,iBAAiBlB,MAAMG,WAAW,KAAK,SAASH,MAAMmB,KAAK,GAAGnB,MAAMoB,KAAK;YACzEC,YAAY;YACZC,QAAQ;YAER,YAAY;gBACRC,SAAS;gBACTP,UAAU;gBACVQ,MAAM;gBACNC,OAAO;gBACPC,QAAQ;gBACRhB,cAAc,AAAC,aAAiC,OAArBV,MAAMM,MAAM,CAACqB,IAAI,CAAC,EAAE;YACnD;QACJ;QAEAC,eAAe;YACX,0BAA0B;gBACtBjB,aAAaX,MAAMY,OAAO,CAACC,EAAE;YACjC;QACJ;QAEAgB,aAAa;YACTX,iBAAiBjB,2BAA2B6B,YAAY5B,kBAAkB;QAC9E;QAEA6B,0BAA0B;YACtBC,WAAW;YACXC,SAAS,AAAC,QAA8BjC,OAAvBA,MAAMY,OAAO,CAACsB,EAAE,EAAC,QAAuB,OAAjBlC,MAAMY,OAAO,CAACuB,EAAE,EAAC;QAC7D;QAEAC,KAAK;YACD,WAAW;gBACPlB,iBAAiBhB;YACrB;QACJ;IACJ;AACJ;AAEA,OAAO,IAAMmC,uBAAuB;IAChCC,iBAAiB;IACjBC,SAAS;IACTC,WAAW;IACXC,QAAQ;IACRC,iBAAiB;AACrB,EAAE;AAEF,eAAe3C,UAAU"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Group } from "@mantine/core";
|
|
2
|
+
import { Grid, Group } from "@mantine/core";
|
|
3
|
+
import { TableComponentsOrder } from "./Table.styles";
|
|
3
4
|
import { useTable } from "./TableContext";
|
|
4
5
|
export var TableActions = function(param) {
|
|
5
6
|
var children = param.children;
|
|
@@ -8,9 +9,17 @@ export var TableActions = function(param) {
|
|
|
8
9
|
if (selectedRows.length <= 0) {
|
|
9
10
|
return null;
|
|
10
11
|
}
|
|
11
|
-
return /*#__PURE__*/ _jsx(
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
return /*#__PURE__*/ _jsx(Grid.Col, {
|
|
13
|
+
span: "content",
|
|
14
|
+
order: TableComponentsOrder.Actions,
|
|
15
|
+
py: "sm",
|
|
16
|
+
children: /*#__PURE__*/ _jsx(Group, {
|
|
17
|
+
spacing: "xs",
|
|
18
|
+
style: {
|
|
19
|
+
display: "inline-flex"
|
|
20
|
+
},
|
|
21
|
+
children: multiRowSelectionEnabled ? children(selectedRows) : children(selectedRows[0])
|
|
22
|
+
})
|
|
14
23
|
});
|
|
15
24
|
};
|
|
16
25
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/TableActions.tsx"],"sourcesContent":["import {Group} from '@mantine/core';\nimport {ReactElement, ReactNode} from 'react';\n\nimport {useTable} from './TableContext';\n\ninterface TableActionsProps<T> {\n /**\n * Function that return components for the selected row or selected rows when multi row selection is enabled\n *\n * @param datum the data of the selected row(s)\n * @example\n * <Table.Actions<MyType>>\n * {(datum: MyType) => (\n * <Button\n * component={Link}\n * to={`edit/${datum.id}`}\n * leftIcon={<EditSize24Px />}\n * variant=\"subtle\"\n * color=\"navyBlue.8\"\n * >\n * Edit\n * </Button>\n * )}\n * </Table.Actions>\n */\n children: ((datum: T) => ReactNode) | ((data: T[]) => ReactNode);\n}\n\nexport const TableActions = <T,>({children}: TableActionsProps<T>): ReactElement => {\n const {getSelectedRows, multiRowSelectionEnabled} = useTable<T>();\n const selectedRows = getSelectedRows();\n\n if (selectedRows.length <= 0) {\n return null;\n }\n\n return (\n <Group spacing=\"xs\">\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TableActions.tsx"],"sourcesContent":["import {Grid, Group} from '@mantine/core';\nimport {ReactElement, ReactNode} from 'react';\nimport {TableComponentsOrder} from './Table.styles';\n\nimport {useTable} from './TableContext';\n\ninterface TableActionsProps<T> {\n /**\n * Function that return components for the selected row or selected rows when multi row selection is enabled\n *\n * @param datum the data of the selected row(s)\n * @example\n * <Table.Actions<MyType>>\n * {(datum: MyType) => (\n * <Button\n * component={Link}\n * to={`edit/${datum.id}`}\n * leftIcon={<EditSize24Px />}\n * variant=\"subtle\"\n * color=\"navyBlue.8\"\n * >\n * Edit\n * </Button>\n * )}\n * </Table.Actions>\n */\n children: ((datum: T) => ReactNode) | ((data: T[]) => ReactNode);\n}\n\nexport const TableActions = <T,>({children}: TableActionsProps<T>): ReactElement => {\n const {getSelectedRows, multiRowSelectionEnabled} = useTable<T>();\n const selectedRows = getSelectedRows();\n\n if (selectedRows.length <= 0) {\n return null;\n }\n\n return (\n <Grid.Col span=\"content\" order={TableComponentsOrder.Actions} py=\"sm\">\n <Group spacing=\"xs\" style={{display: 'inline-flex'}}>\n {multiRowSelectionEnabled\n ? (children as (data: T[]) => ReactNode)(selectedRows)\n : (children as (datum: T) => ReactNode)(selectedRows[0])}\n </Group>\n </Grid.Col>\n );\n};\n"],"names":["Grid","Group","TableComponentsOrder","useTable","TableActions","children","getSelectedRows","multiRowSelectionEnabled","selectedRows","length","Col","span","order","Actions","py","spacing","style","display"],"mappings":";AAAA,SAAQA,IAAI,EAAEC,KAAK,QAAO,gBAAgB;AAE1C,SAAQC,oBAAoB,QAAO,iBAAiB;AAEpD,SAAQC,QAAQ,QAAO,iBAAiB;AAyBxC,OAAO,IAAMC,eAAe,gBAAwD;QAAlDC,iBAAAA;IAC9B,IAAoDF,YAAAA,YAA7CG,kBAA6CH,UAA7CG,iBAAiBC,2BAA4BJ,UAA5BI;IACxB,IAAMC,eAAeF;IAErB,IAAIE,aAAaC,MAAM,IAAI,GAAG;QAC1B,OAAO,IAAI;IACf,CAAC;IAED,qBACI,KAACT,KAAKU,GAAG;QAACC,MAAK;QAAUC,OAAOV,qBAAqBW,OAAO;QAAEC,IAAG;kBAC7D,cAAA,KAACb;YAAMc,SAAQ;YAAKC,OAAO;gBAACC,SAAS;YAAa;sBAC7CV,2BACK,AAACF,SAAsCG,gBACvC,AAACH,SAAqCG,YAAY,CAAC,EAAE,CAAC;;;AAI5E,EAAE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _object_spread from "@swc/helpers/
|
|
2
|
-
import _object_spread_props from "@swc/helpers/
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
import { ArrowHeadDownSize24Px, ArrowHeadUpSize24Px } from "@coveord/plasma-react-icons";
|
|
5
5
|
import { ActionIcon } from "@mantine/core";
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import _sliced_to_array from "@swc/helpers/
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { CalendarSize24Px } from "@coveord/plasma-react-icons";
|
|
4
|
-
import { Popover } from "@mantine/core";
|
|
4
|
+
import { Grid, Group, Popover, Text } from "@mantine/core";
|
|
5
5
|
import dayjs from "dayjs";
|
|
6
6
|
import { useState } from "react";
|
|
7
7
|
import { Button } from "../button";
|
|
8
8
|
import { DateRangePickerInlineCalendar } from "../date-range-picker";
|
|
9
|
+
import { TableComponentsOrder } from "./Table.styles";
|
|
9
10
|
import { useTable } from "./TableContext";
|
|
10
11
|
export var TableDateRangePicker = function(param) {
|
|
11
12
|
var _param_presets = param.presets, presets = _param_presets === void 0 ? {} : _param_presets, rangeCalendarProps = param.rangeCalendarProps;
|
|
@@ -22,40 +23,49 @@ export var TableDateRangePicker = function(param) {
|
|
|
22
23
|
return dayjs(date).format("MMM DD, YYYY");
|
|
23
24
|
};
|
|
24
25
|
var formatedRange = "".concat(formatDate(form.values.dateRange[0]), " - ").concat(formatDate(form.values.dateRange[1]));
|
|
25
|
-
return /*#__PURE__*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
26
|
+
return /*#__PURE__*/ _jsx(Grid.Col, {
|
|
27
|
+
span: "content",
|
|
28
|
+
order: TableComponentsOrder.DateRangePicker,
|
|
29
|
+
py: "sm",
|
|
30
|
+
children: /*#__PURE__*/ _jsxs(Group, {
|
|
31
|
+
spacing: "xs",
|
|
32
|
+
children: [
|
|
33
|
+
/*#__PURE__*/ _jsx(Text, {
|
|
34
|
+
span: true,
|
|
35
|
+
children: formatedRange
|
|
36
|
+
}),
|
|
37
|
+
/*#__PURE__*/ _jsxs(Popover, {
|
|
38
|
+
opened: opened,
|
|
39
|
+
onChange: setOpened,
|
|
40
|
+
children: [
|
|
41
|
+
/*#__PURE__*/ _jsx(Popover.Target, {
|
|
42
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
|
43
|
+
variant: "outline",
|
|
44
|
+
color: "gray",
|
|
45
|
+
onClick: function() {
|
|
46
|
+
return setOpened(true);
|
|
47
|
+
},
|
|
48
|
+
px: "xs",
|
|
49
|
+
children: /*#__PURE__*/ _jsx(CalendarSize24Px, {
|
|
50
|
+
width: 24,
|
|
51
|
+
height: 24
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
}),
|
|
55
|
+
/*#__PURE__*/ _jsx(Popover.Dropdown, {
|
|
56
|
+
p: 0,
|
|
57
|
+
children: /*#__PURE__*/ _jsx(DateRangePickerInlineCalendar, {
|
|
58
|
+
initialRange: form.values.dateRange,
|
|
59
|
+
onApply: onApply,
|
|
60
|
+
onCancel: onCancel,
|
|
61
|
+
presets: presets,
|
|
62
|
+
rangeCalendarProps: rangeCalendarProps
|
|
43
63
|
})
|
|
44
64
|
})
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
initialRange: form.values.dateRange,
|
|
50
|
-
onApply: onApply,
|
|
51
|
-
onCancel: onCancel,
|
|
52
|
-
presets: presets,
|
|
53
|
-
rangeCalendarProps: rangeCalendarProps
|
|
54
|
-
})
|
|
55
|
-
})
|
|
56
|
-
]
|
|
57
|
-
})
|
|
58
|
-
]
|
|
65
|
+
]
|
|
66
|
+
})
|
|
67
|
+
]
|
|
68
|
+
})
|
|
59
69
|
});
|
|
60
70
|
};
|
|
61
71
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/TableDateRangePicker.tsx"],"sourcesContent":["import {CalendarSize24Px} from '@coveord/plasma-react-icons';\nimport {Popover} from '@mantine/core';\nimport dayjs from 'dayjs';\nimport {FunctionComponent, useState} from 'react';\n\nimport {Button} from '../button';\nimport {\n DateRangePickerInlineCalendar,\n DateRangePickerInlineCalendarProps,\n DateRangePickerPreset,\n DateRangePickerValue,\n} from '../date-range-picker';\nimport {useTable} from './TableContext';\n\ninterface TableDateRangePickerProps\n extends Pick<DateRangePickerInlineCalendarProps, 'startProps' | 'endProps' | 'rangeCalendarProps'> {\n /**\n * An object containing date presets.\n * If empty the preset dropdown won't be shown\n *\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n * @default {}\n */\n presets?: Record<string, DateRangePickerPreset>;\n}\n\nexport const TableDateRangePicker: FunctionComponent<TableDateRangePickerProps> = ({\n presets = {},\n rangeCalendarProps,\n}) => {\n const [opened, setOpened] = useState(false);\n const {form} = useTable();\n\n const onApply = (dates: DateRangePickerValue) => {\n form.setFieldValue('dateRange', dates);\n setOpened(false);\n };\n const onCancel = () => {\n setOpened(false);\n };\n\n const formatDate = (date: Date) => dayjs(date).format('MMM DD, YYYY');\n const formatedRange = `${formatDate(form.values.dateRange[0])} - ${formatDate(form.values.dateRange[1])}`;\n\n return (\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TableDateRangePicker.tsx"],"sourcesContent":["import {CalendarSize24Px} from '@coveord/plasma-react-icons';\nimport {Grid, Group, Popover, Text} from '@mantine/core';\nimport dayjs from 'dayjs';\nimport {FunctionComponent, useState} from 'react';\n\nimport {Button} from '../button';\nimport {\n DateRangePickerInlineCalendar,\n DateRangePickerInlineCalendarProps,\n DateRangePickerPreset,\n DateRangePickerValue,\n} from '../date-range-picker';\nimport {TableComponentsOrder} from './Table.styles';\nimport {useTable} from './TableContext';\n\ninterface TableDateRangePickerProps\n extends Pick<DateRangePickerInlineCalendarProps, 'startProps' | 'endProps' | 'rangeCalendarProps'> {\n /**\n * An object containing date presets.\n * If empty the preset dropdown won't be shown\n *\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n * @default {}\n */\n presets?: Record<string, DateRangePickerPreset>;\n}\n\nexport const TableDateRangePicker: FunctionComponent<TableDateRangePickerProps> = ({\n presets = {},\n rangeCalendarProps,\n}) => {\n const [opened, setOpened] = useState(false);\n const {form} = useTable();\n\n const onApply = (dates: DateRangePickerValue) => {\n form.setFieldValue('dateRange', dates);\n setOpened(false);\n };\n const onCancel = () => {\n setOpened(false);\n };\n\n const formatDate = (date: Date) => dayjs(date).format('MMM DD, YYYY');\n const formatedRange = `${formatDate(form.values.dateRange[0])} - ${formatDate(form.values.dateRange[1])}`;\n\n return (\n <Grid.Col span=\"content\" order={TableComponentsOrder.DateRangePicker} py=\"sm\">\n <Group spacing=\"xs\">\n <Text span>{formatedRange}</Text>\n <Popover opened={opened} onChange={setOpened}>\n <Popover.Target>\n <Button variant=\"outline\" color=\"gray\" onClick={() => setOpened(true)} px=\"xs\">\n <CalendarSize24Px width={24} height={24} />\n </Button>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={form.values.dateRange}\n onApply={onApply}\n onCancel={onCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n />\n </Popover.Dropdown>\n </Popover>\n </Group>\n </Grid.Col>\n );\n};\n"],"names":["CalendarSize24Px","Grid","Group","Popover","Text","dayjs","useState","Button","DateRangePickerInlineCalendar","TableComponentsOrder","useTable","TableDateRangePicker","presets","rangeCalendarProps","opened","setOpened","form","onApply","dates","setFieldValue","onCancel","formatDate","date","format","formatedRange","values","dateRange","Col","span","order","DateRangePicker","py","spacing","onChange","Target","variant","color","onClick","px","width","height","Dropdown","p","initialRange"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,8BAA8B;AAC7D,SAAQC,IAAI,EAAEC,KAAK,EAAEC,OAAO,EAAEC,IAAI,QAAO,gBAAgB;AACzD,OAAOC,WAAW,QAAQ;AAC1B,SAA2BC,QAAQ,QAAO,QAAQ;AAElD,SAAQC,MAAM,QAAO,YAAY;AACjC,SACIC,6BAA6B,QAI1B,uBAAuB;AAC9B,SAAQC,oBAAoB,QAAO,iBAAiB;AACpD,SAAQC,QAAQ,QAAO,iBAAiB;AAkBxC,OAAO,IAAMC,uBAAqE,gBAG5E;+BAFFC,SAAAA,sCAAU,CAAC,oBACXC,2BAAAA;IAEA,IAA4BP,6BAAAA,SAAS,KAAK,OAAnCQ,SAAqBR,cAAbS,YAAaT;IAC5B,IAAM,AAACU,OAAQN,WAARM;IAEP,IAAMC,UAAU,SAACC,OAAgC;QAC7CF,KAAKG,aAAa,CAAC,aAAaD;QAChCH,UAAU,KAAK;IACnB;IACA,IAAMK,WAAW,WAAM;QACnBL,UAAU,KAAK;IACnB;IAEA,IAAMM,aAAa,SAACC;eAAejB,MAAMiB,MAAMC,MAAM,CAAC;;IACtD,IAAMC,gBAAgB,AAAC,GAA4CH,OAA1CA,WAAWL,KAAKS,MAAM,CAACC,SAAS,CAAC,EAAE,GAAE,OAA0C,OAArCL,WAAWL,KAAKS,MAAM,CAACC,SAAS,CAAC,EAAE;IAEtG,qBACI,KAACzB,KAAK0B,GAAG;QAACC,MAAK;QAAUC,OAAOpB,qBAAqBqB,eAAe;QAAEC,IAAG;kBACrE,cAAA,MAAC7B;YAAM8B,SAAQ;;8BACX,KAAC5B;oBAAKwB,IAAI;8BAAEJ;;8BACZ,MAACrB;oBAAQW,QAAQA;oBAAQmB,UAAUlB;;sCAC/B,KAACZ,QAAQ+B,MAAM;sCACX,cAAA,KAAC3B;gCAAO4B,SAAQ;gCAAUC,OAAM;gCAAOC,SAAS;2CAAMtB,UAAU,IAAI;;gCAAGuB,IAAG;0CACtE,cAAA,KAACtC;oCAAiBuC,OAAO;oCAAIC,QAAQ;;;;sCAG7C,KAACrC,QAAQsC,QAAQ;4BAACC,GAAG;sCACjB,cAAA,KAAClC;gCACGmC,cAAc3B,KAAKS,MAAM,CAACC,SAAS;gCACnCT,SAASA;gCACTG,UAAUA;gCACVR,SAASA;gCACTC,oBAAoBA;;;;;;;;AAOhD,EAAE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import _object_spread from "@swc/helpers/
|
|
2
|
-
import _object_spread_props from "@swc/helpers/
|
|
3
|
-
import _object_without_properties from "@swc/helpers/
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import { CrossSize16Px, SearchSize16Px } from "@coveord/plasma-react-icons";
|
|
6
|
-
import { ActionIcon, createStyles, TextInput } from "@mantine/core";
|
|
6
|
+
import { ActionIcon, createStyles, Grid, TextInput } from "@mantine/core";
|
|
7
|
+
import { TableComponentsOrder } from "./Table.styles";
|
|
7
8
|
import { useTable } from "./TableContext";
|
|
8
9
|
var useStyles = createStyles(function(theme) {
|
|
9
10
|
return {
|
|
@@ -47,22 +48,27 @@ export var TableFilter = function(_param) {
|
|
|
47
48
|
var handleClear = function() {
|
|
48
49
|
changeFilterValue("");
|
|
49
50
|
};
|
|
50
|
-
return /*#__PURE__*/ _jsx(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
51
|
+
return /*#__PURE__*/ _jsx(Grid.Col, {
|
|
52
|
+
span: "content",
|
|
53
|
+
order: TableComponentsOrder.Filter,
|
|
54
|
+
py: "sm",
|
|
55
|
+
children: /*#__PURE__*/ _jsx(TextInput, _object_spread({
|
|
56
|
+
className: classes.wrapper,
|
|
57
|
+
placeholder: placeholder,
|
|
58
|
+
mb: "md",
|
|
59
|
+
rightSection: state.globalFilter ? /*#__PURE__*/ _jsx(ActionIcon, {
|
|
60
|
+
onClick: handleClear,
|
|
61
|
+
children: /*#__PURE__*/ _jsx(CrossSize16Px, {
|
|
62
|
+
height: 16
|
|
63
|
+
})
|
|
64
|
+
}) : /*#__PURE__*/ _jsx(SearchSize16Px, {
|
|
65
|
+
height: 14,
|
|
66
|
+
className: classes.empty
|
|
67
|
+
}),
|
|
68
|
+
value: state.globalFilter,
|
|
69
|
+
onChange: handleChange
|
|
70
|
+
}, others))
|
|
71
|
+
});
|
|
66
72
|
};
|
|
67
73
|
|
|
68
74
|
//# sourceMappingURL=TableFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/table/TableFilter.tsx"],"sourcesContent":["import {CrossSize16Px, SearchSize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, createStyles, DefaultProps, Selectors, TextInput} from '@mantine/core';\nimport {ChangeEventHandler, FunctionComponent, MouseEventHandler} from 'react';\n\nimport {useTable} from './TableContext';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n marginBottom: '0 !important',\n },\n empty: {\n color: theme.colors.gray[4],\n },\n}));\n\ntype TableFilterStylesNames = Selectors<typeof useStyles>;\ninterface TableFilterProps extends DefaultProps<TableFilterStylesNames> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport const TableFilter: FunctionComponent<TableFilterProps> = ({\n placeholder = 'Search by any field',\n classNames,\n styles,\n unstyled,\n ...others\n}) => {\n const {classes} = useStyles(null, {name: 'TableHeader', classNames, styles, unstyled});\n const {state, setState} = useTable();\n\n const changeFilterValue = (value: string) => {\n setState((prevState) => ({\n ...prevState,\n pagination: prevState.pagination\n ? {pageIndex: 0, pageSize: prevState.pagination.pageSize}\n : prevState.pagination,\n globalFilter: value,\n }));\n };\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const {value} = event.currentTarget;\n changeFilterValue(value);\n };\n\n const handleClear: MouseEventHandler<HTMLButtonElement> = () => {\n changeFilterValue('');\n };\n\n return (\n <TextInput\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/table/TableFilter.tsx"],"sourcesContent":["import {CrossSize16Px, SearchSize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, createStyles, DefaultProps, Grid, Selectors, TextInput} from '@mantine/core';\nimport {ChangeEventHandler, FunctionComponent, MouseEventHandler} from 'react';\nimport {TableComponentsOrder} from './Table.styles';\n\nimport {useTable} from './TableContext';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n marginBottom: '0 !important',\n },\n empty: {\n color: theme.colors.gray[4],\n },\n}));\n\ntype TableFilterStylesNames = Selectors<typeof useStyles>;\ninterface TableFilterProps extends DefaultProps<TableFilterStylesNames> {\n /**\n * The placeholder for the filter input\n *\n * @default \"Search by any field\"\n */\n placeholder?: string;\n}\n\nexport const TableFilter: FunctionComponent<TableFilterProps> = ({\n placeholder = 'Search by any field',\n classNames,\n styles,\n unstyled,\n ...others\n}) => {\n const {classes} = useStyles(null, {name: 'TableHeader', classNames, styles, unstyled});\n const {state, setState} = useTable();\n\n const changeFilterValue = (value: string) => {\n setState((prevState) => ({\n ...prevState,\n pagination: prevState.pagination\n ? {pageIndex: 0, pageSize: prevState.pagination.pageSize}\n : prevState.pagination,\n globalFilter: value,\n }));\n };\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const {value} = event.currentTarget;\n changeFilterValue(value);\n };\n\n const handleClear: MouseEventHandler<HTMLButtonElement> = () => {\n changeFilterValue('');\n };\n\n return (\n <Grid.Col span=\"content\" order={TableComponentsOrder.Filter} py=\"sm\">\n <TextInput\n className={classes.wrapper}\n placeholder={placeholder}\n mb=\"md\"\n rightSection={\n state.globalFilter ? (\n <ActionIcon onClick={handleClear}>\n <CrossSize16Px height={16} />\n </ActionIcon>\n ) : (\n <SearchSize16Px height={14} className={classes.empty} />\n )\n }\n value={state.globalFilter}\n onChange={handleChange}\n {...others}\n />\n </Grid.Col>\n );\n};\n"],"names":["CrossSize16Px","SearchSize16Px","ActionIcon","createStyles","Grid","TextInput","TableComponentsOrder","useTable","useStyles","theme","wrapper","marginBottom","empty","color","colors","gray","TableFilter","placeholder","classNames","styles","unstyled","others","classes","name","state","setState","changeFilterValue","value","prevState","pagination","pageIndex","pageSize","globalFilter","handleChange","event","currentTarget","handleClear","Col","span","order","Filter","py","className","mb","rightSection","onClick","height","onChange"],"mappings":";;;;AAAA,SAAQA,aAAa,EAAEC,cAAc,QAAO,8BAA8B;AAC1E,SAAQC,UAAU,EAAEC,YAAY,EAAgBC,IAAI,EAAaC,SAAS,QAAO,gBAAgB;AAEjG,SAAQC,oBAAoB,QAAO,iBAAiB;AAEpD,SAAQC,QAAQ,QAAO,iBAAiB;AAExC,IAAMC,YAAYL,aAAa,SAACM;WAAW;QACvCC,SAAS;YACLC,cAAc;QAClB;QACAC,OAAO;YACHC,OAAOJ,MAAMK,MAAM,CAACC,IAAI,CAAC,EAAE;QAC/B;IACJ;;AAYA,OAAO,IAAMC,cAAmD,iBAM1D;oCALFC,aAAAA,8CAAc,4CACdC,oBAAAA,YACAC,gBAAAA,QACAC,kBAAAA,UACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAM,AAACE,UAAWd,UAAU,IAAI,EAAE;QAACe,MAAM;QAAeL,YAAAA;QAAYC,QAAAA;QAAQC,UAAAA;IAAQ,GAA7EE;IACP,IAA0Bf,YAAAA,YAAnBiB,QAAmBjB,UAAnBiB,OAAOC,WAAYlB,UAAZkB;IAEd,IAAMC,oBAAoB,SAACC,OAAkB;QACzCF,SAAS,SAACG;mBAAe,wCAClBA;gBACHC,YAAYD,UAAUC,UAAU,GAC1B;oBAACC,WAAW;oBAAGC,UAAUH,UAAUC,UAAU,CAACE,QAAQ;gBAAA,IACtDH,UAAUC,UAAU;gBAC1BG,cAAcL;;;IAEtB;IAEA,IAAMM,eAAqD,SAACC,OAAU;QAClE,IAAM,AAACP,QAASO,MAAMC,aAAa,CAA5BR;QACPD,kBAAkBC;IACtB;IAEA,IAAMS,cAAoD,WAAM;QAC5DV,kBAAkB;IACtB;IAEA,qBACI,KAACtB,KAAKiC,GAAG;QAACC,MAAK;QAAUC,OAAOjC,qBAAqBkC,MAAM;QAAEC,IAAG;kBAC5D,cAAA,KAACpC;YACGqC,WAAWpB,QAAQZ,OAAO;YAC1BO,aAAaA;YACb0B,IAAG;YACHC,cACIpB,MAAMQ,YAAY,iBACd,KAAC9B;gBAAW2C,SAAST;0BACjB,cAAA,KAACpC;oBAAc8C,QAAQ;;+BAG3B,KAAC7C;gBAAe6C,QAAQ;gBAAIJ,WAAWpB,QAAQV,KAAK;cACvD;YAELe,OAAOH,MAAMQ,YAAY;YACzBe,UAAUd;WACNZ;;AAIpB,EAAE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import _object_spread from "@swc/helpers/
|
|
2
|
-
import _object_spread_props from "@swc/helpers/
|
|
3
|
-
import _object_without_properties from "@swc/helpers/
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import { Group } from "@mantine/core";
|
|
6
6
|
export var TableFooter = function(_param) /*#__PURE__*/ {
|