@bluemarble/bm-components 0.0.8 → 0.0.11

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 (50) hide show
  1. package/dist/esm/index.js +460 -272
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/types/components/Autocomplete/index.d.ts +20 -0
  4. package/dist/esm/types/components/Checkbox/index.d.ts +19 -0
  5. package/dist/esm/types/components/Form/index.d.ts +8 -0
  6. package/dist/esm/types/components/Grid/AutoCreatedRows.d.ts +1 -0
  7. package/dist/esm/types/components/Grid/EditableTableCell/DefaultInput.d.ts +17 -0
  8. package/dist/esm/types/components/Grid/EditableTableCell/InputMask.d.ts +8 -0
  9. package/dist/esm/types/components/Grid/EditableTableCell/index.d.ts +24 -0
  10. package/dist/esm/types/components/Grid/Grid.d.ts +2 -2
  11. package/dist/esm/types/components/Grid/Header.d.ts +1 -0
  12. package/dist/esm/types/components/Grid/Td.d.ts +2 -23
  13. package/dist/esm/types/components/Grid/Tr.d.ts +6 -0
  14. package/dist/esm/types/components/Grid/hooks/useGrid.d.ts +20 -0
  15. package/dist/esm/types/components/Grid/index.d.ts +2 -1
  16. package/dist/esm/types/components/GridV2/index.d.ts +6 -0
  17. package/dist/esm/types/components/Input/index.d.ts +11 -0
  18. package/dist/esm/types/components/InputMask/index.d.ts +13 -0
  19. package/dist/esm/types/components/LargeButton/index.d.ts +8 -0
  20. package/dist/esm/types/components/Radio/index.d.ts +23 -0
  21. package/dist/esm/types/components/Select/index.d.ts +17 -0
  22. package/dist/esm/types/components/Switch/index.d.ts +19 -0
  23. package/dist/esm/types/components/index.d.ts +8 -0
  24. package/dist/esm/types/playground/src/App.d.ts +2 -0
  25. package/dist/esm/types/playground/src/main.d.ts +1 -0
  26. package/dist/esm/types/playground/src/theme.d.ts +1 -0
  27. package/dist/esm/types/playground/vite.config.d.ts +2 -0
  28. package/dist/esm/types/src/components/Autocomplete/index.d.ts +20 -0
  29. package/dist/esm/types/src/components/Checkbox/index.d.ts +18 -0
  30. package/dist/esm/types/src/components/Grid/AutoCreatedRows.d.ts +8 -0
  31. package/dist/esm/types/src/components/Grid/EditableTableCell/DefaultInput.d.ts +16 -0
  32. package/dist/esm/types/src/components/Grid/EditableTableCell/InputMask.d.ts +7 -0
  33. package/dist/esm/types/src/components/Grid/EditableTableCell/index.d.ts +23 -0
  34. package/dist/esm/types/src/components/Grid/Filters.d.ts +12 -0
  35. package/dist/esm/types/src/components/Grid/Grid.d.ts +32 -0
  36. package/dist/esm/types/src/components/Grid/Header.d.ts +10 -0
  37. package/dist/esm/types/src/components/Grid/Td.d.ts +3 -0
  38. package/dist/esm/types/src/components/Grid/Tr.d.ts +13 -0
  39. package/dist/esm/types/src/components/Grid/index.d.ts +6 -0
  40. package/dist/esm/types/src/components/Grid/utils.d.ts +5 -0
  41. package/dist/esm/types/src/components/Input/index.d.ts +12 -0
  42. package/dist/esm/types/src/components/InputMask/index.d.ts +12 -0
  43. package/dist/esm/types/src/components/LargeButton/index.d.ts +8 -0
  44. package/dist/esm/types/src/components/Radio/index.d.ts +22 -0
  45. package/dist/esm/types/src/components/Select/index.d.ts +17 -0
  46. package/dist/esm/types/src/components/Switch/index.d.ts +18 -0
  47. package/dist/esm/types/src/components/index.d.ts +9 -0
  48. package/dist/esm/types/src/index.d.ts +1 -0
  49. package/dist/index.d.ts +125 -14
  50. package/package.json +6 -4
package/dist/esm/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import * as React from 'react';
2
- import React__default, { useRef, useState, useCallback, useEffect, memo, useMemo } from 'react';
3
- import { TableHead, TableRow, TableCell, TableSortLabel, Chip, Tooltip, IconButton, TextField, Paper, LinearProgress, TableContainer, Table, TableBody, TablePagination, Popover, Box as Box$2, Typography, Autocomplete, Button } from '@mui/material';
2
+ import React__default, { memo, useState, useRef, useMemo, useEffect, useCallback } from 'react';
3
+ import { TableHead, TableRow, TableCell, TableSortLabel, Chip, Tooltip, IconButton, Paper, LinearProgress, TableContainer, Table, TableBody, TablePagination, Popover, Box as Box$2, Typography, Autocomplete as Autocomplete$1, TextField, Button, FormControl, Select as Select$1, InputLabel, FormControlLabel, Checkbox as Checkbox$1, Switch as Switch$1, FormLabel, RadioGroup, Radio as Radio$1 } from '@mui/material';
4
4
  import emStyled from '@emotion/styled';
5
5
  import '@emotion/react';
6
+ import { Field, useField } from 'formik';
6
7
 
