@bluemarble/bm-components 0.0.71 → 0.0.73

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 (43) hide show
  1. package/dist/esm/index.js +823 -823
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/types/components/Autocomplete/index.d.ts +27 -27
  4. package/dist/esm/types/components/BaseGrid/Pagination/index.d.ts +12 -12
  5. package/dist/esm/types/components/BaseGrid/index.d.ts +32 -32
  6. package/dist/esm/types/components/Checkbox/index.d.ts +19 -19
  7. package/dist/esm/types/components/Dialog/index.d.ts +16 -16
  8. package/dist/esm/types/components/EditableGrid/GridCell.d.ts +24 -24
  9. package/dist/esm/types/components/EditableGrid/GridInput/index.d.ts +16 -16
  10. package/dist/esm/types/components/EditableGrid/GridInputAutocomplete/index.d.ts +11 -11
  11. package/dist/esm/types/components/EditableGrid/GridInputText/index.d.ts +3 -3
  12. package/dist/esm/types/components/EditableGrid/GridSelect/index.d.ts +10 -10
  13. package/dist/esm/types/components/EditableGrid/NewRow/index.d.ts +13 -13
  14. package/dist/esm/types/components/EditableGrid/index.d.ts +52 -52
  15. package/dist/esm/types/components/Grid/AutoCreatedRows.d.ts +9 -9
  16. package/dist/esm/types/components/Grid/EditableTableCell/DefaultInput.d.ts +17 -17
  17. package/dist/esm/types/components/Grid/EditableTableCell/InputMask.d.ts +8 -8
  18. package/dist/esm/types/components/Grid/EditableTableCell/index.d.ts +24 -24
  19. package/dist/esm/types/components/Grid/Filters.d.ts +13 -13
  20. package/dist/esm/types/components/Grid/Grid.d.ts +33 -33
  21. package/dist/esm/types/components/Grid/Header.d.ts +11 -11
  22. package/dist/esm/types/components/Grid/Td.d.ts +3 -3
  23. package/dist/esm/types/components/Grid/Tr.d.ts +13 -13
  24. package/dist/esm/types/components/Grid/index.d.ts +6 -6
  25. package/dist/esm/types/components/Grid/utils.d.ts +5 -5
  26. package/dist/esm/types/components/Input/index.d.ts +12 -12
  27. package/dist/esm/types/components/InputMask/index.d.ts +13 -13
  28. package/dist/esm/types/components/LargeButton/index.d.ts +9 -9
  29. package/dist/esm/types/components/Modal/index.d.ts +8 -8
  30. package/dist/esm/types/components/Radio/index.d.ts +23 -23
  31. package/dist/esm/types/components/Select/index.d.ts +17 -17
  32. package/dist/esm/types/components/Switch/index.d.ts +19 -19
  33. package/dist/esm/types/components/TabPanel/index.d.ts +11 -11
  34. package/dist/esm/types/components/hooks/useEditableGrid.d.ts +23 -23
  35. package/dist/esm/types/components/hooks/useEvent.d.ts +1 -1
  36. package/dist/esm/types/components/hooks/useFilter.d.ts +17 -17
  37. package/dist/esm/types/components/hooks/useGrid.d.ts +23 -23
  38. package/dist/esm/types/components/hooks/useLoading.d.ts +4 -4
  39. package/dist/esm/types/components/index.d.ts +18 -18
  40. package/dist/esm/types/components/utils/GetInputLabel.d.ts +4 -4
  41. package/dist/esm/types/index.d.ts +1 -1
  42. package/dist/index.d.ts +248 -248
  43. package/package.json +45 -45
package/dist/esm/index.js CHANGED
@@ -5,35 +5,35 @@ import emStyled from '@emotion/styled';
5
5
  import '@emotion/react';
6
6
  import { Field, useField } from 'formik';
7
7
 
8
- const GridHeader = ({ setOrder, setOrderBy, order, orderBy, titles = [] }) => {
9
- function onRequestSort(title) {
10
- if (title !== orderBy) {
11
- setOrderBy(title);
12
- return setOrder('desc');
13
- }
14
- switch (order) {
15
- case 'desc':
16
- setOrder('asc');
17
- setOrderBy(title);
18
- break;
19
- case 'asc':
20
- setOrder(undefined);
21
- setOrderBy('');
22
- break;
23
- default:
24
- setOrder('desc');
25
- setOrderBy(title);
26
- break;
27
- }
28
- }
29
- return (React__default.createElement(TableHead, null,
30
- React__default.createElement(TableRow, { sx: { backgroundColor: 'background.default' } }, titles.map((title) => {
31
- return (React__default.createElement(TableCell, { key: title.name, sortDirection: orderBy === title.name ? order : false, sx: Object.assign({ fontWeight: 'bold' }, title.sx) },
32
- React__default.createElement(TableSortLabel, { onClick: () => onRequestSort(title.name), active: orderBy === title.name, direction: orderBy === title.name ? order : 'asc', sx: {
33
- position: 'relative',
34
- svg: { position: 'absolute', right: '27px' }
35
- } }, title.label)));
36
- }))));
8
+ const GridHeader = ({ setOrder, setOrderBy, order, orderBy, titles = [] }) => {
9
+ function onRequestSort(title) {
10
+ if (title !== orderBy) {
11
+ setOrderBy(title);
12
+ return setOrder('desc');
13
+ }
14
+ switch (order) {
15
+ case 'desc':
16
+ setOrder('asc');
17
+ setOrderBy(title);
18
+ break;
19
+ case 'asc':
20
+ setOrder(undefined);
21
+ setOrderBy('');
22
+ break;
23
+ default:
24
+ setOrder('desc');
25
+ setOrderBy(title);
26
+ break;
27
+ }
28
+ }
29
+ return (React__default.createElement(TableHead, null,
30
+ React__default.createElement(TableRow, { sx: { backgroundColor: 'background.default' } }, titles.map((title) => {
31
+ return (React__default.createElement(TableCell, { key: title.name, sortDirection: orderBy === title.name ? order : false, sx: Object.assign({ fontWeight: 'bold' }, title.sx) },
32
+ React__default.createElement(TableSortLabel, { onClick: () => onRequestSort(title.name), active: orderBy === title.name, direction: orderBy === title.name ? order : 'asc', sx: {
33
+ position: 'relative',
34
+ svg: { position: 'absolute', right: '27px' }
35
+ } }, title.label)));
36
+ }))));
37
37
  };
38
38
 
39
39
  function _extends() {
@@ -3800,47 +3800,47 @@ function MdSearch (props) {
3800
3800
  return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 24 24"},"child":[{"tag":"path","attr":{"fill":"none","d":"M0 0h24v24H0z"}},{"tag":"path","attr":{"d":"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}}]})(props);
3801
3801
  }
3802
3802
 