7
8
  const GridHeader = ({ setOrder, setOrderBy, order, orderBy, titles = [], }) => {
8
9
  function onRequestSort(title) {
@@ -3834,6 +3835,227 @@ function __rest(s, e) {
3834
3835
  return t;
3835
3836
  }
3836
3837
 
3838
+ const CustomTableCell = (_a) => {
3839
+ var { children } = _a, props = __rest(_a, ["children"]);
3840
+ return React__default.createElement(TableCell, Object.assign({}, props), children);
3841
+ };
3842
+ const Td = memo(CustomTableCell);
3843
+
3844
+ const CustomTableRow = (props) => {
3845
+ const { children, sx, striped = true, bordered = false, onSave, rowData } = props, rest = __rest(props, ["children", "sx", "striped", "bordered", "onSave", "rowData"]);
3846
+ 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, {
3847
+ bordered,
3848
+ rowData,
3849
+ rowIndex: props.index,
3850
+ onSave,
3851
+ }))));
3852
+ };
3853
+ const Tr = memo(CustomTableRow);
3854
+
3855
+ const AutoCreatedRows = ({ tableData, columns, primaryKey, }) => {
3856
+ return (React__default.createElement(React__default.Fragment, null, tableData.map((row) => (React__default.createElement(Tr, { key: row[primaryKey] }, columns.map((column) => {
3857
+ const cellValue = column.transformer
3858
+ ? column.transformer(row[column.name])
3859
+ : row[column.name];
3860
+ return React__default.createElement(Td, { key: column.name }, cellValue);
3861
+ }))))));
3862
+ };
3863
+
3864
+ const Grid = (props) => {
3865
+ const { columnTitles, isLoading, footer, noFilterButtons = false, selectedFilters, customButtons, setSelectedFilters, defaultData, setTableData, updateFilters, tableData, rowOptions = [60, 100, 150], noPagination, primaryKey, } = props;
3866
+ const [order, setOrder] = useState(undefined);
3867
+ const [orderBy, setOrderBy] = useState("");
3868
+ const [page, setPage] = useState(0);
3869
+ const [rowsPerPage, setRowsPerPage] = useState(rowOptions[0]);
3870
+ const [selectedTitle, setSelectedTitle] = useState(undefined);
3871
+ const [selectedFilterValue, setSelectedFilterValue] = useState(undefined);
3872
+ const [valuesToFilter, setValuesToFilter] = useState([]);
3873
+ const [anchorEl, setAnchorEl] = useState(null);
3874
+ const [searchText, setSearchText] = useState("");
3875
+ const [openSearch, setOpenSearch] = useState(false);
3876
+ const searchAnchorEl = useRef(null);
3877
+ const countRows = useMemo(() => {
3878
+ if (searchText.length > 0) {
3879
+ const array = handleFilterBySearch(searchText);
3880
+ return array.length;
3881
+ }
3882
+ else {
3883
+ return defaultData.length;
3884
+ }
3885
+ }, [searchText, tableData]);
3886
+ const handleChangeRowsPerPage = ({ target, }) => {
3887
+ setRowsPerPage(parseInt(target.value));
3888
+ const maxPage = Math.floor(countRows / rowsPerPage);
3889
+ if (page > maxPage)
3890
+ setPage(maxPage);
3891
+ };
3892
+ function handleSort(data) {
3893
+ const sortable = data.slice(0);
3894
+ if (order === undefined)
3895
+ return sortable;
3896
+ sortable.sort((a, b) => {
3897
+ const x = a[orderBy];
3898
+ const y = b[orderBy];
3899
+ return x < y ? -1 : x > y ? 1 : 0;
3900
+ });
3901
+ return order === "asc" ? sortable : sortable.reverse();
3902
+ }
3903
+ function handleAddFilter() {
3904
+ const [column] = columnTitles.filter((item) => item.label === selectedTitle);
3905
+ const newFilter = {
3906
+ column: column.name,
3907
+ value: selectedFilterValue || "",
3908
+ transformer: column.transformer,
3909
+ };
3910
+ const filterAlreadyExists = selectedFilters.some((filter) => filter.column === column.name && filter.value === selectedFilterValue);
3911
+ if (filterAlreadyExists)
3912
+ return;
3913
+ setSelectedFilters([...selectedFilters, newFilter]);
3914
+ }
3915
+ function handleCloseFilter(item) {
3916
+ const filterToDelete = selectedFilters.find((filter) => filter.column === item.column && filter.value === item.value);
3917
+ if (!filterToDelete)
3918
+ return;
3919
+ const filteredSelectedFilters = selectedFilters.filter((_, index) => selectedFilters.indexOf(filterToDelete) !== index);
3920
+ setSelectedFilters([...filteredSelectedFilters]);
3921
+ }
3922
+ function handleFilterBySearch(text) {
3923
+ const newArray = defaultData.filter((item) => {
3924
+ for (const [, value] of Object.entries(item)) {
3925
+ if (`${value}`.includes(text))
3926
+ return true;
3927
+ }
3928
+ return false;
3929
+ });
3930
+ return newArray;
3931
+ }
3932
+ useEffect(() => {
3933
+ const maxPage = Math.floor(countRows / rowsPerPage);
3934
+ if (page > maxPage)
3935
+ setPage(maxPage - 1);
3936
+ }, [countRows]);
3937
+ useEffect(() => {
3938
+ if (order) {
3939
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3940
+ const sortedArray = handleSort(newArray);
3941
+ const data = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3942
+ setTableData(data);
3943
+ }
3944
+ else {
3945
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3946
+ const data = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3947
+ setTableData(data);
3948
+ }
3949
+ }, [defaultData]);
3950
+ useEffect(() => {
3951
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3952
+ const sortedArray = handleSort(newArray);
3953
+ const paginatedArray = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3954
+ setTableData(paginatedArray);
3955
+ }, [order, orderBy]);
3956
+ useEffect(() => {
3957
+ if (order) {
3958
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3959
+ const sortedArray = handleSort(newArray);
3960
+ const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3961
+ setTableData(dados);
3962
+ }
3963
+ else {
3964
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3965
+ const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3966
+ setTableData(dados);
3967
+ }
3968
+ }, [page, rowsPerPage]);
3969
+ useEffect(() => {
3970
+ setValuesToFilter([]);
3971
+ setSelectedFilterValue(undefined);
3972
+ if (selectedTitle) {
3973
+ const values = [];
3974
+ const [prop] = columnTitles.filter((item) => item.label === selectedTitle);
3975
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3976
+ newArray.forEach((item) => {
3977
+ const value = prop.transformer
3978
+ ? prop.transformer(getPropertyValue(item, prop.name))
3979
+ : String(getPropertyValue(item, prop.name));
3980
+ if (!values.includes(value))
3981
+ values.push(value);
3982
+ });
3983
+ setValuesToFilter(values);
3984
+ }
3985
+ }, [selectedTitle]);
3986
+ useEffect(() => {
3987
+ if (order) {
3988
+ const newArray = handleFilterBySearch(searchText);
3989
+ const sortedArray = handleSort(newArray);
3990
+ const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3991
+ setTableData(dados);
3992
+ }
3993
+ else {
3994
+ const newArray = handleFilterBySearch(searchText);
3995
+ const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3996
+ setTableData(dados);
3997
+ }
3998
+ }, [searchText]);
3999
+ useEffect(() => {
4000
+ updateFilters(selectedFilters);
4001
+ }, [selectedFilters]);
4002
+ return (React__default.createElement(Paper, null,
4003
+ isLoading && React__default.createElement(LinearProgress, null),
4004
+ React__default.createElement(FiltersBar, { setAnchorEl: setAnchorEl, setOpenSearch: setOpenSearch, searchAnchorEl: searchAnchorEl, noFilterButtons: noFilterButtons, selectedFilters: selectedFilters, customButtons: customButtons, handleCloseFilter: handleCloseFilter }),
4005
+ React__default.createElement(TableContainer, null,
4006
+ React__default.createElement(Table, { size: "small" },
4007
+ React__default.createElement(GridHeader, { titles: columnTitles, order: order, orderBy: orderBy, setOrder: setOrder, setOrderBy: setOrderBy }),
4008
+ React__default.createElement(TableBody, null,
4009
+ props.children ? (props.children) : primaryKey ? (React__default.createElement(AutoCreatedRows, { tableData: tableData, columns: columnTitles, primaryKey: primaryKey })) : null,
4010
+ footer))),
4011
+ !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) => {
4012
+ setPage(newPage);
4013
+ }, onRowsPerPageChange: handleChangeRowsPerPage })),
4014
+ React__default.createElement(Popover, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), anchorOrigin: {
4015
+ vertical: "top",
4016
+ horizontal: "right",
4017
+ }, transformOrigin: {
4018
+ vertical: "top",
4019
+ horizontal: "right",
4020
+ } },
4021
+ React__default.createElement(Box$2, { sx: { minWidth: 300, padding: 2 } },
4022
+ React__default.createElement(Typography, { fontWeight: "bold", variant: "body1" }, "Filtrar por:"),
4023
+ React__default.createElement(Autocomplete$1, { value: selectedTitle || "", onChange: ({ target }) => {
4024
+ !target.innerHTML.includes("path")
4025
+ ? setSelectedTitle(target.innerHTML)
4026
+ : setSelectedTitle(undefined);
4027
+ }, options: columnTitles.map((title) => title.label), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Coluna" }))) }),
4028
+ React__default.createElement(Autocomplete$1, { value: selectedFilterValue || "", onChange: ({ target }) => {
4029
+ !target.innerHTML.includes("path")
4030
+ ? setSelectedFilterValue(target.innerHTML)
4031
+ : setSelectedFilterValue(undefined);
4032
+ }, disabled: valuesToFilter.length < 1, options: valuesToFilter.map((title) => title), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Valor" }))) }),
4033
+ React__default.createElement(Box$2, { sx: { py: 1 } }),
4034
+ React__default.createElement(Button, { disabled: !selectedFilterValue, onClick: handleAddFilter, fullWidth: true }, "Adicionar filtro"))),
4035
+ React__default.createElement(Popover, { anchorEl: searchAnchorEl.current, open: openSearch, onClose: () => setOpenSearch(false), anchorOrigin: {
4036
+ vertical: "top",
4037
+ horizontal: "left",
4038
+ }, transformOrigin: {
4039
+ vertical: "top",
4040
+ horizontal: "left",
4041
+ } },
4042
+ React__default.createElement(Box$2, { sx: {
4043
+ minWidth: 300,
4044
+ px: 2,
4045
+ pb: 1,
4046
+ display: "grid",
4047
+ gridTemplateColumns: "1fr 30px",
4048
+ alignItems: "flex-end",
4049
+ } },
4050
+ React__default.createElement(TextField, { variant: "standard", margin: "dense", label: "Buscar", value: searchText, onChange: ({ currentTarget }) => setSearchText(currentTarget.value) }),
4051
+ React__default.createElement(Box$2, null,
4052
+ React__default.createElement(IconButton, { onClick: () => {
4053
+ setSearchText("");
4054
+ setOpenSearch(false);
4055
+ } },
4056
+ React__default.createElement(MdClose, { size: 8 * 3 })))))));
4057
+ };
4058
+
3837
4059
  var moment$1 = {exports: {}};
3838
4060
 
3839
4061
  (function (module, exports) {
@@ -9517,6 +9739,48 @@ var moment$1 = {exports: {}};
9517
9739
 
9518
9740
  var moment = moment$1.exports;
9519
9741
 
9742
+ const DefaultInput = (allProps) => {
9743
+ var _a;
9744
+ const { TextFieldProps, onSave, name, onUpdateValue, rowData, type = "text", fullWidth = true, isEditing, formatInputDefautvalue, setIsEditing, handleCancelEditing, } = allProps;
9745
+ const formatDefaultValue = (value) => {
9746
+ if (formatInputDefautvalue)
9747
+ return formatInputDefautvalue(value);
9748
+ switch (type) {
9749
+ case "date":
9750
+ return moment(value).format("YYYY-MM-DD");
9751
+ case "datetime-local":
9752
+ return moment(value).format("YYYY-MM-DDTHH:mm:ss");
9753
+ default:
9754
+ return String(value);
9755
+ }
9756
+ };
9757
+ const handleSave = (event) => {
9758
+ var _a, _b, _c;
9759
+ onUpdateValue(String((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
9760
+ setIsEditing(false);
9761
+ const response = {
9762
+ name,
9763
+ event,
9764
+ value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
9765
+ data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value }),
9766
+ };
9767
+ onSave(response);
9768
+ };
9769
+ const onKeyDown = (ev) => {
9770
+ if (ev.code === "Enter")
9771
+ handleSave(ev);
9772
+ if (ev.code === "Escape")
9773
+ handleCancelEditing();
9774
+ };
9775
+ 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: {
9776
+ style: {
9777
+ paddingBottom: 6,
9778
+ paddingTop: 6,
9779
+ },
9780
+ onKeyDown,
9781
+ }, 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)));
9782
+ };
9783
+
9520
9784
  function _typeof(obj) {
9521
9785
  "@babel/helpers - typeof";
9522
9786
 
@@ -12611,7 +12875,7 @@ IMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;
12611
12875
  var _excluded$2 = ["mask"];
12612
12876
  /** Listens to element events and controls changes between element and {@link Masked} */
12613
12877
 
12614
- var InputMask$1 = /*#__PURE__*/function () {
12878
+ var InputMask$2 = /*#__PURE__*/function () {
12615
12879
  /**
12616
12880
  View element
12617
12881
  @readonly
@@ -13016,7 +13280,7 @@ var InputMask$1 = /*#__PURE__*/function () {
13016
13280
 
13017
13281
  return InputMask;
13018
13282
  }();
13019
- IMask.InputMask = InputMask$1;
13283
+ IMask.InputMask = InputMask$2;
13020
13284
 
13021
13285
  /** Pattern which validates enum values */
13022
13286
 
@@ -14442,30 +14706,9 @@ function useIMask(opts) {
14442
14706
  };
14443
14707
  }
14444
14708
 
14445
- const CustomTableCell = (_a) => {
14446
- var { children } = _a, props = __rest(_a, ["children"]);
14447
- return React__default.createElement(TableCell, Object.assign({}, props), children);
14448
- };
14449
- const EditableTableCell = (allProps) => {
14450
- const { TextFieldProps, onSave, onCancel, name, data, mask, fullWidth = true, formatCellValue = (value) => value, formatInputDefautvalue } = allProps, props = __rest(allProps, ["TextFieldProps", "onSave", "onCancel", "name", "data", "mask", "fullWidth", "formatCellValue", "formatInputDefautvalue"]);
14451
- const [isEditing, setIsEditing] = useState(false);
14452
- const [value, setValue] = useState(data === null || data === void 0 ? void 0 : data[name]);
14453
- const handleCancelEditing = () => {
14454
- setIsEditing(false);
14455
- if (onCancel)
14456
- onCancel();
14457
- };
14458
- return (React__default.createElement(TableCell, Object.assign({}, props, { sx: Object.assign(Object.assign({}, props.sx), { p: isEditing ? 0 : "intial" }), onDoubleClick: () => setIsEditing(true) }), isEditing ? (React__default.createElement(React__default.Fragment, null, mask ? (React__default.createElement(InputMask, Object.assign({}, allProps, { mask: mask, isEditing: isEditing, setIsEditing: setIsEditing, onSave: (props) => {
14459
- setValue(props.value);
14460
- onSave(props);
14461
- }, handleCancelEditing: handleCancelEditing, formatInputDefautvalue: formatInputDefautvalue }))) : (React__default.createElement(DefaultInput, Object.assign({}, allProps, { onUpdateValue: (newValue) => {
14462
- setValue(newValue);
14463
- }, mask: mask, isEditing: isEditing, handleCancelEditing: handleCancelEditing, setIsEditing: setIsEditing, formatInputDefautvalue: formatInputDefautvalue }))))) : (React__default.createElement(React__default.Fragment, null, formatCellValue(value)))));
14464
- };
14465
- const Td = memo(CustomTableCell);
14466
- const InputMask = (allProps) => {
14709
+ const InputMask$1 = (allProps) => {
14467
14710
  var _a;
14468
- const { TextFieldProps, onSave, name, data, mask, fullWidth = true, isEditing, handleCancelEditing, setIsEditing, } = allProps;
14711
+ const { TextFieldProps, onSave, name, rowData, mask, fullWidth = true, isEditing, handleCancelEditing, setIsEditing, } = allProps;
14469
14712
  const { ref, unmaskedValue, setValue } = useIMask(mask);
14470
14713
  const handleSave = (event) => {
14471
14714
  var _a, _b, _c;
@@ -14476,7 +14719,7 @@ const InputMask = (allProps) => {
14476
14719
  event,
14477
14720
  value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
14478
14721
  unmaskedValue,
14479
- data: Object.assign(Object.assign({}, data), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value }),
14722
+ data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value }),
14480
14723
  };
14481
14724
  onSave(response);
14482
14725
  };
@@ -14487,9 +14730,9 @@ const InputMask = (allProps) => {
14487
14730
  handleCancelEditing();
14488
14731
  };
14489
14732
  useEffect(() => {
14490
- if (data === null || data === void 0 ? void 0 : data[name])
14491
- setValue(String(data === null || data === void 0 ? void 0 : data[name]));
14492
- }, [data === null || data === void 0 ? void 0 : data[name]]);
14733
+ if (rowData === null || rowData === void 0 ? void 0 : rowData[name])
14734
+ setValue(String(rowData === null || rowData === void 0 ? void 0 : rowData[name]));
14735
+ }, [rowData === null || rowData === void 0 ? void 0 : rowData[name]]);
14493
14736
  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: {
14494
14737
  style: {
14495
14738
  paddingBottom: 6,
@@ -14497,258 +14740,203 @@ const InputMask = (allProps) => {
14497
14740
  },
14498
14741
  onKeyDown,
14499
14742
  }, 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)));