3803
- const FiltersBar = ({ customButtons, selectedFilters, handleCloseFilter, noFilterButtons, searchAnchorEl, setOpenSearch, setAnchorEl, noFilters }) => {
3804
- return (React__default.createElement(Box$1, { sx: {
3805
- display: 'flex',
3806
- justifyContent: 'space-between',
3807
- alignItems: 'center',
3808
- width: '100%'
3809
- } },
3810
- !noFilters && (React__default.createElement(Box$1, { sx: { pl: 1 } }, selectedFilters.map((item, index) => {
3811
- return (React__default.createElement(Chip, { key: index, label: item.value, onDelete: () => handleCloseFilter(item) }));
3812
- }))),
3813
- React__default.createElement(Box$1, { ref: searchAnchorEl, sx: { minHeight: 30, width: '100%' } },
3814
- customButtons,
3815
- !noFilterButtons && (React__default.createElement(React__default.Fragment, null,
3816
- React__default.createElement(Tooltip, { title: "Buscar" },
3817
- React__default.createElement(IconButton, { onClick: () => setOpenSearch(true) },
3818
- React__default.createElement(MdSearch, { size: 8 * 3 }))),
3819
- React__default.createElement(Tooltip, { title: "Filtrar" },
3820
- React__default.createElement(IconButton, { sx: { position: 'relative' }, onClick: ({ currentTarget }) => setAnchorEl(currentTarget) },
3821
- React__default.createElement(MdFilterList, { size: 8 * 3 }))))))));
3803
+ const FiltersBar = ({ customButtons, selectedFilters, handleCloseFilter, noFilterButtons, searchAnchorEl, setOpenSearch, setAnchorEl, noFilters }) => {
3804
+ return (React__default.createElement(Box$1, { sx: {
3805
+ display: 'flex',
3806
+ justifyContent: 'space-between',
3807
+ alignItems: 'center',
3808
+ width: '100%'
3809
+ } },
3810
+ !noFilters && (React__default.createElement(Box$1, { sx: { pl: 1 } }, selectedFilters.map((item, index) => {
3811
+ return (React__default.createElement(Chip, { key: index, label: item.value, onDelete: () => handleCloseFilter(item) }));
3812
+ }))),
3813
+ React__default.createElement(Box$1, { ref: searchAnchorEl, sx: { minHeight: 30, width: '100%' } },
3814
+ customButtons,
3815
+ !noFilterButtons && (React__default.createElement(React__default.Fragment, null,
3816
+ React__default.createElement(Tooltip, { title: "Buscar" },
3817
+ React__default.createElement(IconButton, { onClick: () => setOpenSearch(true) },
3818
+ React__default.createElement(MdSearch, { size: 8 * 3 }))),
3819
+ React__default.createElement(Tooltip, { title: "Filtrar" },
3820
+ React__default.createElement(IconButton, { sx: { position: 'relative' }, onClick: ({ currentTarget }) => setAnchorEl(currentTarget) },
3821
+ React__default.createElement(MdFilterList, { size: 8 * 3 }))))))));
3822
3822
  };
3823
3823
 
3824
- function filterData(filters, defaultData) {
3825
- if (filters.length === 0)
3826
- return defaultData.current;
3827
- const filteredArray = defaultData.current.slice(0).filter((item) => {
3828
- let satisfiedFilter = 0;
3829
- filters.forEach((sub) => {
3830
- let currentValue = getPropertyValue(item, sub.column);
3831
- if (sub.transformer)
3832
- currentValue = sub.transformer(currentValue);
3833
- if (String(currentValue) === String(sub.value))
3834
- satisfiedFilter += 1;
3835
- });
3836
- if (satisfiedFilter === filters.length)
3837
- return true;
3838
- return false;
3839
- });
3840
- return filteredArray;
3841
- }
3842
- function getPropertyValue(obj, property) {
3843
- return String(property.split('.').reduce((o, k) => o && o[k], obj));
3824
+ function filterData(filters, defaultData) {
3825
+ if (filters.length === 0)
3826
+ return defaultData.current;
3827
+ const filteredArray = defaultData.current.slice(0).filter((item) => {
3828
+ let satisfiedFilter = 0;
3829
+ filters.forEach((sub) => {
3830
+ let currentValue = getPropertyValue(item, sub.column);
3831
+ if (sub.transformer)
3832
+ currentValue = sub.transformer(currentValue);
3833
+ if (String(currentValue) === String(sub.value))
3834
+ satisfiedFilter += 1;
3835
+ });
3836
+ if (satisfiedFilter === filters.length)
3837
+ return true;
3838
+ return false;
3839
+ });
3840
+ return filteredArray;
3841
+ }
3842
+ function getPropertyValue(obj, property) {
3843
+ return String(property.split('.').reduce((o, k) => o && o[k], obj));
3844
3844
  }
3845
3845
 
3846
3846
  /*! *****************************************************************************
@@ -3870,222 +3870,222 @@ function __rest(s, e) {
3870
3870
  return t;
3871
3871
  }
3872
3872
 
3873
- const CustomTableCell = (_a) => {
3874
- var { children } = _a, props = __rest(_a, ["children"]);
3875
- return React__default.createElement(TableCell, Object.assign({}, props), children);
3876
- };
3873
+ const CustomTableCell = (_a) => {
3874
+ var { children } = _a, props = __rest(_a, ["children"]);
3875
+ return React__default.createElement(TableCell, Object.assign({}, props), children);
3876
+ };
3877
3877
  const Td = memo(CustomTableCell);
3878
3878
 
3879
- const CustomTableRow = (props) => {
3880
- const { children, sx, striped = true, bordered = undefined } = props, rest = __rest(props, ["children", "sx", "striped", "bordered"]);
3881
- return (React__default.createElement(TableRow, Object.assign({ sx: Object.assign({ '&:nth-of-type(even)': { bgcolor: striped ? 'action.selected' : '' } }, sx) }, rest), React__default.Children.map(children, (child) => React__default.cloneElement(child, {
3882
- bordered
3883
- }))));
3884
- };
3879
+ const CustomTableRow = (props) => {
3880
+ const { children, sx, striped = true, bordered = undefined } = props, rest = __rest(props, ["children", "sx", "striped", "bordered"]);
3881
+ return (React__default.createElement(TableRow, Object.assign({ sx: Object.assign({ '&:nth-of-type(even)': { bgcolor: striped ? 'action.selected' : '' } }, sx) }, rest), React__default.Children.map(children, (child) => React__default.cloneElement(child, {
3882
+ bordered
3883
+ }))));
3884
+ };
3885
3885
  const Tr = memo(CustomTableRow);
3886
3886
 
3887
- const AutoCreatedRows = ({ tableData, columns, primaryKey }) => {
3888
- return (React__default.createElement(React__default.Fragment, null, tableData.map((row) => (React__default.createElement(Tr, { key: row[primaryKey] }, columns.map((column) => {
3889
- const cellValue = column.transformer
3890
- ? column.transformer(row[column.name])
3891
- : row[column.name];
3892
- return React__default.createElement(Td, { key: column.name }, cellValue);
3893
- }))))));
3887
+ const AutoCreatedRows = ({ tableData, columns, primaryKey }) => {
3888
+ return (React__default.createElement(React__default.Fragment, null, tableData.map((row) => (React__default.createElement(Tr, { key: row[primaryKey] }, columns.map((column) => {
3889
+ const cellValue = column.transformer
3890
+ ? column.transformer(row[column.name])
3891
+ : row[column.name];
3892
+ return React__default.createElement(Td, { key: column.name }, cellValue);
3893
+ }))))));
3894
3894
  };
3895
3895
 
3896
- const Grid = (props) => {
3897
- const { columnTitles, isLoading, footer, noFilterButtons = false, selectedFilters, customButtons, setSelectedFilters, defaultData, setTableData, updateFilters, tableData, rowOptions = [60, 100, 150], noPagination, primaryKey, noFilters } = props;
3898
- const [order, setOrder] = useState(undefined);
3899
- const [orderBy, setOrderBy] = useState('');
3900
- const [page, setPage] = useState(0);
3901
- const [rowsPerPage, setRowsPerPage] = useState(rowOptions[0]);
3902
- const [selectedTitle, setSelectedTitle] = useState(undefined);
3903
- const [selectedFilterValue, setSelectedFilterValue] = useState(undefined);
3904
- const [valuesToFilter, setValuesToFilter] = useState([]);
3905
- const [anchorEl, setAnchorEl] = useState(null);
3906
- const [searchText, setSearchText] = useState('');
3907
- const [openSearch, setOpenSearch] = useState(false);
3908
- const searchAnchorEl = useRef(null);
3909
- const countRows = useMemo(() => {
3910
- if (searchText.length > 0) {
3911
- const array = handleFilterBySearch(searchText);
3912
- return array.length;
3913
- }
3914
- else {
3915
- return defaultData.length;
3916
- }
3917
- }, [searchText, tableData]);
3918
- const handleChangeRowsPerPage = ({ target }) => {
3919
- setRowsPerPage(parseInt(target.value));
3920
- const maxPage = Math.floor(countRows / rowsPerPage);
3921
- if (page > maxPage)
3922
- setPage(maxPage);
3923
- };
3924
- function handleSort(data) {
3925
- const sortable = data.slice(0);
3926
- if (order === undefined)
3927
- return sortable;
3928
- sortable.sort((a, b) => {
3929
- const x = a[orderBy];
3930
- const y = b[orderBy];
3931
- return x < y ? -1 : x > y ? 1 : 0;
3932
- });
3933
- return order === 'asc' ? sortable : sortable.reverse();
3934
- }
3935
- function handleAddFilter() {
3936
- const [column] = columnTitles.filter((item) => item.label === selectedTitle);
3937
- const newFilter = {
3938
- column: column.name,
3939
- value: selectedFilterValue || '',
3940
- transformer: column.transformer
3941
- };
3942
- const filterAlreadyExists = selectedFilters.some((filter) => filter.column === column.name && filter.value === selectedFilterValue);
3943
- if (filterAlreadyExists)
3944
- return;
3945
- setSelectedFilters([...selectedFilters, newFilter]);
3946
- }
3947
- function handleCloseFilter(item) {
3948
- const filterToDelete = selectedFilters.find((filter) => filter.column === item.column && filter.value === item.value);
3949
- if (!filterToDelete)
3950
- return;
3951
- const filteredSelectedFilters = selectedFilters.filter((_, index) => selectedFilters.indexOf(filterToDelete) !== index);
3952
- setSelectedFilters([...filteredSelectedFilters]);
3953
- }
3954
- function handleFilterBySearch(text) {
3955
- const newArray = defaultData.filter((item) => {
3956
- for (const [, value] of Object.entries(item)) {
3957
- if (`${value}`.toLocaleLowerCase().includes(text.toLocaleLowerCase()))
3958
- return true;
3959
- }
3960
- return false;
3961
- });
3962
- return newArray;
3963
- }
3964
- useEffect(() => {
3965
- const maxPage = Math.floor(countRows / rowsPerPage);
3966
- if (page > maxPage)
3967
- setPage(maxPage - 1);
3968
- }, [countRows]);
3969
- useEffect(() => {
3970
- if (order) {
3971
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3972
- const sortedArray = handleSort(newArray);
3973
- const data = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3974
- setTableData(data);
3975
- }
3976
- else {
3977
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3978
- const data = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3979
- setTableData(data);
3980
- }
3981
- }, [defaultData]);
3982
- useEffect(() => {
3983
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3984
- const sortedArray = handleSort(newArray);
3985
- const paginatedArray = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3986
- setTableData(paginatedArray);
3987
- }, [order, orderBy]);
3988
- useEffect(() => {
3989
- if (order) {
3990
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3991
- const sortedArray = handleSort(newArray);
3992
- const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3993
- setTableData(dados);
3994
- }
3995
- else {
3996
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3997
- const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3998
- setTableData(dados);
3999
- }
4000
- }, [page, rowsPerPage]);
4001
- useEffect(() => {
4002
- setValuesToFilter([]);
4003
- setSelectedFilterValue(undefined);
4004
- if (selectedTitle) {
4005
- const values = [];
4006
- const [prop] = columnTitles.filter((item) => item.label === selectedTitle);
4007
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
4008
- newArray.forEach((item) => {
4009
- const value = prop.transformer
4010
- ? prop.transformer(getPropertyValue(item, prop.name))
4011
- : String(getPropertyValue(item, prop.name));
4012
- if (!values.includes(value))
4013
- values.push(value);
4014
- });
4015
- setValuesToFilter(values);
4016
- }
4017
- }, [selectedTitle]);
4018
- useEffect(() => {
4019
- if (order) {
4020
- const newArray = handleFilterBySearch(searchText);
4021
- const sortedArray = handleSort(newArray);
4022
- const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
4023
- setTableData(dados);
4024
- }
4025
- else {
4026
- const newArray = handleFilterBySearch(searchText);
4027
- const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
4028
- setTableData(dados);
4029
- }
4030
- }, [searchText]);
4031
- useEffect(() => {
4032
- updateFilters(selectedFilters);
4033
- }, [selectedFilters]);
4034
- return (React__default.createElement(Paper, null,
4035
- isLoading && React__default.createElement(LinearProgress, null),
4036
- React__default.createElement(FiltersBar, { setAnchorEl: setAnchorEl, setOpenSearch: setOpenSearch, searchAnchorEl: searchAnchorEl, noFilters: noFilters, noFilterButtons: noFilterButtons, selectedFilters: selectedFilters, customButtons: customButtons, handleCloseFilter: handleCloseFilter }),
4037
- React__default.createElement(TableContainer, null,
4038
- React__default.createElement(Table, { size: "small" },
4039
- React__default.createElement(GridHeader, { titles: columnTitles, order: order, orderBy: orderBy, setOrder: setOrder, setOrderBy: setOrderBy }),
4040
- React__default.createElement(TableBody, null,
4041
- props.children ? (props.children) : primaryKey ? (React__default.createElement(AutoCreatedRows, { tableData: tableData, columns: columnTitles, primaryKey: primaryKey })) : null,
4042
- footer))),
4043
- !noPagination && (React__default.createElement(TablePagination, { page: page, component: "div", rowsPerPage: rowsPerPage, labelRowsPerPage: "Linhas por p\u00E1gina", rowsPerPageOptions: rowOptions, count: countRows, labelDisplayedRows: ({ page }) => `${page + 1} de ${Math.floor(countRows / rowsPerPage) + 1}`, onPageChange: (_, newPage) => {
4044
- setPage(newPage);
4045
- }, onRowsPerPageChange: handleChangeRowsPerPage })),
4046
- React__default.createElement(Popover, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), anchorOrigin: {
4047
- vertical: 'top',
4048
- horizontal: 'right'
4049
- }, transformOrigin: {
4050
- vertical: 'top',
4051
- horizontal: 'right'
4052
- } },
4053
- React__default.createElement(Box$2, { sx: { minWidth: 300, padding: 2 } },
4054
- React__default.createElement(Typography, { fontWeight: "bold", variant: "body2" }, "Filtrar por:"),
4055
- React__default.createElement(Autocomplete$1, { value: selectedTitle || '', onChange: ({ target }) => {
4056
- !target.innerHTML.includes('path')
4057
- ? setSelectedTitle(target.innerHTML)
4058
- : setSelectedTitle(undefined);
4059
- }, options: columnTitles.map((title) => title.label), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Coluna" }))) }),
4060
- React__default.createElement(Autocomplete$1, { value: selectedFilterValue || '', onChange: ({ target }) => {
4061
- !target.innerHTML.includes('path')
4062
- ? setSelectedFilterValue(target.innerHTML)
4063
- : setSelectedFilterValue(undefined);
4064
- }, disabled: valuesToFilter.length < 1, options: valuesToFilter.map((title) => title), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Valor" }))) }),
4065
- React__default.createElement(Box$2, { sx: { py: 1 } }),
4066
- React__default.createElement(Button, { disabled: !selectedFilterValue, onClick: handleAddFilter, fullWidth: true }, "Adicionar filtro"))),
4067
- React__default.createElement(Popover, { anchorEl: searchAnchorEl.current, open: openSearch, onClose: () => setOpenSearch(false), anchorOrigin: {
4068
- vertical: 'top',
4069
- horizontal: 'left'
4070
- }, transformOrigin: {
4071
- vertical: 'top',
4072
- horizontal: 'left'
4073
- } },
4074
- React__default.createElement(Box$2, { sx: {
4075
- minWidth: 300,
4076
- px: 2,
4077
- pb: 1,
4078
- display: 'grid',
4079
- gridTemplateColumns: '1fr 30px',
4080
- alignItems: 'flex-end'
4081
- } },
4082
- React__default.createElement(TextField, { variant: "standard", margin: "dense", label: "Buscar", value: searchText, onChange: ({ currentTarget }) => setSearchText(currentTarget.value) }),
4083
- React__default.createElement(Box$2, null,
4084
- React__default.createElement(IconButton, { onClick: () => {
4085
- setSearchText('');
4086
- setOpenSearch(false);
4087
- } },
4088
- React__default.createElement(MdClose, { size: 8 * 3 })))))));
3896
+ const Grid = (props) => {
3897
+ const { columnTitles, isLoading, footer, noFilterButtons = false, selectedFilters, customButtons, setSelectedFilters, defaultData, setTableData, updateFilters, tableData, rowOptions = [60, 100, 150], noPagination, primaryKey, noFilters } = props;
3898
+ const [order, setOrder] = useState(undefined);
3899
+ const [orderBy, setOrderBy] = useState('');
3900
+ const [page, setPage] = useState(0);
3901
+ const [rowsPerPage, setRowsPerPage] = useState(rowOptions[0]);
3902
+ const [selectedTitle, setSelectedTitle] = useState(undefined);
3903
+ const [selectedFilterValue, setSelectedFilterValue] = useState(undefined);
3904
+ const [valuesToFilter, setValuesToFilter] = useState([]);
3905
+ const [anchorEl, setAnchorEl] = useState(null);
3906
+ const [searchText, setSearchText] = useState('');
3907
+ const [openSearch, setOpenSearch] = useState(false);
3908
+ const searchAnchorEl = useRef(null);
3909
+ const countRows = useMemo(() => {
3910
+ if (searchText.length > 0) {
3911
+ const array = handleFilterBySearch(searchText);
3912
+ return array.length;
3913
+ }
3914
+ else {
3915
+ return defaultData.length;
3916
+ }
3917
+ }, [searchText, tableData]);
3918
+ const handleChangeRowsPerPage = ({ target }) => {
3919
+ setRowsPerPage(parseInt(target.value));
3920
+ const maxPage = Math.floor(countRows / rowsPerPage);
3921
+ if (page > maxPage)
3922
+ setPage(maxPage);
3923
+ };
3924
+ function handleSort(data) {
3925
+ const sortable = data.slice(0);
3926
+ if (order === undefined)
3927
+ return sortable;
3928
+ sortable.sort((a, b) => {
3929
+ const x = a[orderBy];
3930
+ const y = b[orderBy];
3931
+ return x < y ? -1 : x > y ? 1 : 0;
3932
+ });
3933
+ return order === 'asc' ? sortable : sortable.reverse();
3934
+ }
3935
+ function handleAddFilter() {
3936
+ const [column] = columnTitles.filter((item) => item.label === selectedTitle);
3937
+ const newFilter = {
3938
+ column: column.name,
3939
+ value: selectedFilterValue || '',
3940
+ transformer: column.transformer
3941
+ };
3942
+ const filterAlreadyExists = selectedFilters.some((filter) => filter.column === column.name && filter.value === selectedFilterValue);
3943
+ if (filterAlreadyExists)
3944
+ return;
3945
+ setSelectedFilters([...selectedFilters, newFilter]);
3946
+ }
3947
+ function handleCloseFilter(item) {
3948
+ const filterToDelete = selectedFilters.find((filter) => filter.column === item.column && filter.value === item.value);
3949
+ if (!filterToDelete)
3950
+ return;
3951
+ const filteredSelectedFilters = selectedFilters.filter((_, index) => selectedFilters.indexOf(filterToDelete) !== index);
3952
+ setSelectedFilters([...filteredSelectedFilters]);
3953
+ }
3954
+ function handleFilterBySearch(text) {
3955
+ const newArray = defaultData.filter((item) => {
3956
+ for (const [, value] of Object.entries(item)) {
3957
+ if (`${value}`.toLocaleLowerCase().includes(text.toLocaleLowerCase()))
3958
+ return true;
3959
+ }
3960
+ return false;
3961
+ });
3962
+ return newArray;
3963
+ }
3964
+ useEffect(() => {
3965
+ const maxPage = Math.floor(countRows / rowsPerPage);
3966
+ if (page > maxPage)
3967
+ setPage(maxPage - 1);
3968
+ }, [countRows]);
3969
+ useEffect(() => {
3970
+ if (order) {
3971
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3972
+ const sortedArray = handleSort(newArray);
3973
+ const data = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3974
+ setTableData(data);
3975
+ }
3976
+ else {
3977
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3978
+ const data = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3979
+ setTableData(data);
3980
+ }
3981
+ }, [defaultData]);
3982
+ useEffect(() => {
3983
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3984
+ const sortedArray = handleSort(newArray);
3985
+ const paginatedArray = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3986
+ setTableData(paginatedArray);
3987
+ }, [order, orderBy]);
3988
+ useEffect(() => {
3989
+ if (order) {
3990
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3991
+ const sortedArray = handleSort(newArray);
3992
+ const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3993
+ setTableData(dados);
3994
+ }
3995
+ else {
3996
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3997
+ const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3998
+ setTableData(dados);
3999
+ }
4000
+ }, [page, rowsPerPage]);
4001
+ useEffect(() => {
4002
+ setValuesToFilter([]);
4003
+ setSelectedFilterValue(undefined);
4004
+ if (selectedTitle) {
4005
+ const values = [];
4006
+ const [prop] = columnTitles.filter((item) => item.label === selectedTitle);
4007
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
4008
+ newArray.forEach((item) => {
4009
+ const value = prop.transformer
4010
+ ? prop.transformer(getPropertyValue(item, prop.name))
4011
+ : String(getPropertyValue(item, prop.name));
4012
+ if (!values.includes(value))
4013
+ values.push(value);
4014
+ });
4015
+ setValuesToFilter(values);
4016
+ }
4017
+ }, [selectedTitle]);
4018
+ useEffect(() => {
4019
+ if (order) {
4020
+ const newArray = handleFilterBySearch(searchText);
4021
+ const sortedArray = handleSort(newArray);
4022
+ const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
4023
+ setTableData(dados);
4024
+ }
4025
+ else {
4026
+ const newArray = handleFilterBySearch(searchText);
4027
+ const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
4028
+ setTableData(dados);
4029
+ }
4030
+ }, [searchText]);
4031
+ useEffect(() => {
4032
+ updateFilters(selectedFilters);
4033
+ }, [selectedFilters]);
4034
+ return (React__default.createElement(Paper, null,
4035
+ isLoading && React__default.createElement(LinearProgress, null),
4036
+ React__default.createElement(FiltersBar, { setAnchorEl: setAnchorEl, setOpenSearch: setOpenSearch, searchAnchorEl: searchAnchorEl, noFilters: noFilters, noFilterButtons: noFilterButtons, selectedFilters: selectedFilters, customButtons: customButtons, handleCloseFilter: handleCloseFilter }),
4037
+ React__default.createElement(TableContainer, null,
4038
+ React__default.createElement(Table, { size: "small" },
4039
+ React__default.createElement(GridHeader, { titles: columnTitles, order: order, orderBy: orderBy, setOrder: setOrder, setOrderBy: setOrderBy }),
4040
+ React__default.createElement(TableBody, null,
4041
+ props.children ? (props.children) : primaryKey ? (React__default.createElement(AutoCreatedRows, { tableData: tableData, columns: columnTitles, primaryKey: primaryKey })) : null,
4042
+ footer))),
4043
+ !noPagination && (React__default.createElement(TablePagination, { page: page, component: "div", rowsPerPage: rowsPerPage, labelRowsPerPage: "Linhas por p\u00E1gina", rowsPerPageOptions: rowOptions, count: countRows, labelDisplayedRows: ({ page }) => `${page + 1} de ${Math.floor(countRows / rowsPerPage) + 1}`, onPageChange: (_, newPage) => {
4044
+ setPage(newPage);
4045
+ }, onRowsPerPageChange: handleChangeRowsPerPage })),
4046
+ React__default.createElement(Popover, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), anchorOrigin: {
4047
+ vertical: 'top',
4048
+ horizontal: 'right'
4049
+ }, transformOrigin: {
4050
+ vertical: 'top',
4051
+ horizontal: 'right'
4052
+ } },
4053
+ React__default.createElement(Box$2, { sx: { minWidth: 300, padding: 2 } },
4054
+ React__default.createElement(Typography, { fontWeight: "bold", variant: "body2" }, "Filtrar por:"),
4055
+ React__default.createElement(Autocomplete$1, { value: selectedTitle || '', onChange: ({ target }) => {
4056
+ !target.innerHTML.includes('path')
4057
+ ? setSelectedTitle(target.innerHTML)
4058
+ : setSelectedTitle(undefined);
4059
+ }, options: columnTitles.map((title) => title.label), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Coluna" }))) }),
4060
+ React__default.createElement(Autocomplete$1, { value: selectedFilterValue || '', onChange: ({ target }) => {
4061
+ !target.innerHTML.includes('path')
4062
+ ? setSelectedFilterValue(target.innerHTML)
4063
+ : setSelectedFilterValue(undefined);
4064
+ }, disabled: valuesToFilter.length < 1, options: valuesToFilter.map((title) => title), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Valor" }))) }),
4065
+ React__default.createElement(Box$2, { sx: { py: 1 } }),
4066
+ React__default.createElement(Button, { disabled: !selectedFilterValue, onClick: handleAddFilter, fullWidth: true }, "Adicionar filtro"))),
4067
+ React__default.createElement(Popover, { anchorEl: searchAnchorEl.current, open: openSearch, onClose: () => setOpenSearch(false), anchorOrigin: {
4068
+ vertical: 'top',
4069
+ horizontal: 'left'
4070
+ }, transformOrigin: {
4071
+ vertical: 'top',
4072
+ horizontal: 'left'
4073
+ } },
4074
+ React__default.createElement(Box$2, { sx: {
4075
+ minWidth: 300,
4076
+ px: 2,
4077
+ pb: 1,
4078
+ display: 'grid',
4079
+ gridTemplateColumns: '1fr 30px',
4080
+ alignItems: 'flex-end'
4081
+ } },
4082
+ React__default.createElement(TextField, { variant: "standard", margin: "dense", label: "Buscar", value: searchText, onChange: ({ currentTarget }) => setSearchText(currentTarget.value) }),
4083
+ React__default.createElement(Box$2, null,
4084
+ React__default.createElement(IconButton, { onClick: () => {
4085
+ setSearchText('');
4086
+ setOpenSearch(false);
4087
+ } },
4088
+ React__default.createElement(MdClose, { size: 8 * 3 })))))));
4089
4089
  };
4090
4090
 
4091
4091
  var moment$1 = {exports: {}};
@@ -9771,46 +9771,46 @@ var moment$1 = {exports: {}};
9771
9771
 
9772
9772
  var moment = moment$1.exports;
9773
9773
 
9774
- const DefaultInput = (allProps) => {
9775
- var _a;
9776
- const { TextFieldProps, onSave, name, onUpdateValue, rowData, type = 'text', fullWidth = true, isEditing, formatInputDefautvalue, setIsEditing, handleCancelEditing } = allProps;
9777
- const formatDefaultValue = (value) => {
9778
- if (formatInputDefautvalue)
9779
- return formatInputDefautvalue(value);
9780
- switch (type) {
9781
- case 'date':
9782
- return moment(value).format('YYYY-MM-DD');
9783
- case 'datetime-local':
9784
- return moment(value).format('YYYY-MM-DDTHH:mm:ss');
9785
- default:
9786
- return String(value);
9787
- }
9788
- };
9789
- const handleSave = (event) => {
9790
- var _a, _b, _c;
9791
- onUpdateValue(String((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
9792
- setIsEditing(false);
9793
- const response = {
9794
- name,
9795
- event,
9796
- value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
9797
- data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value })
9798
- };
9799
- onSave(response);
9800
- };
9801
- const onKeyDown = (ev) => {
9802
- if (ev.code === 'Enter')
9803
- handleSave(ev);
9804
- if (ev.code === 'Escape')
9805
- handleCancelEditing();
9806
- };
9807
- return (React__default.createElement(TextField, Object.assign({ name: name, focused: isEditing, onBlur: (ev) => handleSave(ev), autoFocus: true, type: type, size: "small", defaultValue: formatDefaultValue(rowData === null || rowData === void 0 ? void 0 : rowData[name]), sx: Object.assign({ width: fullWidth ? '100%' : 'intial' }, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.sx), inputProps: {
9808
- style: {
9809
- paddingBottom: 6,
9810
- paddingTop: 6
9811
- },
9812
- onKeyDown
9813
- }, InputProps: Object.assign(Object.assign({}, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps), { sx: Object.assign({ fontSize: 14, pl: 0.2 }, (_a = TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.sx) }) }, TextFieldProps)));
9774
+ const DefaultInput = (allProps) => {
9775
+ var _a;
9776
+ const { TextFieldProps, onSave, name, onUpdateValue, rowData, type = 'text', fullWidth = true, isEditing, formatInputDefautvalue, setIsEditing, handleCancelEditing } = allProps;
9777
+ const formatDefaultValue = (value) => {
9778
+ if (formatInputDefautvalue)
9779
+ return formatInputDefautvalue(value);
9780
+ switch (type) {
9781
+ case 'date':
9782
+ return moment(value).format('YYYY-MM-DD');
9783
+ case 'datetime-local':
9784
+ return moment(value).format('YYYY-MM-DDTHH:mm:ss');
9785
+ default:
9786
+ return String(value);
9787
+ }
9788
+ };
9789
+ const handleSave = (event) => {
9790
+ var _a, _b, _c;
9791
+ onUpdateValue(String((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
9792
+ setIsEditing(false);
9793
+ const response = {
9794
+ name,
9795
+ event,
9796
+ value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
9797
+ data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value })
9798
+ };
9799
+ onSave(response);
9800
+ };
9801
+ const onKeyDown = (ev) => {
9802
+ if (ev.code === 'Enter')
9803
+ handleSave(ev);
9804
+ if (ev.code === 'Escape')
9805
+ handleCancelEditing();
9806
+ };
9807
+ return (React__default.createElement(TextField, Object.assign({ name: name, focused: isEditing, onBlur: (ev) => handleSave(ev), autoFocus: true, type: type, size: "small", defaultValue: formatDefaultValue(rowData === null || rowData === void 0 ? void 0 : rowData[name]), sx: Object.assign({ width: fullWidth ? '100%' : 'intial' }, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.sx), inputProps: {
9808
+ style: {
9809
+ paddingBottom: 6,
9810
+ paddingTop: 6
9811
+ },
9812
+ onKeyDown
9813
+ }, InputProps: Object.assign(Object.assign({}, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps), { sx: Object.assign({ fontSize: 14, pl: 0.2 }, (_a = TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.sx) }) }, TextFieldProps)));
9814
9814
  };
9815
9815
 
9816
9816
  function _typeof(obj) {
@@ -14738,533 +14738,533 @@ function useIMask(opts) {
14738
14738
  };
14739
14739
  }
14740
14740
 
14741
- const InputMask$1 = (allProps) => {
14742
- var _a;
14743
- const { TextFieldProps, onSave, name, rowData, mask, fullWidth = true, isEditing, handleCancelEditing, setIsEditing } = allProps;
14744
- const { ref, unmaskedValue, setValue } = useIMask(mask);
14745
- const handleSave = (event) => {
14746
- var _a, _b, _c;
14747
- setIsEditing(false);
14748
- setValue(String((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
14749
- const response = {
14750
- name,
14751
- event,
14752
- value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
14753
- unmaskedValue,
14754
- data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value })
14755
- };
14756
- onSave(response);
14757
- };
14758
- const onKeyDown = (ev) => {
14759
- if (ev.code === 'Enter')
14760
- handleSave(ev);
14761
- if (ev.code === 'Escape')
14762
- handleCancelEditing();
14763
- };
14764
- useEffect(() => {
14765
- if (rowData === null || rowData === void 0 ? void 0 : rowData[name])
14766
- setValue(String(rowData === null || rowData === void 0 ? void 0 : rowData[name]));
14767
- }, [rowData === null || rowData === void 0 ? void 0 : rowData[name]]);
14768
- return (React__default.createElement(TextField, Object.assign({ inputRef: ref, name: name, focused: isEditing, onBlur: (ev) => handleSave(ev), autoFocus: true, size: "small", sx: Object.assign({ width: fullWidth ? '100%' : 'intial' }, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.sx), inputProps: {
14769
- style: {
14770
- paddingBottom: 6,
14771
- paddingTop: 6
14772
- },
14773
- onKeyDown
14774
- }, InputProps: Object.assign(Object.assign({}, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps), { sx: Object.assign({ fontSize: 14, pl: 0.2 }, (_a = TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.sx) }) }, TextFieldProps)));
14741
+ const InputMask$1 = (allProps) => {
14742
+ var _a;
14743
+ const { TextFieldProps, onSave, name, rowData, mask, fullWidth = true, isEditing, handleCancelEditing, setIsEditing } = allProps;
14744
+ const { ref, unmaskedValue, setValue } = useIMask(mask);
14745
+ const handleSave = (event) => {
14746
+ var _a, _b, _c;
14747
+ setIsEditing(false);
14748
+ setValue(String((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
14749
+ const response = {
14750
+ name,
14751
+ event,
14752
+ value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
14753
+ unmaskedValue,
14754
+ data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value })
14755
+ };
14756
+ onSave(response);
14757
+ };
14758
+ const onKeyDown = (ev) => {
14759
+ if (ev.code === 'Enter')
14760
+ handleSave(ev);
14761
+ if (ev.code === 'Escape')
14762
+ handleCancelEditing();
14763
+ };
14764
+ useEffect(() => {
14765
+ if (rowData === null || rowData === void 0 ? void 0 : rowData[name])
14766
+ setValue(String(rowData === null || rowData === void 0 ? void 0 : rowData[name]));
14767
+ }, [rowData === null || rowData === void 0 ? void 0 : rowData[name]]);
14768
+ return (React__default.createElement(TextField, Object.assign({ inputRef: ref, name: name, focused: isEditing, onBlur: (ev) => handleSave(ev), autoFocus: true, size: "small", sx: Object.assign({ width: fullWidth ? '100%' : 'intial' }, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.sx), inputProps: {
14769
+ style: {
14770
+ paddingBottom: 6,
14771
+ paddingTop: 6
14772
+ },
14773
+ onKeyDown
14774
+ }, InputProps: Object.assign(Object.assign({}, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps), { sx: Object.assign({ fontSize: 14, pl: 0.2 }, (_a = TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.sx) }) }, TextFieldProps)));
14775
14775
  };
14776
14776
 
14777
- const EditableTableCell = (allProps) => {
14778
- const { TextFieldProps, onSave = () => { }, onCancel, name, rowData = {}, mask, fullWidth = true, formatCellValue = (value) => value, formatInputDefautvalue, bordered, type, rowIndex } = allProps, props = __rest(allProps, ["TextFieldProps", "onSave", "onCancel", "name", "rowData", "mask", "fullWidth", "formatCellValue", "formatInputDefautvalue", "bordered", "type", "rowIndex"]);
14779
- const [isEditing, setIsEditing] = useState(false);
14780
- const [value, setValue] = useState(rowData === null || rowData === void 0 ? void 0 : rowData[name]);
14781
- const handleCancelEditing = () => {
14782
- setIsEditing(false);
14783
- if (onCancel)
14784
- onCancel();
14785
- };
14786
- return (React__default.createElement(TableCell, Object.assign({}, props, { sx: Object.assign(Object.assign({}, props.sx), { p: isEditing ? 0 : 'intial', border: bordered ? '1px solid' : 'initial', borderColor: 'divider' }), onDoubleClick: () => setIsEditing(true) }), isEditing ? (React__default.createElement(React__default.Fragment, null, mask ? (React__default.createElement(InputMask$1, { mask: mask, isEditing: isEditing, setIsEditing: setIsEditing, name: name, rowData: rowData, onSave: (props) => {
14787
- setValue(props.value);
14788
- onSave(props);
14789
- }, handleCancelEditing: handleCancelEditing, formatInputDefautvalue: formatInputDefautvalue })) : (React__default.createElement(DefaultInput, { onUpdateValue: (newValue) => {
14790
- setValue(newValue);
14791
- }, isEditing: isEditing, name: name, rowData: rowData, onSave: onSave, handleCancelEditing: handleCancelEditing, setIsEditing: setIsEditing, formatInputDefautvalue: formatInputDefautvalue, type: type })))) : (React__default.createElement(React__default.Fragment, null, formatCellValue(value)))));
14777
+ const EditableTableCell = (allProps) => {
14778
+ const { TextFieldProps, onSave = () => { }, onCancel, name, rowData = {}, mask, fullWidth = true, formatCellValue = (value) => value, formatInputDefautvalue, bordered, type, rowIndex } = allProps, props = __rest(allProps, ["TextFieldProps", "onSave", "onCancel", "name", "rowData", "mask", "fullWidth", "formatCellValue", "formatInputDefautvalue", "bordered", "type", "rowIndex"]);
14779
+ const [isEditing, setIsEditing] = useState(false);
14780
+ const [value, setValue] = useState(rowData === null || rowData === void 0 ? void 0 : rowData[name]);
14781
+ const handleCancelEditing = () => {
14782
+ setIsEditing(false);
14783
+ if (onCancel)
14784
+ onCancel();
14785
+ };
14786
+ return (React__default.createElement(TableCell, Object.assign({}, props, { sx: Object.assign(Object.assign({}, props.sx), { p: isEditing ? 0 : 'intial', border: bordered ? '1px solid' : 'initial', borderColor: 'divider' }), onDoubleClick: () => setIsEditing(true) }), isEditing ? (React__default.createElement(React__default.Fragment, null, mask ? (React__default.createElement(InputMask$1, { mask: mask, isEditing: isEditing, setIsEditing: setIsEditing, name: name, rowData: rowData, onSave: (props) => {
14787
+ setValue(props.value);
14788
+ onSave(props);
14789
+ }, handleCancelEditing: handleCancelEditing, formatInputDefautvalue: formatInputDefautvalue })) : (React__default.createElement(DefaultInput, { onUpdateValue: (newValue) => {
14790
+ setValue(newValue);
14791
+ }, isEditing: isEditing, name: name, rowData: rowData, onSave: onSave, handleCancelEditing: handleCancelEditing, setIsEditing: setIsEditing, formatInputDefautvalue: formatInputDefautvalue, type: type })))) : (React__default.createElement(React__default.Fragment, null, formatCellValue(value)))));
14792
14792
  };
14793
14793
 
14794
- const Input = (_a) => {
14795
- var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14796
- if (withFormik)
14797
- return React__default.createElement(FormikInput, Object.assign({}, rest));
14798
- else
14799
- return React__default.createElement(BaseInput$1, Object.assign({}, rest));
14800
- };
14801
- const BaseInput$1 = (props) => {
14802
- return React__default.createElement(TextField, Object.assign({ fullWidth: true }, props));
14803
- };
14804
- const FormikInput = (_a) => {
14805
- var { name, shrink } = _a, rest = __rest(_a, ["name", "shrink"]);
14806
- return (React__default.createElement(Field, { name: name }, (_a) => {
14807
- var _b = _a.field, { value } = _b, field = __rest(_b, ["value"]);
14808
- return (React__default.createElement(BaseInput$1, Object.assign({ defaultValue: value }, field, rest, { InputLabelProps: Object.assign({ shrink }, rest.InputLabelProps) })));
14809
- }));
14794
+ const Input = (_a) => {
14795
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14796
+ if (withFormik)
14797
+ return React__default.createElement(FormikInput, Object.assign({}, rest));
14798
+ else
14799
+ return React__default.createElement(BaseInput$1, Object.assign({}, rest));
14800
+ };
14801
+ const BaseInput$1 = (props) => {
14802
+ return React__default.createElement(TextField, Object.assign({ fullWidth: true }, props));
14803
+ };
14804
+ const FormikInput = (_a) => {
14805
+ var { name, shrink } = _a, rest = __rest(_a, ["name", "shrink"]);
14806
+ return (React__default.createElement(Field, { name: name }, (_a) => {
14807
+ var _b = _a.field, { value } = _b, field = __rest(_b, ["value"]);
14808
+ return (React__default.createElement(BaseInput$1, Object.assign({ defaultValue: value }, field, rest, { InputLabelProps: Object.assign({ shrink }, rest.InputLabelProps) })));
14809
+ }));
14810
14810
  };
14811
14811
 
14812
- function InputMask(_a) {
14813
- var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14814
- if (withFormik)
14815
- return React__default.createElement(FormikInputMask, Object.assign({}, rest));
14816
- else
14817
- return React__default.createElement(BaseInputMask, Object.assign({}, rest));
14818
- }
14819
- const BaseInputMask = (_a) => {
14820
- var { mask, defaultValue, onChangeValue } = _a, rest = __rest(_a, ["mask", "defaultValue", "onChangeValue"]);
14821
- const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14822
- useEffect(() => {
14823
- if (!value)
14824
- setValue(String(defaultValue));
14825
- }, [defaultValue]);
14826
- useEffect(() => {
14827
- if (onChangeValue)
14828
- onChangeValue(value, unmaskedValue);
14829
- }, [value]);
14830
- return React__default.createElement(BaseInput$1, Object.assign({ inputRef: ref }, rest));
14831
- };
14832
- function FormikInputMask(_a) {
14833
- var { mask, defaultValue, name } = _a, rest = __rest(_a, ["mask", "defaultValue", "name"]);
14834
- const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14835
- const initialValue = useRef();
14836
- const formikSaveFunction = useRef();
14837
- useEffect(() => {
14838
- if (!value && defaultValue)
14839
- setValue(String(defaultValue));
14840
- else if (initialValue.current) {
14841
- setValue(String(initialValue.current));
14842
- }
14843
- }, [defaultValue]);
14844
- useEffect(() => {
14845
- if (formikSaveFunction.current)
14846
- formikSaveFunction.current(name, unmaskedValue);
14847
- }, [value]);
14848
- return (React__default.createElement(Field, { name: name }, (_a) => {
14849
- var _b = _a.field, { value } = _b, field = __rest(_b, ["value"]), { form: { setFieldValue } } = _a;
14850
- initialValue.current = value;
14851
- formikSaveFunction.current = setFieldValue;
14852
- return React__default.createElement(BaseInput$1, Object.assign({}, rest, field, { inputRef: ref }));
14853
- }));
14854
- }
14855
-
14856
- const CustomInputLabel = InputLabel;
14857
- const Select = (_a) => {
14858
- var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14859
- if (withFormik)
14860
- return React__default.createElement(FormikSelect, Object.assign({}, rest));
14861
- else
14862
- return React__default.createElement(BaseSelect, Object.assign({}, rest));
14863
- };
14864
- const BaseSelect = (_a) => {
14865
- var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14866
- return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14867
- React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14868
- React__default.createElement(Select$1, Object.assign({ name: name, inputProps: {
14869
- name
14870
- }, label: label }, rest), children)));
14871
- };
14872
- const FormikSelect = (_a) => {
14873
- var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14874
- const [_b, meta, { setValue }] = useField({ name }), { value } = _b, field = __rest(_b, ["value"]);
14875
- const onChange = (_, { props: { value } }) => {
14876
- setValue(value);
14877
- };
14878
- return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14879
- React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14880
- React__default.createElement(Select$1, Object.assign({ inputProps: {
14881
- name
14882
- }, label: label }, rest, field, { defaultValue: value, onChange: onChange }), children)));
14812
+ function InputMask(_a) {
14813
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14814
+ if (withFormik)
14815
+ return React__default.createElement(FormikInputMask, Object.assign({}, rest));
14816
+ else
14817
+ return React__default.createElement(BaseInputMask, Object.assign({}, rest));
14818
+ }
14819
+ const BaseInputMask = (_a) => {
14820
+ var { mask, defaultValue, onChangeValue } = _a, rest = __rest(_a, ["mask", "defaultValue", "onChangeValue"]);
14821
+ const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14822
+ useEffect(() => {
14823
+ if (!value)
14824
+ setValue(String(defaultValue));
14825
+ }, [defaultValue]);
14826
+ useEffect(() => {
14827
+ if (onChangeValue)
14828
+ onChangeValue(value, unmaskedValue);
14829
+ }, [value]);
14830
+ return React__default.createElement(BaseInput$1, Object.assign({ inputRef: ref }, rest));
14831
+ };
14832
+ function FormikInputMask(_a) {
14833
+ var { mask, defaultValue, name } = _a, rest = __rest(_a, ["mask", "defaultValue", "name"]);
14834
+ const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14835
+ const initialValue = useRef();
14836
+ const formikSaveFunction = useRef();
14837
+ useEffect(() => {
14838
+ if (!value && defaultValue)
14839
+ setValue(String(defaultValue));
14840
+ else if (initialValue.current) {
14841
+ setValue(String(initialValue.current));
14842
+ }
14843
+ }, [defaultValue]);
14844
+ useEffect(() => {
14845
+ if (formikSaveFunction.current)
14846
+ formikSaveFunction.current(name, unmaskedValue);
14847
+ }, [value]);
14848
+ return (React__default.createElement(Field, { name: name }, (_a) => {
14849
+ var _b = _a.field, { value } = _b, field = __rest(_b, ["value"]), { form: { setFieldValue } } = _a;
14850
+ initialValue.current = value;
14851
+ formikSaveFunction.current = setFieldValue;
14852
+ return React__default.createElement(BaseInput$1, Object.assign({}, rest, field, { inputRef: ref }));
14853
+ }));
14854
+ }
14855
+
14856
+ const CustomInputLabel = InputLabel;
14857
+ const Select = (_a) => {
14858
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14859
+ if (withFormik)
14860
+ return React__default.createElement(FormikSelect, Object.assign({}, rest));
14861
+ else
14862
+ return React__default.createElement(BaseSelect, Object.assign({}, rest));
14863
+ };
14864
+ const BaseSelect = (_a) => {
14865
+ var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14866
+ return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14867
+ React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14868
+ React__default.createElement(Select$1, Object.assign({ name: name, inputProps: {
14869
+ name
14870
+ }, label: label }, rest), children)));
14871
+ };
14872
+ const FormikSelect = (_a) => {
14873
+ var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14874
+ const [_b, meta, { setValue }] = useField({ name }), { value } = _b, field = __rest(_b, ["value"]);
14875
+ const onChange = (_, { props: { value } }) => {
14876
+ setValue(value);
14877
+ };
14878
+ return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14879
+ React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14880
+ React__default.createElement(Select$1, Object.assign({ inputProps: {
14881
+ name
14882
+ }, label: label }, rest, field, { defaultValue: value, onChange: onChange }), children)));
14883
14883
  };
14884
14884
 
14885
- function Autocomplete(_a) {
14886
- var { withFormik = true, name, getOptionValue } = _a, rest = __rest(_a, ["withFormik", "name", "getOptionValue"]);
14887
- if (withFormik) {
14888
- return (React__default.createElement(FormikAutocomplete, Object.assign({ name: name, getOptionValue: getOptionValue }, rest)));
14889
- }
14890
- else
14891
- return React__default.createElement(BaseInput, Object.assign({}, rest));
14892
- }
14893
- function BaseInput(props) {
14894
- return (React__default.createElement(Autocomplete$1, Object.assign({ fullWidth: true, renderInput: (params) => React__default.createElement(TextField, Object.assign({ label: props.label }, params)) }, props)));
14895
- }
14896
- function FormikAutocomplete(_a) {
14897
- var { getOptionValue, option } = _a, props = __rest(_a, ["getOptionValue", "option"]);
14898
- const [_b, , { setValue }] = useField({
14899
- name: props.name
14900
- }), { value: defaultValue } = _b, field = __rest(_b, ["value"]);
14901
- const defaultOption = useMemo(() => {
14902
- const key = option === null || option === void 0 ? void 0 : option.key;
14903
- if (key)
14904
- return props.options.find((option) => option[key] === defaultValue);
14905
- else
14906
- return props.options.find((option) => Object.values(option)[0] === defaultValue);
14907
- }, []);
14908
- const onChange = (_, newValue) => {
14909
- const value = option === null || option === void 0 ? void 0 : option.value;
14910
- if (getOptionValue) {
14911
- setValue(getOptionValue(newValue));
14912
- }
14913
- else if (value) {
14914
- setValue(newValue[value]);
14915
- }
14916
- else
14917
- setValue(newValue);
14918
- };
14919
- const getOptionLabel = (item) => {
14920
- if (props === null || props === void 0 ? void 0 : props.getOptionLabel)
14921
- return props.getOptionLabel(item);
14922
- else if (option === null || option === void 0 ? void 0 : option.label)
14923
- return String(item[option.label]);
14924
- return '[getOptionLabel] error';
14925
- };
14926
- const isOptionEqualToValue = (a, b) => {
14927
- const key = option === null || option === void 0 ? void 0 : option.key;
14928
- if (props === null || props === void 0 ? void 0 : props.isOptionEqualToValue)
14929
- return props.isOptionEqualToValue(a, b);
14930
- else if (key)
14931
- return a[key] === b[key];
14932
- return Object.values(a)[0] === Object.values(b)[0];
14933
- };
14934
- return (React__default.createElement(Autocomplete$1, Object.assign({ getOptionLabel: getOptionLabel, renderInput: (params) => (React__default.createElement(TextField, Object.assign({}, params, field, { label: props.label }))), defaultValue: defaultOption, onChange: onChange, isOptionEqualToValue: isOptionEqualToValue }, props)));
14935
- }
14936
-
14937
- const Checkbox = (_a) => {
14938
- var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14939
- if (withFormik && name)
14940
- return React__default.createElement(FormikCheckbox, Object.assign({ name: name }, props));
14941
- else
14942
- return React__default.createElement(BaseCheckbox, Object.assign({}, props));
14943
- };
14944
- const BaseCheckbox = (_a) => {
14945
- var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14946
- return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Checkbox$1, Object.assign({}, props)) }, FormControlLabelProps)));
14947
- };
14948
- const FormikCheckbox = (_a) => {
14949
- var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14950
- const [_b, , { setValue }] = useField({
14951
- name
14952
- }), { value, onChange: unused } = _b, field = __rest(_b, ["value", "onChange"]);
14953
- const onChange = (_, value) => {
14954
- setValue(value);
14955
- };
14956
- return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Checkbox$1, Object.assign({}, props, { defaultChecked: value })) }, field, FormControlLabelProps)));
14885
+ function Autocomplete(_a) {
14886
+ var { withFormik = true, name, getOptionValue } = _a, rest = __rest(_a, ["withFormik", "name", "getOptionValue"]);
14887
+ if (withFormik) {
14888
+ return (React__default.createElement(FormikAutocomplete, Object.assign({ name: name, getOptionValue: getOptionValue }, rest)));
14889
+ }
14890
+ else
14891
+ return React__default.createElement(BaseInput, Object.assign({}, rest));
14892
+ }
14893
+ function BaseInput(props) {
14894
+ return (React__default.createElement(Autocomplete$1, Object.assign({ fullWidth: true, renderInput: (params) => React__default.createElement(TextField, Object.assign({ label: props.label }, params)) }, props)));
14895
+ }
14896
+ function FormikAutocomplete(_a) {
14897
+ var { getOptionValue, option } = _a, props = __rest(_a, ["getOptionValue", "option"]);
14898
+ const [_b, , { setValue }] = useField({
14899
+ name: props.name
14900
+ }), { value: defaultValue } = _b, field = __rest(_b, ["value"]);
14901
+ const defaultOption = useMemo(() => {
14902
+ const key = option === null || option === void 0 ? void 0 : option.key;
14903
+ if (key)
14904
+ return props.options.find((option) => option[key] === defaultValue);
14905
+ else
14906
+ return props.options.find((option) => Object.values(option)[0] === defaultValue);
14907
+ }, []);
14908
+ const onChange = (_, newValue) => {
14909
+ const value = option === null || option === void 0 ? void 0 : option.value;
14910
+ if (getOptionValue) {
14911
+ setValue(getOptionValue(newValue));
14912
+ }
14913
+ else if (value) {
14914
+ setValue(newValue[value]);
14915
+ }
14916
+ else
14917
+ setValue(newValue);
14918
+ };
14919
+ const getOptionLabel = (item) => {
14920
+ if (props === null || props === void 0 ? void 0 : props.getOptionLabel)
14921
+ return props.getOptionLabel(item);
14922
+ else if (option === null || option === void 0 ? void 0 : option.label)
14923
+ return String(item[option.label]);
14924
+ return '[getOptionLabel] error';
14925
+ };
14926
+ const isOptionEqualToValue = (a, b) => {
14927
+ const key = option === null || option === void 0 ? void 0 : option.key;
14928
+ if (props === null || props === void 0 ? void 0 : props.isOptionEqualToValue)
14929
+ return props.isOptionEqualToValue(a, b);
14930
+ else if (key)
14931
+ return a[key] === b[key];
14932
+ return Object.values(a)[0] === Object.values(b)[0];
14933
+ };
14934
+ return (React__default.createElement(Autocomplete$1, Object.assign({ getOptionLabel: getOptionLabel, renderInput: (params) => (React__default.createElement(TextField, Object.assign({}, params, field, { label: props.label }))), defaultValue: defaultOption, onChange: onChange, isOptionEqualToValue: isOptionEqualToValue }, props)));
14935
+ }
14936
+
14937
+ const Checkbox = (_a) => {
14938
+ var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14939
+ if (withFormik && name)
14940
+ return React__default.createElement(FormikCheckbox, Object.assign({ name: name }, props));
14941
+ else
14942
+ return React__default.createElement(BaseCheckbox, Object.assign({}, props));
14943
+ };
14944
+ const BaseCheckbox = (_a) => {
14945
+ var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14946
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Checkbox$1, Object.assign({}, props)) }, FormControlLabelProps)));
14947
+ };
14948
+ const FormikCheckbox = (_a) => {
14949
+ var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14950
+ const [_b, , { setValue }] = useField({
14951
+ name
14952
+ }), { value, onChange: unused } = _b, field = __rest(_b, ["value", "onChange"]);
14953
+ const onChange = (_, value) => {
14954
+ setValue(value);
14955
+ };
14956
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Checkbox$1, Object.assign({}, props, { defaultChecked: value })) }, field, FormControlLabelProps)));
14957
14957
  };
14958
14958
 
14959
- const Switch = (_a) => {
14960
- var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14961
- if (withFormik && name)
14962
- return React__default.createElement(FormikSwitch, Object.assign({ name: name }, props));
14963
- else
14964
- return React__default.createElement(BaseSwitch, Object.assign({}, props));
14965
- };
14966
- const BaseSwitch = (_a) => {
14967
- var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14968
- return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Switch$1, Object.assign({}, props)) }, FormControlLabelProps)));
14969
- };
14970
- const FormikSwitch = (_a) => {
14971
- var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14972
- const [_b, , { setValue }] = useField({
14973
- name
14974
- }), { value, onChange: unused } = _b, field = __rest(_b, ["value", "onChange"]);
14975
- const onChange = (_, value) => {
14976
- setValue(value);
14977
- };
14978
- return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Switch$1, Object.assign({}, props, { defaultChecked: value })) }, field, FormControlLabelProps)));
14959
+ const Switch = (_a) => {
14960
+ var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14961
+ if (withFormik && name)
14962
+ return React__default.createElement(FormikSwitch, Object.assign({ name: name }, props));
14963
+ else
14964
+ return React__default.createElement(BaseSwitch, Object.assign({}, props));
14965
+ };
14966
+ const BaseSwitch = (_a) => {
14967
+ var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14968
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Switch$1, Object.assign({}, props)) }, FormControlLabelProps)));
14969
+ };
14970
+ const FormikSwitch = (_a) => {
14971
+ var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14972
+ const [_b, , { setValue }] = useField({
14973
+ name
14974
+ }), { value, onChange: unused } = _b, field = __rest(_b, ["value", "onChange"]);
14975
+ const onChange = (_, value) => {
14976
+ setValue(value);
14977
+ };
14978
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Switch$1, Object.assign({}, props, { defaultChecked: value })) }, field, FormControlLabelProps)));
14979
14979
  };
14980
14980
 
14981
- const Radio = (_a) => {
14982
- var { name, withFormik = true } = _a, rest = __rest(_a, ["name", "withFormik"]);
14983
- if (withFormik && name)
14984
- return React__default.createElement(FormikRadio, Object.assign({ name: name }, rest));
14985
- else
14986
- return React__default.createElement(BaseRadio, Object.assign({}, rest));
14987
- };
14988
- const BaseRadio = (_a) => {
14989
- var { label, options } = _a, rest = __rest(_a, ["label", "options"]);
14990
- return (React__default.createElement(FormControl, null,
14991
- label && React__default.createElement(FormLabel, null, label),
14992
- React__default.createElement(RadioGroup, Object.assign({}, rest), options.map((option) => (React__default.createElement(FormControlLabel, { key: String(option.value), value: option.value, label: option.label, control: React__default.createElement(Radio$1, null) }))))));
14993
- };
14994
- const FormikRadio = (_a) => {
14995
- var { label, name, options } = _a, rest = __rest(_a, ["label", "name", "options"]);
14996
- const onChange = (setFieldValue, value) => {
14997
- setFieldValue(name, value);
14998
- };
14999
- return (React__default.createElement(Field, null, ({ field: { value }, form: { setFieldValue } }) => (React__default.createElement(FormControl, null,
15000
- label && React__default.createElement(FormLabel, null, label),
15001
- React__default.createElement(RadioGroup, Object.assign({ defaultValue: value, onChange: (_, value) => onChange(setFieldValue, value) }, rest), options.map((option) => (React__default.createElement(FormControlLabel, { key: String(option.value), value: option.value, label: option.label, control: React__default.createElement(Radio$1, null) }))))))));
14981
+ const Radio = (_a) => {
14982
+ var { name, withFormik = true } = _a, rest = __rest(_a, ["name", "withFormik"]);
14983
+ if (withFormik && name)
14984
+ return React__default.createElement(FormikRadio, Object.assign({ name: name }, rest));
14985
+ else
14986
+ return React__default.createElement(BaseRadio, Object.assign({}, rest));
14987
+ };
14988
+ const BaseRadio = (_a) => {
14989
+ var { label, options } = _a, rest = __rest(_a, ["label", "options"]);
14990
+ return (React__default.createElement(FormControl, null,
14991
+ label && React__default.createElement(FormLabel, null, label),
14992
+ React__default.createElement(RadioGroup, Object.assign({}, rest), options.map((option) => (React__default.createElement(FormControlLabel, { key: String(option.value), value: option.value, label: option.label, control: React__default.createElement(Radio$1, null) }))))));
14993
+ };
14994
+ const FormikRadio = (_a) => {
14995
+ var { label, name, options } = _a, rest = __rest(_a, ["label", "name", "options"]);
14996
+ const onChange = (setFieldValue, value) => {
14997
+ setFieldValue(name, value);
14998
+ };
14999
+ return (React__default.createElement(Field, null, ({ field: { value }, form: { setFieldValue } }) => (React__default.createElement(FormControl, null,
15000
+ label && React__default.createElement(FormLabel, null, label),
15001
+ React__default.createElement(RadioGroup, Object.assign({ defaultValue: value, onChange: (_, value) => onChange(setFieldValue, value) }, rest), options.map((option) => (React__default.createElement(FormControlLabel, { key: String(option.value), value: option.value, label: option.label, control: React__default.createElement(Radio$1, null) }))))))));
15002
15002
  };
15003
15003
 
15004
- const LargeButton = (_a) => {
15005
- var { loading, children, CircularProgressProps, sx } = _a, rest = __rest(_a, ["loading", "children", "CircularProgressProps", "sx"]);
15006
- return (React__default.createElement(Button, Object.assign({ variant: "contained", fullWidth: true, sx: Object.assign({ color: '#fff', fontWeight: 'bold' }, sx), disabled: rest.disabled || loading }, rest), loading ? (React__default.createElement(CircularProgress, Object.assign({ size: 25, color: "inherit" }, CircularProgressProps))) : (children)));
15004
+ const LargeButton = (_a) => {
15005
+ var { loading, children, CircularProgressProps, sx } = _a, rest = __rest(_a, ["loading", "children", "CircularProgressProps", "sx"]);
15006
+ return (React__default.createElement(Button, Object.assign({ variant: "contained", fullWidth: true, sx: Object.assign({ color: '#fff', fontWeight: 'bold' }, sx), disabled: rest.disabled || loading }, rest), loading ? (React__default.createElement(CircularProgress, Object.assign({ size: 25, color: "inherit" }, CircularProgressProps))) : (children)));
15007
15007
  };
15008
15008
 
15009
- function getTabProps(index) {
15010
- return {
15011
- id: `tab-${index}`,
15012
- 'aria-controls': `tabpanel-${index}`
15013
- };
15014
- }
15015
- const TabPanel = (props) => {
15016
- const { children, value, index } = props, other = __rest(props, ["children", "value", "index"]);
15017
- return (React__default.createElement("div", Object.assign({ role: "tabpanel", hidden: value !== index, id: `tabpanel-${index}`, "aria-labelledby": `tab-${index}` }, other), value === index && React__default.createElement(React__default.Fragment, null, children)));
15009
+ function getTabProps(index) {
15010
+ return {
15011
+ id: `tab-${index}`,
15012
+ 'aria-controls': `tabpanel-${index}`
15013
+ };
15014
+ }
15015
+ const TabPanel = (props) => {
15016
+ const { children, value, index } = props, other = __rest(props, ["children", "value", "index"]);
15017
+ return (React__default.createElement("div", Object.assign({ role: "tabpanel", hidden: value !== index, id: `tabpanel-${index}`, "aria-labelledby": `tab-${index}` }, other), value === index && React__default.createElement(React__default.Fragment, null, children)));
15018
15018
  };
15019
15019
 
15020
- const GridPagination = ({ currentPage, totalNumberOfPages, onPageChange, rowsPerPageOptions, setRowsPerPage, rowsPerPage, dense }) => {
15021
- return (React__default.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", width: "100%", py: dense ? 0.5 : 1 },
15022
- React__default.createElement(Box$2, null),
15023
- React__default.createElement(Stack, { direction: "row", alignItems: "center" },
15024
- React__default.createElement(Select$1, { variant: "standard", size: "small", margin: "dense", sx: { width: 60, mr: 2, textAlign: 'center', fontSize: 13 }, value: rowsPerPage, onChange: ({ target }) => setRowsPerPage(parseInt(target.value)) }, rowsPerPageOptions.map((option) => (React__default.createElement(MenuItem, { key: option, value: option }, option)))),
15025
- React__default.createElement(Typography, { variant: "body2" },
15026
- currentPage + 1,
15027
- " de ",
15028
- totalNumberOfPages + 1),
15029
- React__default.createElement(IconButton, { size: "small", disabled: currentPage === 0, onClick: () => onPageChange(currentPage - 1) },
15030
- React__default.createElement(MdArrowBackIosNew, { size: 8 * 2 })),
15031
- React__default.createElement(IconButton, { size: "small", disabled: currentPage === totalNumberOfPages, onClick: () => onPageChange(currentPage + 1) },
15032
- React__default.createElement(MdArrowForwardIos, { size: 8 * 2 })))));
15020
+ const GridPagination = ({ currentPage, totalNumberOfPages, onPageChange, rowsPerPageOptions, setRowsPerPage, rowsPerPage, dense }) => {
15021
+ return (React__default.createElement(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", width: "100%", py: dense ? 0.5 : 1 },
15022
+ React__default.createElement(Box$2, null),
15023
+ React__default.createElement(Stack, { direction: "row", alignItems: "center" },
15024
+ React__default.createElement(Select$1, { variant: "standard", size: "small", margin: "dense", sx: { width: 60, mr: 2, textAlign: 'center', fontSize: 13 }, value: rowsPerPage, onChange: ({ target }) => setRowsPerPage(parseInt(target.value)) }, rowsPerPageOptions.map((option) => (React__default.createElement(MenuItem, { key: option, value: option }, option)))),
15025
+ React__default.createElement(Typography, { variant: "body2" },
15026
+ currentPage + 1,
15027
+ " de ",
15028
+ totalNumberOfPages + 1),
15029
+ React__default.createElement(IconButton, { size: "small", disabled: currentPage === 0, onClick: () => onPageChange(currentPage - 1) },
15030
+ React__default.createElement(MdArrowBackIosNew, { size: 8 * 2 })),
15031
+ React__default.createElement(IconButton, { size: "small", disabled: currentPage === totalNumberOfPages, onClick: () => onPageChange(currentPage + 1) },
15032
+ React__default.createElement(MdArrowForwardIos, { size: 8 * 2 })))));
15033
15033
  };
15034
15034
 
15035
- function BaseGrid({ columns, children, fixedColumns, paperProps, tableBodyProps, tableHeadProps, tableProps, sortedDirection, sortedBy, onSortBy, dense = true, striped, bordered, currentPage, totalNumberOfPages, onPageChange, rowsPerPage, setRowsPerPage, rowsPerPageOptions }) {
15036
- return (React__default.createElement(Paper, Object.assign({}, paperProps, { sx: Object.assign({ 'tr td': {
15037
- py: dense ? 0.23 : 0.7,
15038
- border: bordered ? '1px solid' : '',
15039
- borderColor: 'divider'
15040
- }, 'tr:nth-of-type(even)': {
15041
- transition: 'background-color ease 200ms',
15042
- bgcolor: striped ? 'divider' : 'initial'
15043
- }, width: fixedColumns ? 'fit-content' : '100' }, paperProps === null || paperProps === void 0 ? void 0 : paperProps.sx) }),
15044
- React__default.createElement(Table, Object.assign({ size: "small", stickyHeader: true }, tableProps, { sx: Object.assign({}, tableProps === null || tableProps === void 0 ? void 0 : tableProps.sx) }),
15045
- React__default.createElement(TableHead, Object.assign({}, tableHeadProps),
15046
- React__default.createElement(TableRow, null, columns.map((column) => (React__default.createElement(TableCell, { key: column.name, padding: dense ? 'none' : 'normal', sx: Object.assign({ pl: 2 }, column === null || column === void 0 ? void 0 : column.sx) },
15047
- React__default.createElement(TableSortLabel, { active: sortedBy === column.name, direction: sortedDirection, onClick: () => onSortBy(column.name), disabled: column.canSort === false, sx: { position: 'relative', right: '-9px' } }, column.label)))))),
15048
- React__default.createElement(TableBody, Object.assign({}, tableBodyProps), children)),
15049
- React__default.createElement(GridPagination, { rowsPerPageOptions: rowsPerPageOptions, currentPage: currentPage, totalNumberOfPages: totalNumberOfPages, onPageChange: onPageChange, setRowsPerPage: setRowsPerPage, rowsPerPage: rowsPerPage, dense: dense })));
15050
- }
15051
-
15052
- function useFilter() {
15053
- const [selectedFilters, setSelectedFilters] = useState([]);
15054
- const filterBy = (newFilter) => {
15055
- const propToCompare = newFilter.id ? 'id' : 'prop';
15056
- function removeRepeatedFilters(filter) {
15057
- return filter[propToCompare] !== newFilter[propToCompare];
15058
- }
15059
- setSelectedFilters((filters) => [
15060
- ...filters.filter(removeRepeatedFilters),
15061
- newFilter
15062
- ]);
15063
- };
15064
- const removeFilter = (prop) => {
15065
- setSelectedFilters(selectedFilters.filter((filter) => filter.prop !== prop));
15066
- };
15067
- function clearAllFilters() {
15068
- setSelectedFilters([]);
15069
- }
15070
- return {
15071
- filters: selectedFilters,
15072
- filterBy,
15073
- removeFilter,
15074
- createFilter,
15075
- clearAllFilters
15076
- };
15077
- }
15078
- function getObjectValue(obj) {
15079
- return (prop) => prop.split('.').reduce((o, k) => o[k], obj);
15080
- }
15081
- function isDate(date) {
15082
- if (date instanceof Date)
15083
- return true;
15084
- else if (String(date).endsWith('Z'))
15085
- return true;
15086
- return false;
15087
- }
15088
- function compareFilter(item, filter) {
15089
- const itemValue = getObjectValue(item)(filter.prop);
15090
- switch (filter.compareType) {
15091
- case 'equal':
15092
- return itemValue === filter.value;
15093
- case 'gte':
15094
- return isDate(itemValue)
15095
- ? moment(String(itemValue)).isSameOrAfter(filter.value)
15096
- : itemValue >= filter.value;
15097
- case 'gt':
15098
- return isDate(itemValue)
15099
- ? moment(String(itemValue)).isAfter(filter.value)
15100
- : itemValue > filter.value;
15101
- case 'lte':
15102
- return isDate(itemValue)
15103
- ? moment(String(itemValue)).isSameOrBefore(filter.value)
15104
- : itemValue <= filter.value;
15105
- case 'lt':
15106
- return isDate(itemValue)
15107
- ? moment(String(itemValue)).isBefore(filter.value)
15108
- : itemValue < filter.value;
15109
- }
15110
- return false;
15111
- }
15112
- function createFilter(filters) {
15113
- function apply(item) {
15114
- const satisfiedFilters = filters.reduce((acc, filter) => {
15115
- if (compareFilter(item, filter))
15116
- acc += 1;
15117
- return acc;
15118
- }, 0);
15119
- return satisfiedFilters === filters.length;
15120
- }
15121
- return {
15122
- apply
15123
- };
15124
- }
15125
-
15126
- function useGrid({ columns, filters = [], rowsPerPageOptions = [30, 60, 100] }) {
15127
- const [defaultData, setDefaultData] = useState([]);
15128
- const [sortedBy, setSortedBy] = useState('');
15129
- const [sortedDirection, setSortedDirection] = useState('desc');
15130
- const [currentPage, setCurrentPage] = useState(0);
15131
- const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageOptions[0]);
15132
- const toggleSortedDirection = () => {
15133
- if (sortedDirection === 'desc')
15134
- setSortedDirection('asc');
15135
- if (sortedDirection === 'asc')
15136
- setSortedDirection('desc');
15137
- };
15138
- const onSortBy = (prop) => {
15139
- if (!prop)
15140
- return;
15141
- if (prop === sortedBy) {
15142
- if (sortedDirection === 'asc') {
15143
- toggleSortedDirection();
15144
- setSortedBy('');
15145
- }
15146
- else
15147
- toggleSortedDirection();
15148
- }
15149
- else {
15150
- setSortedDirection('desc');
15151
- setSortedBy(prop);
15152
- }
15153
- };
15154
- const set = (data) => {
15155
- setDefaultData(data);
15156
- };
15157
- const sortData = (data) => {
15158
- if (sortedBy) {
15159
- return data.sort((a, b) => {
15160
- const compare = b[sortedBy] > a[sortedBy];
15161
- if (sortedDirection === 'asc')
15162
- return compare ? 1 : -1;
15163
- return compare ? -1 : 1;
15164
- });
15165
- }
15166
- else
15167
- return data;
15168
- };
15169
- const onPageChange = (pageNumber) => {
15170
- if (pageNumber < 0)
15171
- return;
15172
- if (pageNumber > totalNumberOfPages)
15173
- return;
15174
- setCurrentPage(pageNumber);
15175
- };
15176
- const onChangeRowsPerPage = (rows) => {
15177
- let totalNumberOfPages = Math.round(filteredData.length / rows) - 1;
15178
- totalNumberOfPages = totalNumberOfPages <= 0 ? 0 : 1;
15179
- if (currentPage > totalNumberOfPages)
15180
- setCurrentPage(totalNumberOfPages);
15181
- setRowsPerPage(rows);
15182
- };
15183
- const filteredData = useMemo(() => {
15184
- const newData = defaultData.slice(0);
15185
- const newFilter = createFilter(filters);
15186
- return newData.filter(newFilter.apply);
15187
- }, [defaultData, filters]);
15188
- const displayData = useMemo(() => {
15189
- const sortedData = sortData(filteredData);
15190
- const startPage = currentPage * rowsPerPage;
15191
- const endPage = startPage + rowsPerPage;
15192
- return sortedData.slice(startPage, endPage);
15193
- }, [sortedBy, sortedDirection, filteredData, currentPage, rowsPerPage]);
15194
- const totalNumberOfPages = Math.round(filteredData.length / rowsPerPage) - 1;
15195
- return {
15196
- data: displayData,
15197
- set,
15198
- onSortBy,
15199
- sortedBy,
15200
- defaultData,
15201
- sortedDirection,
15202
- columns,
15203
- currentPage,
15204
- totalNumberOfPages: totalNumberOfPages < 0 ? 0 : totalNumberOfPages,
15205
- onPageChange,
15206
- setRowsPerPage: onChangeRowsPerPage,
15207
- rowsPerPageOptions,
15208
- rowsPerPage
15209
- };
15210
- }
15211
-
15212
- /* eslint no-undef: "off" */
15213
- function useEvent(event, handler, passive = false) {
15214
- useEffect(() => {
15215
- window.addEventListener(event, handler, passive);
15216
- return function cleanup() {
15217
- window.removeEventListener(event, handler);
15218
- };
15219
- });
15220
- }
15221
-
15222
- function useLoading() {
15223
- const [state, setState] = useState([]);
15224
- const isLoading = (prop) => state.includes(prop);
15225
- const setLoading = (prop, remove) => {
15226
- if (remove)
15227
- setState((prevState) => prevState.filter((state) => state !== prop));
15228
- else
15229
- setState((prevState) => [...prevState, prop]);
15230
- };
15231
- return { isLoading, setLoading };
15232
- }
15233
-
15234
- const Modal = (_a) => {
15235
- var { open, onClose } = _a, rest = __rest(_a, ["open", "onClose"]);
15236
- return (React__default.createElement(Modal$1, Object.assign({ open: open, onClose: onClose, disableEnforceFocus: true }, rest),
15237
- React__default.createElement(Box$2, { sx: {
15238
- outline: 'none',
15239
- backgroundColor: 'white',
15240
- position: 'absolute',
15241
- top: '50%',
15242
- left: '50%',
15243
- transform: 'translate(-50%, -50%)',
15244
- borderRadius: 1
15245
- } },
15246
- React__default.createElement(React__default.Fragment, null, rest.children))));
15035
+ function BaseGrid({ columns, children, fixedColumns, paperProps, tableBodyProps, tableHeadProps, tableProps, sortedDirection, sortedBy, onSortBy, dense = true, striped, bordered, currentPage, totalNumberOfPages, onPageChange, rowsPerPage, setRowsPerPage, rowsPerPageOptions }) {
15036
+ return (React__default.createElement(Paper, Object.assign({}, paperProps, { sx: Object.assign({ 'tr td': {
15037
+ py: dense ? 0.23 : 0.7,
15038
+ border: bordered ? '1px solid' : '',
15039
+ borderColor: 'divider'
15040
+ }, 'tr:nth-of-type(even)': {
15041
+ transition: 'background-color ease 200ms',
15042
+ bgcolor: striped ? 'divider' : 'initial'
15043
+ }, width: fixedColumns ? 'fit-content' : '100' }, paperProps === null || paperProps === void 0 ? void 0 : paperProps.sx) }),
15044
+ React__default.createElement(Table, Object.assign({ size: "small", stickyHeader: true }, tableProps, { sx: Object.assign({}, tableProps === null || tableProps === void 0 ? void 0 : tableProps.sx) }),
15045
+ React__default.createElement(TableHead, Object.assign({}, tableHeadProps),
15046
+ React__default.createElement(TableRow, null, columns.map((column) => (React__default.createElement(TableCell, { key: column.name, padding: dense ? 'none' : 'normal', sx: Object.assign({ pl: 2 }, column === null || column === void 0 ? void 0 : column.sx) },
15047
+ React__default.createElement(TableSortLabel, { active: sortedBy === column.name, direction: sortedDirection, onClick: () => onSortBy(column.name), disabled: column.canSort === false, sx: { position: 'relative', right: '-9px' } }, column.label)))))),
15048
+ React__default.createElement(TableBody, Object.assign({}, tableBodyProps), children)),
15049
+ React__default.createElement(GridPagination, { rowsPerPageOptions: rowsPerPageOptions, currentPage: currentPage, totalNumberOfPages: totalNumberOfPages, onPageChange: onPageChange, setRowsPerPage: setRowsPerPage, rowsPerPage: rowsPerPage, dense: dense })));
15050
+ }
15051
+
15052
+ function useFilter() {
15053
+ const [selectedFilters, setSelectedFilters] = useState([]);
15054
+ const filterBy = (newFilter) => {
15055
+ const propToCompare = newFilter.id ? 'id' : 'prop';
15056
+ function removeRepeatedFilters(filter) {
15057
+ return filter[propToCompare] !== newFilter[propToCompare];
15058
+ }
15059
+ setSelectedFilters((filters) => [
15060
+ ...filters.filter(removeRepeatedFilters),
15061
+ newFilter
15062
+ ]);
15063
+ };
15064
+ const removeFilter = (prop) => {
15065
+ setSelectedFilters(selectedFilters.filter((filter) => filter.prop !== prop));
15066
+ };
15067
+ function clearAllFilters() {
15068
+ setSelectedFilters([]);
15069
+ }
15070
+ return {
15071
+ filters: selectedFilters,
15072
+ filterBy,
15073
+ removeFilter,
15074
+ createFilter,
15075
+ clearAllFilters
15076
+ };
15077
+ }
15078
+ function getObjectValue(obj) {
15079
+ return (prop) => prop.split('.').reduce((o, k) => o[k], obj);
15080
+ }
15081
+ function isDate(date) {
15082
+ if (date instanceof Date)
15083
+ return true;
15084
+ else if (String(date).endsWith('Z'))
15085
+ return true;
15086
+ return false;
15087
+ }
15088
+ function compareFilter(item, filter) {
15089
+ const itemValue = getObjectValue(item)(filter.prop);
15090
+ switch (filter.compareType) {
15091
+ case 'equal':
15092
+ return itemValue === filter.value;
15093
+ case 'gte':
15094
+ return isDate(itemValue)
15095
+ ? moment(String(itemValue)).isSameOrAfter(filter.value)
15096
+ : itemValue >= filter.value;
15097
+ case 'gt':
15098
+ return isDate(itemValue)
15099
+ ? moment(String(itemValue)).isAfter(filter.value)
15100
+ : itemValue > filter.value;
15101
+ case 'lte':
15102
+ return isDate(itemValue)
15103
+ ? moment(String(itemValue)).isSameOrBefore(filter.value)
15104
+ : itemValue <= filter.value;
15105
+ case 'lt':
15106
+ return isDate(itemValue)
15107
+ ? moment(String(itemValue)).isBefore(filter.value)
15108
+ : itemValue < filter.value;
15109
+ }
15110
+ return false;
15111
+ }
15112
+ function createFilter(filters) {
15113
+ function apply(item) {
15114
+ const satisfiedFilters = filters.reduce((acc, filter) => {
15115
+ if (compareFilter(item, filter))
15116
+ acc += 1;
15117
+ return acc;
15118
+ }, 0);
15119
+ return satisfiedFilters === filters.length;
15120
+ }
15121
+ return {
15122
+ apply
15123
+ };
15124
+ }
15125
+
15126
+ function useGrid({ columns, filters = [], rowsPerPageOptions = [30, 60, 100] }) {
15127
+ const [defaultData, setDefaultData] = useState([]);
15128
+ const [sortedBy, setSortedBy] = useState('');
15129
+ const [sortedDirection, setSortedDirection] = useState('desc');
15130
+ const [currentPage, setCurrentPage] = useState(0);
15131
+ const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageOptions[0]);
15132
+ const toggleSortedDirection = () => {
15133
+ if (sortedDirection === 'desc')
15134
+ setSortedDirection('asc');
15135
+ if (sortedDirection === 'asc')
15136
+ setSortedDirection('desc');
15137
+ };
15138
+ const onSortBy = (prop) => {
15139
+ if (!prop)
15140
+ return;
15141
+ if (prop === sortedBy) {
15142
+ if (sortedDirection === 'asc') {
15143
+ toggleSortedDirection();
15144
+ setSortedBy('');
15145
+ }
15146
+ else
15147
+ toggleSortedDirection();
15148
+ }
15149
+ else {
15150
+ setSortedDirection('desc');
15151
+ setSortedBy(prop);
15152
+ }
15153
+ };
15154
+ const set = (data) => {
15155
+ setDefaultData(data);
15156
+ };
15157
+ function sortData(data) {
15158
+ if (sortedBy) {
15159
+ return data.sort((a, b) => {
15160
+ const compare = b[sortedBy] > a[sortedBy];
15161
+ if (sortedDirection === 'asc')
15162
+ return compare ? 1 : -1;
15163
+ return compare ? -1 : 1;
15164
+ });
15165
+ }
15166
+ else
15167
+ return data;
15168
+ }
15169
+ const onPageChange = (pageNumber) => {
15170
+ if (pageNumber < 0)
15171
+ return;
15172
+ if (pageNumber > totalNumberOfPages)
15173
+ return;
15174
+ setCurrentPage(pageNumber);
15175
+ };
15176
+ const onChangeRowsPerPage = (rows) => {
15177
+ let totalNumberOfPages = Math.round(filteredData.length / rows) - 1;
15178
+ totalNumberOfPages = totalNumberOfPages <= 0 ? 0 : 1;
15179
+ if (currentPage > totalNumberOfPages)
15180
+ setCurrentPage(totalNumberOfPages);
15181
+ setRowsPerPage(rows);
15182
+ };
15183
+ const filteredData = useMemo(() => {
15184
+ const newData = defaultData.slice(0);
15185
+ const newFilter = createFilter(filters);
15186
+ return newData.filter(newFilter.apply);
15187
+ }, [defaultData, filters]);
15188
+ const displayData = useMemo(() => {
15189
+ const sortedData = sortData(filteredData);
15190
+ const startPage = currentPage * rowsPerPage;
15191
+ const endPage = startPage + rowsPerPage;
15192
+ return sortedData.slice(startPage, endPage);
15193
+ }, [sortedBy, sortedDirection, filteredData, currentPage, rowsPerPage]);
15194
+ const totalNumberOfPages = Math.round(filteredData.length / rowsPerPage) - 1;
15195
+ return {
15196
+ data: displayData,
15197
+ set,
15198
+ onSortBy,
15199
+ sortedBy,
15200
+ defaultData,
15201
+ sortedDirection,
15202
+ columns,
15203
+ currentPage,
15204
+ totalNumberOfPages: totalNumberOfPages < 0 ? 0 : totalNumberOfPages,
15205
+ onPageChange,
15206
+ setRowsPerPage: onChangeRowsPerPage,
15207
+ rowsPerPageOptions,
15208
+ rowsPerPage
15209
+ };
15210
+ }
15211
+
15212
+ /* eslint no-undef: "off" */
15213
+ function useEvent(event, handler, passive = false) {
15214
+ useEffect(() => {
15215
+ window.addEventListener(event, handler, passive);
15216
+ return function cleanup() {
15217
+ window.removeEventListener(event, handler);
15218
+ };
15219
+ });
15220
+ }
15221
+
15222
+ function useLoading() {
15223
+ const [state, setState] = useState([]);
15224
+ const isLoading = (prop) => state.includes(prop);
15225
+ const setLoading = (prop, remove) => {
15226
+ if (remove)
15227
+ setState((prevState) => prevState.filter((state) => state !== prop));
15228
+ else
15229
+ setState((prevState) => [...prevState, prop]);
15230
+ };
15231
+ return { isLoading, setLoading };
15232
+ }
15233
+
15234
+ const Modal = (_a) => {
15235
+ var { open, onClose } = _a, rest = __rest(_a, ["open", "onClose"]);
15236
+ return (React__default.createElement(Modal$1, Object.assign({ open: open, onClose: onClose, disableEnforceFocus: true }, rest),
15237
+ React__default.createElement(Box$2, { sx: {
15238
+ outline: 'none',
15239
+ backgroundColor: 'white',
15240
+ position: 'absolute',
15241
+ top: '50%',
15242
+ left: '50%',
15243
+ transform: 'translate(-50%, -50%)',
15244
+ borderRadius: 1
15245
+ } },
15246
+ React__default.createElement(React__default.Fragment, null, rest.children))));
15247
15247
  };
15248
15248
 
15249
- function GetInputLabel(columns) {
15250
- return (columnName) => {
15251
- const column = columns.find((column) => column.name === columnName);
15252
- return { label: column.label, name: column.name };
15253
- };
15254
- }
15255
-
15256
- const Dialog = (_a) => {
15257
- var { open, title, loading, body, options } = _a, rest = __rest(_a, ["open", "title", "loading", "body", "options"]);
15258
- return (React__default.createElement(Dialog$1, Object.assign({ open: open }, rest),
15259
- React__default.createElement(Box$2, { sx: { p: 2 } },
15260
- React__default.createElement(DialogTitle, { sx: { fontWeight: "bold" } }, title),
15261
- React__default.createElement(DialogContentText, { sx: { px: "10px", textAlign: "center", mb: 2 } }, body),
15262
- React__default.createElement(DialogActions, null, options.map((option, index) => {
15263
- return (React__default.createElement(Button, { key: index, onClick: () => option.cb(option.label), variant: option.focus ? "contained" : "text", sx: {
15264
- fontWeight: option.focus ? "bold" : "normal",
15265
- color: option.focus ? "#fff" : "primary.main",
15266
- }, disableElevation: true, disabled: loading }, loading && option.focus ? (React__default.createElement(CircularProgress, { size: 25, color: "inherit" })) : (React__default.createElement(React__default.Fragment, null, option.label))));
15267
- })))));
15249
+ function GetInputLabel(columns) {
15250
+ return (columnName) => {
15251
+ const column = columns.find((column) => column.name === columnName);
15252
+ return { label: column.label, name: column.name };
15253
+ };
15254
+ }
15255
+
15256
+ const Dialog = (_a) => {
15257
+ var { open, title, loading, body, options } = _a, rest = __rest(_a, ["open", "title", "loading", "body", "options"]);
15258
+ return (React__default.createElement(Dialog$1, Object.assign({ open: open }, rest),
15259
+ React__default.createElement(Box$2, { sx: { p: 2 } },
15260
+ React__default.createElement(DialogTitle, { sx: { fontWeight: "bold" } }, title),
15261
+ React__default.createElement(DialogContentText, { sx: { px: "10px", textAlign: "center", mb: 2 } }, body),
15262
+ React__default.createElement(DialogActions, null, options.map((option, index) => {
15263
+ return (React__default.createElement(Button, { key: index, onClick: () => option.cb(option.label), variant: option.focus ? "contained" : "text", sx: {
15264
+ fontWeight: option.focus ? "bold" : "normal",
15265
+ color: option.focus ? "#fff" : "primary.main",
15266
+ }, disableElevation: true, disabled: loading }, loading && option.focus ? (React__default.createElement(CircularProgress, { size: 25, color: "inherit" })) : (React__default.createElement(React__default.Fragment, null, option.label))));
15267
+ })))));
15268
15268
  };
15269
15269
 
15270
15270
  export { Autocomplete, BaseGrid, Checkbox, Dialog, EditableTableCell, GetInputLabel, Grid, Input, InputMask, LargeButton, Modal, Radio, Select, Switch, TabPanel, Td, Tr, createFilter, filterData, getTabProps, useEvent, useFilter, useGrid, useLoading };