14500
- };
14501
- const DefaultInput = (allProps) => {
14502
- var _a;
14503
- const { TextFieldProps, onSave, name, onUpdateValue, data, type = "text", fullWidth = true, isEditing, formatInputDefautvalue, setIsEditing, handleCancelEditing, } = allProps;
14504
- const formatDefaultValue = (value) => {
14505
- if (formatInputDefautvalue)
14506
- return formatInputDefautvalue(value);
14507
- switch (type) {
14508
- case "date":
14509
- return moment(value).format("YYYY-MM-DD");
14510
- case "datetime-local":
14511
- return moment(value).format("YYYY-MM-DDTHH:mm:ss");
14512
- default:
14513
- return String(value);
14514
- }
14515
- };
14516
- const handleSave = (event) => {
14517
- var _a, _b, _c;
14518
- onUpdateValue(String((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
14743
+ };
14744
+
14745
+ const EditableTableCell = (allProps) => {
14746
+ 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"]);
14747
+ const [isEditing, setIsEditing] = useState(false);
14748
+ const [value, setValue] = useState(rowData === null || rowData === void 0 ? void 0 : rowData[name]);
14749
+ const handleCancelEditing = () => {
14519
14750
  setIsEditing(false);
14520
- const response = {
14521
- name,
14522
- event,
14523
- value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
14524
- data: Object.assign(Object.assign({}, data), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value }),
14525
- };
14526
- onSave(response);
14527
- };
14528
- const onKeyDown = (ev) => {
14529
- if (ev.code === "Enter")
14530
- handleSave(ev);
14531
- if (ev.code === "Escape")
14532
- handleCancelEditing();
14751
+ if (onCancel)
14752
+ onCancel();
14533
14753
  };
14534
- return (React__default.createElement(TextField, Object.assign({ name: name, focused: isEditing, onBlur: (ev) => handleSave(ev), autoFocus: true, type: type, size: "small", defaultValue: formatDefaultValue(data === null || data === void 0 ? void 0 : data[name]), sx: Object.assign({ width: fullWidth ? "100%" : "intial" }, TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.sx), inputProps: {
14535
- style: {
14536
- paddingBottom: 6,
14537
- paddingTop: 6,
14538
- },
14539
- onKeyDown,
14540
- }, 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)));
14754
+ 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) => {
14755
+ setValue(props.value);
14756
+ onSave(props);
14757
+ }, handleCancelEditing: handleCancelEditing, formatInputDefautvalue: formatInputDefautvalue })) : (React__default.createElement(DefaultInput, { onUpdateValue: (newValue) => {
14758
+ setValue(newValue);
14759
+ }, 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)))));
14541
14760
  };
14542
14761
 
14543
- const CustomTableRow = (props) => {
14544
- const { children, sx, striped = true } = props, rest = __rest(props, ["children", "sx", "striped"]);
14545
- return (React__default.createElement(TableRow, Object.assign({ sx: Object.assign({ "&:nth-of-type(even)": { bgcolor: striped ? "action.selected" : "" } }, sx) }, rest), children));
14762
+ const Input = (_a) => {
14763
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14764
+ if (withFormik)
14765
+ return React__default.createElement(FormikInput, Object.assign({}, rest));
14766
+ else
14767
+ return React__default.createElement(BaseInput$1, Object.assign({}, rest));
14546
14768
  };
14547
- const Tr = memo(CustomTableRow);
14548
-
14549
- const AutoCreatedRows = ({ tableData, columns, primaryKey, }) => {
14550
- return (React__default.createElement(React__default.Fragment, null, tableData.map((row) => (React__default.createElement(Tr, { key: row[primaryKey] }, columns.map((column) => {
14551
- const cellValue = column.transformer
14552
- ? column.transformer(row[column.name])
14553
- : row[column.name];
14554
- return React__default.createElement(Td, { key: column.name }, cellValue);
14555
- }))))));
14769
+ const BaseInput$1 = (props) => {
14770
+ return React__default.createElement(TextField, Object.assign({ fullWidth: true }, props));
14771
+ };
14772
+ const FormikInput = (_a) => {
14773
+ var { name } = _a, rest = __rest(_a, ["name"]);
14774
+ return (React__default.createElement(Field, { name: name }, (_a) => {
14775
+ var _b = _a.field, field = __rest(_b, ["value"]);
14776
+ return (React__default.createElement(BaseInput$1, Object.assign({}, field, rest)));
14777
+ }));
14556
14778
  };
14557
14779
 
14558
- const Grid = (props) => {
14559
- const { columnTitles, isLoading, footer, noFilterButtons = false, selectedFilters, customButtons, setSelectedFilters, defaultData, setTableData, updateFilters, tableData, rowOptions = [60, 100, 150], noPagination, primaryKey, } = props;
14560
- const [order, setOrder] = useState(undefined);
14561
- const [orderBy, setOrderBy] = useState("");
14562
- const [page, setPage] = useState(0);
14563
- const [rowsPerPage, setRowsPerPage] = useState(rowOptions[0]);
14564
- const [selectedTitle, setSelectedTitle] = useState(undefined);
14565
- const [selectedFilterValue, setSelectedFilterValue] = useState(undefined);
14566
- const [valuesToFilter, setValuesToFilter] = useState([]);
14567
- const [anchorEl, setAnchorEl] = useState(null);
14568
- const [searchText, setSearchText] = useState("");
14569
- const [openSearch, setOpenSearch] = useState(false);
14570
- const searchAnchorEl = useRef(null);
14571
- const countRows = useMemo(() => {
14572
- if (searchText.length > 0) {
14573
- const array = handleFilterBySearch(searchText);
14574
- return array.length;
14575
- }
14576
- else {
14577
- return defaultData.length;
14578
- }
14579
- }, [searchText, tableData]);
14580
- const handleChangeRowsPerPage = ({ target, }) => {
14581
- setRowsPerPage(parseInt(target.value));
14582
- const maxPage = Math.floor(countRows / rowsPerPage);
14583
- if (page > maxPage)
14584
- setPage(maxPage);
14585
- };
14586
- function handleSort(data) {
14587
- const sortable = data.slice(0);
14588
- if (order === undefined)
14589
- return sortable;
14590
- sortable.sort((a, b) => {
14591
- const x = a[orderBy];
14592
- const y = b[orderBy];
14593
- return x < y ? -1 : x > y ? 1 : 0;
14594
- });
14595
- return order === "asc" ? sortable : sortable.reverse();
14596
- }
14597
- function handleAddFilter() {
14598
- const [column] = columnTitles.filter((item) => item.label === selectedTitle);
14599
- const newFilter = {
14600
- column: column.name,
14601
- value: selectedFilterValue || "",
14602
- transformer: column.transformer,
14603
- };
14604
- const filterAlreadyExists = selectedFilters.some((filter) => filter.column === column.name && filter.value === selectedFilterValue);
14605
- if (filterAlreadyExists)
14606
- return;
14607
- setSelectedFilters([...selectedFilters, newFilter]);
14608
- }
14609
- function handleCloseFilter(item) {
14610
- const filterToDelete = selectedFilters.find((filter) => filter.column === item.column && filter.value === item.value);
14611
- if (!filterToDelete)
14612
- return;
14613
- const filteredSelectedFilters = selectedFilters.filter((_, index) => selectedFilters.indexOf(filterToDelete) !== index);
14614
- setSelectedFilters([...filteredSelectedFilters]);
14615
- }
14616
- function handleFilterBySearch(text) {
14617
- const newArray = defaultData.filter((item) => {
14618
- for (const [, value] of Object.entries(item)) {
14619
- if (`${value}`.includes(text))
14620
- return true;
14621
- }
14622
- return false;
14623
- });
14624
- return newArray;
14625
- }
14626
- useEffect(() => {
14627
- const maxPage = Math.floor(countRows / rowsPerPage);
14628
- if (page > maxPage)
14629
- setPage(maxPage - 1);
14630
- }, [countRows]);
14631
- useEffect(() => {
14632
- if (order) {
14633
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
14634
- const sortedArray = handleSort(newArray);
14635
- const data = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
14636
- setTableData(data);
14637
- }
14638
- else {
14639
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
14640
- const data = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
14641
- setTableData(data);
14642
- }
14643
- }, [defaultData]);
14644
- useEffect(() => {
14645
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
14646
- const sortedArray = handleSort(newArray);
14647
- const paginatedArray = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
14648
- setTableData(paginatedArray);
14649
- }, [order, orderBy]);
14780
+ function InputMask(_a) {
14781
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14782
+ if (withFormik)
14783
+ return React__default.createElement(FormikInputMask, Object.assign({}, rest));
14784
+ else
14785
+ return React__default.createElement(BaseInputMask, Object.assign({}, rest));
14786
+ }
14787
+ const BaseInputMask = (_a) => {
14788
+ var { mask, defaultValue, onChangeValue } = _a, rest = __rest(_a, ["mask", "defaultValue", "onChangeValue"]);
14789
+ const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14650
14790
  useEffect(() => {
14651
- if (order) {
14652
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
14653
- const sortedArray = handleSort(newArray);
14654
- const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
14655
- setTableData(dados);
14656
- }
14657
- else {
14658
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
14659
- const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
14660
- setTableData(dados);
14661
- }
14662
- }, [page, rowsPerPage]);
14791
+ if (!value)
14792
+ setValue(String(defaultValue));
14793
+ }, [defaultValue]);
14663
14794
  useEffect(() => {
14664
- setValuesToFilter([]);
14665
- setSelectedFilterValue(undefined);
14666
- if (selectedTitle) {
14667
- const values = [];
14668
- const [prop] = columnTitles.filter((item) => item.label === selectedTitle);
14669
- const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
14670
- newArray.forEach((item) => {
14671
- const value = prop.transformer
14672
- ? prop.transformer(getPropertyValue(item, prop.name))
14673
- : String(getPropertyValue(item, prop.name));
14674
- if (!values.includes(value))
14675
- values.push(value);
14676
- });
14677
- setValuesToFilter(values);
14678
- }
14679
- }, [selectedTitle]);
14795
+ if (onChangeValue)
14796
+ onChangeValue(value, unmaskedValue);
14797
+ }, [value]);
14798
+ return React__default.createElement(BaseInput$1, Object.assign({ inputRef: ref }, rest));
14799
+ };
14800
+ function FormikInputMask(_a) {
14801
+ var { mask, defaultValue, name } = _a, rest = __rest(_a, ["mask", "defaultValue", "name"]);
14802
+ const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14680
14803
  useEffect(() => {
14681
- if (order) {
14682
- const newArray = handleFilterBySearch(searchText);
14683
- const sortedArray = handleSort(newArray);
14684
- const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
14685
- setTableData(dados);
14686
- }
14687
- else {
14688
- const newArray = handleFilterBySearch(searchText);
14689
- const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
14690
- setTableData(dados);
14804
+ if (!value && defaultValue)
14805
+ setValue(String(defaultValue));
14806
+ }, [defaultValue]);
14807
+ const onChange = (setFieldValue) => {
14808
+ setFieldValue(name, unmaskedValue);
14809
+ };
14810
+ return (React__default.createElement(Field, { name: name }, (_a) => {
14811
+ var _b = _a.field, field = __rest(_b, ["value"]), { form: { setFieldValue } } = _a;
14812
+ return (React__default.createElement(BaseInput$1, Object.assign({}, rest, field, { onChange: () => onChange(setFieldValue), inputRef: ref })));
14813
+ }));
14814
+ }
14815
+
14816
+ const CustomInputLabel = InputLabel;
14817
+ const Select = (_a) => {
14818
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14819
+ if (withFormik)
14820
+ return React__default.createElement(FormikSelect, Object.assign({}, rest));
14821
+ else
14822
+ return React__default.createElement(BaseSelect, Object.assign({}, rest));
14823
+ };
14824
+ const BaseSelect = (_a) => {
14825
+ var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14826
+ return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14827
+ React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14828
+ React__default.createElement(Select$1, Object.assign({ name: name, inputProps: {
14829
+ name,
14830
+ }, label: label }, rest), children)));
14831
+ };
14832
+ const FormikSelect = (_a) => {
14833
+ var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14834
+ const [_b, meta, { setValue }] = useField({ name }), field = __rest(_b, ["value"]);
14835
+ const onChange = (_, { props: { value } }) => {
14836
+ setValue(value);
14837
+ };
14838
+ return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14839
+ React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14840
+ React__default.createElement(Select$1, Object.assign({ inputProps: {
14841
+ name,
14842
+ }, label: label }, rest, field, { onChange: onChange }), children)));
14843
+ };
14844
+
14845
+ function Autocomplete(_a) {
14846
+ var { withFormik = true, name, getOptionValue } = _a, rest = __rest(_a, ["withFormik", "name", "getOptionValue"]);
14847
+ if (withFormik && !!getOptionValue) {
14848
+ return (React__default.createElement(FormikAutocomplete, Object.assign({ name: name, getOptionValue: getOptionValue }, rest)));
14849
+ }
14850
+ else
14851
+ return React__default.createElement(BaseInput, Object.assign({}, rest));
14852
+ }
14853
+ function BaseInput(props) {
14854
+ return (React__default.createElement(Autocomplete$1, Object.assign({ fullWidth: true, renderInput: (params) => React__default.createElement(TextField, Object.assign({ label: props.label }, params)) }, props)));
14855
+ }
14856
+ function FormikAutocomplete(_a) {
14857
+ var { getOptionValue } = _a, props = __rest(_a, ["getOptionValue"]);
14858
+ const [_b, , { setValue }] = useField({ name: props.name }), field = __rest(_b, []);
14859
+ const onChange = (_, newValue) => {
14860
+ if (getOptionValue) {
14861
+ setValue(getOptionValue(newValue));
14691
14862
  }
14692
- }, [searchText]);
14693
- useEffect(() => {
14694
- updateFilters(selectedFilters);
14695
- }, [selectedFilters]);
14696
- return (React__default.createElement(Paper, null,
14697
- isLoading && React__default.createElement(LinearProgress, null),
14698
- React__default.createElement(FiltersBar, { setAnchorEl: setAnchorEl, setOpenSearch: setOpenSearch, searchAnchorEl: searchAnchorEl, noFilterButtons: noFilterButtons, selectedFilters: selectedFilters, customButtons: customButtons, handleCloseFilter: handleCloseFilter }),
14699
- React__default.createElement(TableContainer, null,
14700
- React__default.createElement(Table, { size: "small" },
14701
- React__default.createElement(GridHeader, { titles: columnTitles, order: order, orderBy: orderBy, setOrder: setOrder, setOrderBy: setOrderBy }),
14702
- React__default.createElement(TableBody, null,
14703
- props.children ? (props.children) : primaryKey ? (React__default.createElement(AutoCreatedRows, { tableData: tableData, columns: columnTitles, primaryKey: primaryKey })) : null,
14704
- footer))),
14705
- !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) => {
14706
- setPage(newPage);
14707
- }, onRowsPerPageChange: handleChangeRowsPerPage })),
14708
- React__default.createElement(Popover, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), anchorOrigin: {
14709
- vertical: "top",
14710
- horizontal: "right",
14711
- }, transformOrigin: {
14712
- vertical: "top",
14713
- horizontal: "right",
14714
- } },
14715
- React__default.createElement(Box$2, { sx: { minWidth: 300, padding: 2 } },
14716
- React__default.createElement(Typography, { fontWeight: "bold", variant: "body1" }, "Filtrar por:"),
14717
- React__default.createElement(Autocomplete, { value: selectedTitle || "", onChange: ({ target }) => {
14718
- !target.innerHTML.includes("path")
14719
- ? setSelectedTitle(target.innerHTML)
14720
- : setSelectedTitle(undefined);
14721
- }, options: columnTitles.map((title) => title.label), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Coluna" }))) }),
14722
- React__default.createElement(Autocomplete, { value: selectedFilterValue || "", onChange: ({ target }) => {
14723
- !target.innerHTML.includes("path")
14724
- ? setSelectedFilterValue(target.innerHTML)
14725
- : setSelectedFilterValue(undefined);
14726
- }, disabled: valuesToFilter.length < 1, options: valuesToFilter.map((title) => title), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Valor" }))) }),
14727
- React__default.createElement(Box$2, { sx: { py: 1 } }),
14728
- React__default.createElement(Button, { disabled: !selectedFilterValue, onClick: handleAddFilter, fullWidth: true }, "Adicionar filtro"))),
14729
- React__default.createElement(Popover, { anchorEl: searchAnchorEl.current, open: openSearch, onClose: () => setOpenSearch(false), anchorOrigin: {
14730
- vertical: "top",
14731
- horizontal: "left",
14732
- }, transformOrigin: {
14733
- vertical: "top",
14734
- horizontal: "left",
14735
- } },
14736
- React__default.createElement(Box$2, { sx: {
14737
- minWidth: 300,
14738
- px: 2,
14739
- pb: 1,
14740
- display: "grid",
14741
- gridTemplateColumns: "1fr 30px",
14742
- alignItems: "flex-end",
14743
- } },
14744
- React__default.createElement(TextField, { variant: "standard", margin: "dense", label: "Buscar", value: searchText, onChange: ({ currentTarget }) => setSearchText(currentTarget.value) }),
14745
- React__default.createElement(Box$2, null,
14746
- React__default.createElement(IconButton, { onClick: () => {
14747
- setSearchText("");
14748
- setOpenSearch(false);
14749
- } },
14750
- React__default.createElement(MdClose, { size: 8 * 3 })))))));
14863
+ else
14864
+ setValue(newValue);
14865
+ };
14866
+ return (React__default.createElement(Autocomplete$1, Object.assign({}, props, { renderInput: (params) => (React__default.createElement(TextField, Object.assign({}, params, field, { label: props.label }))), onChange: onChange })));
14867
+ }
14868
+
14869
+ const Checkbox = (_a) => {
14870
+ var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14871
+ if (withFormik && name)
14872
+ return React__default.createElement(FormikCheckbox, Object.assign({ name: name }, props));
14873
+ else
14874
+ return React__default.createElement(BaseCheckbox, Object.assign({}, props));
14875
+ };
14876
+ const BaseCheckbox = (_a) => {
14877
+ var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14878
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Checkbox$1, Object.assign({}, props)) }, FormControlLabelProps)));
14879
+ };
14880
+ const FormikCheckbox = (_a) => {
14881
+ var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14882
+ const [_b, , { setValue }] = useField({
14883
+ name,
14884
+ }), field = __rest(_b, ["value", "onChange"]);
14885
+ const onChange = (_, value) => {
14886
+ setValue(value);
14887
+ };
14888
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Checkbox$1, Object.assign({}, props)) }, field, FormControlLabelProps)));
14889
+ };
14890
+
14891
+ const Switch = (_a) => {
14892
+ var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14893
+ if (withFormik && name)
14894
+ return React__default.createElement(FormikSwitch, Object.assign({ name: name }, props));
14895
+ else
14896
+ return React__default.createElement(BaseSwitch, Object.assign({}, props));
14897
+ };
14898
+ const BaseSwitch = (_a) => {
14899
+ var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14900
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Switch$1, Object.assign({}, props)) }, FormControlLabelProps)));
14901
+ };
14902
+ const FormikSwitch = (_a) => {
14903
+ var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14904
+ const [_b, , { setValue }] = useField({
14905
+ name,
14906
+ }), field = __rest(_b, ["value", "onChange"]);
14907
+ const onChange = (_, value) => {
14908
+ setValue(value);
14909
+ };
14910
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Switch$1, Object.assign({}, props)) }, field, FormControlLabelProps)));
14911
+ };
14912
+
14913
+ const Radio = (_a) => {
14914
+ var { name, withFormik = true } = _a, rest = __rest(_a, ["name", "withFormik"]);
14915
+ if (withFormik && name)
14916
+ return React__default.createElement(FormikRadio, Object.assign({ name: name }, rest));
14917
+ else
14918
+ return React__default.createElement(BaseRadio, Object.assign({}, rest));
14919
+ };
14920
+ const BaseRadio = (_a) => {
14921
+ var { label, options } = _a, rest = __rest(_a, ["label", "options"]);
14922
+ return (React__default.createElement(FormControl, null,
14923
+ label && React__default.createElement(FormLabel, null, label),
14924
+ 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) }))))));
14925
+ };
14926
+ const FormikRadio = (_a) => {
14927
+ var { label, name, options } = _a, rest = __rest(_a, ["label", "name", "options"]);
14928
+ const onChange = (setFieldValue, value) => {
14929
+ setFieldValue(name, value);
14930
+ };
14931
+ return (React__default.createElement(Field, null, ({ form: { setFieldValue } }) => (React__default.createElement(FormControl, null,
14932
+ label && React__default.createElement(FormLabel, null, label),
14933
+ React__default.createElement(RadioGroup, Object.assign({ 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) }))))))));
14934
+ };
14935
+
14936
+ const LargeButton = (_a) => {
14937
+ var { loading, children } = _a, rest = __rest(_a, ["loading", "children"]);
14938
+ return (React__default.createElement(Button, Object.assign({ variant: "contained", fullWidth: true, sx: Object.assign({ color: "#fff", fontWeight: "bold" }, rest.sx) }, rest), children));
14751
14939
  };
14752
14940
 
14753
- export { EditableTableCell, Grid, Td, Tr, filterData };
14941
+ export { Autocomplete, Checkbox, EditableTableCell, Grid, Input, InputMask, LargeButton, Radio, Select, Switch, Td, Tr, filterData };
14754
14942
  //# sourceMappingURL=index.js.map