@bluemarble/bm-components 0.0.8 → 0.0.9

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 +473 -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 +9 -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 +130 -14
  50. package/package.json +7 -4
package/dist/esm/index.js CHANGED
@@ -1,8 +1,10 @@
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 { useTable } from 'react-table';
7
+ import { Field, useField } from 'formik';
6
8
 
7
9
  const GridHeader = ({ setOrder, setOrderBy, order, orderBy, titles = [], }) => {
8
10
  function onRequestSort(title) {
@@ -3834,6 +3836,227 @@ function __rest(s, e) {
3834
3836
  return t;
3835
3837
  }
3836
3838
 
3839
+ const CustomTableCell = (_a) => {
3840
+ var { children } = _a, props = __rest(_a, ["children"]);
3841
+ return React__default.createElement(TableCell, Object.assign({}, props), children);
3842
+ };
3843
+ const Td = memo(CustomTableCell);
3844
+
3845
+ const CustomTableRow = (props) => {
3846
+ const { children, sx, striped = true, bordered = false, onSave, rowData } = props, rest = __rest(props, ["children", "sx", "striped", "bordered", "onSave", "rowData"]);
3847
+ 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, {
3848
+ bordered,
3849
+ rowData,
3850
+ rowIndex: props.index,
3851
+ onSave,
3852
+ }))));
3853
+ };
3854
+ const Tr = memo(CustomTableRow);
3855
+
3856
+ const AutoCreatedRows = ({ tableData, columns, primaryKey, }) => {
3857
+ return (React__default.createElement(React__default.Fragment, null, tableData.map((row) => (React__default.createElement(Tr, { key: row[primaryKey] }, columns.map((column) => {
3858
+ const cellValue = column.transformer
3859
+ ? column.transformer(row[column.name])
3860
+ : row[column.name];
3861
+ return React__default.createElement(Td, { key: column.name }, cellValue);
3862
+ }))))));
3863
+ };
3864
+
3865
+ const Grid = (props) => {
3866
+ const { columnTitles, isLoading, footer, noFilterButtons = false, selectedFilters, customButtons, setSelectedFilters, defaultData, setTableData, updateFilters, tableData, rowOptions = [60, 100, 150], noPagination, primaryKey, } = props;
3867
+ const [order, setOrder] = useState(undefined);
3868
+ const [orderBy, setOrderBy] = useState("");
3869
+ const [page, setPage] = useState(0);
3870
+ const [rowsPerPage, setRowsPerPage] = useState(rowOptions[0]);
3871
+ const [selectedTitle, setSelectedTitle] = useState(undefined);
3872
+ const [selectedFilterValue, setSelectedFilterValue] = useState(undefined);
3873
+ const [valuesToFilter, setValuesToFilter] = useState([]);
3874
+ const [anchorEl, setAnchorEl] = useState(null);
3875
+ const [searchText, setSearchText] = useState("");
3876
+ const [openSearch, setOpenSearch] = useState(false);
3877
+ const searchAnchorEl = useRef(null);
3878
+ const countRows = useMemo(() => {
3879
+ if (searchText.length > 0) {
3880
+ const array = handleFilterBySearch(searchText);
3881
+ return array.length;
3882
+ }
3883
+ else {
3884
+ return defaultData.length;
3885
+ }
3886
+ }, [searchText, tableData]);
3887
+ const handleChangeRowsPerPage = ({ target, }) => {
3888
+ setRowsPerPage(parseInt(target.value));
3889
+ const maxPage = Math.floor(countRows / rowsPerPage);
3890
+ if (page > maxPage)
3891
+ setPage(maxPage);
3892
+ };
3893
+ function handleSort(data) {
3894
+ const sortable = data.slice(0);
3895
+ if (order === undefined)
3896
+ return sortable;
3897
+ sortable.sort((a, b) => {
3898
+ const x = a[orderBy];
3899
+ const y = b[orderBy];
3900
+ return x < y ? -1 : x > y ? 1 : 0;
3901
+ });
3902
+ return order === "asc" ? sortable : sortable.reverse();
3903
+ }
3904
+ function handleAddFilter() {
3905
+ const [column] = columnTitles.filter((item) => item.label === selectedTitle);
3906
+ const newFilter = {
3907
+ column: column.name,
3908
+ value: selectedFilterValue || "",
3909
+ transformer: column.transformer,
3910
+ };
3911
+ const filterAlreadyExists = selectedFilters.some((filter) => filter.column === column.name && filter.value === selectedFilterValue);
3912
+ if (filterAlreadyExists)
3913
+ return;
3914
+ setSelectedFilters([...selectedFilters, newFilter]);
3915
+ }
3916
+ function handleCloseFilter(item) {
3917
+ const filterToDelete = selectedFilters.find((filter) => filter.column === item.column && filter.value === item.value);
3918
+ if (!filterToDelete)
3919
+ return;
3920
+ const filteredSelectedFilters = selectedFilters.filter((_, index) => selectedFilters.indexOf(filterToDelete) !== index);
3921
+ setSelectedFilters([...filteredSelectedFilters]);
3922
+ }
3923
+ function handleFilterBySearch(text) {
3924
+ const newArray = defaultData.filter((item) => {
3925
+ for (const [, value] of Object.entries(item)) {
3926
+ if (`${value}`.includes(text))
3927
+ return true;
3928
+ }
3929
+ return false;
3930
+ });
3931
+ return newArray;
3932
+ }
3933
+ useEffect(() => {
3934
+ const maxPage = Math.floor(countRows / rowsPerPage);
3935
+ if (page > maxPage)
3936
+ setPage(maxPage - 1);
3937
+ }, [countRows]);
3938
+ useEffect(() => {
3939
+ if (order) {
3940
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3941
+ const sortedArray = handleSort(newArray);
3942
+ const data = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3943
+ setTableData(data);
3944
+ }
3945
+ else {
3946
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3947
+ const data = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3948
+ setTableData(data);
3949
+ }
3950
+ }, [defaultData]);
3951
+ useEffect(() => {
3952
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3953
+ const sortedArray = handleSort(newArray);
3954
+ const paginatedArray = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3955
+ setTableData(paginatedArray);
3956
+ }, [order, orderBy]);
3957
+ useEffect(() => {
3958
+ if (order) {
3959
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3960
+ const sortedArray = handleSort(newArray);
3961
+ const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3962
+ setTableData(dados);
3963
+ }
3964
+ else {
3965
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3966
+ const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3967
+ setTableData(dados);
3968
+ }
3969
+ }, [page, rowsPerPage]);
3970
+ useEffect(() => {
3971
+ setValuesToFilter([]);
3972
+ setSelectedFilterValue(undefined);
3973
+ if (selectedTitle) {
3974
+ const values = [];
3975
+ const [prop] = columnTitles.filter((item) => item.label === selectedTitle);
3976
+ const newArray = searchText.length > 0 ? handleFilterBySearch(searchText) : defaultData;
3977
+ newArray.forEach((item) => {
3978
+ const value = prop.transformer
3979
+ ? prop.transformer(getPropertyValue(item, prop.name))
3980
+ : String(getPropertyValue(item, prop.name));
3981
+ if (!values.includes(value))
3982
+ values.push(value);
3983
+ });
3984
+ setValuesToFilter(values);
3985
+ }
3986
+ }, [selectedTitle]);
3987
+ useEffect(() => {
3988
+ if (order) {
3989
+ const newArray = handleFilterBySearch(searchText);
3990
+ const sortedArray = handleSort(newArray);
3991
+ const dados = sortedArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3992
+ setTableData(dados);
3993
+ }
3994
+ else {
3995
+ const newArray = handleFilterBySearch(searchText);
3996
+ const dados = newArray.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
3997
+ setTableData(dados);
3998
+ }
3999
+ }, [searchText]);
4000
+ useEffect(() => {
4001
+ updateFilters(selectedFilters);
4002
+ }, [selectedFilters]);
4003
+ return (React__default.createElement(Paper, null,
4004
+ isLoading && React__default.createElement(LinearProgress, null),
4005
+ React__default.createElement(FiltersBar, { setAnchorEl: setAnchorEl, setOpenSearch: setOpenSearch, searchAnchorEl: searchAnchorEl, noFilterButtons: noFilterButtons, selectedFilters: selectedFilters, customButtons: customButtons, handleCloseFilter: handleCloseFilter }),
4006
+ React__default.createElement(TableContainer, null,
4007
+ React__default.createElement(Table, { size: "small" },
4008
+ React__default.createElement(GridHeader, { titles: columnTitles, order: order, orderBy: orderBy, setOrder: setOrder, setOrderBy: setOrderBy }),
4009
+ React__default.createElement(TableBody, null,
4010
+ props.children ? (props.children) : primaryKey ? (React__default.createElement(AutoCreatedRows, { tableData: tableData, columns: columnTitles, primaryKey: primaryKey })) : null,
4011
+ footer))),
4012
+ !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) => {
4013
+ setPage(newPage);
4014
+ }, onRowsPerPageChange: handleChangeRowsPerPage })),
4015
+ React__default.createElement(Popover, { anchorEl: anchorEl, open: !!anchorEl, onClose: () => setAnchorEl(null), anchorOrigin: {
4016
+ vertical: "top",
4017
+ horizontal: "right",
4018
+ }, transformOrigin: {
4019
+ vertical: "top",
4020
+ horizontal: "right",
4021
+ } },
4022
+ React__default.createElement(Box$2, { sx: { minWidth: 300, padding: 2 } },
4023
+ React__default.createElement(Typography, { fontWeight: "bold", variant: "body2" }, "Filtrar por:"),
4024
+ React__default.createElement(Autocomplete$1, { value: selectedTitle || "", onChange: ({ target }) => {
4025
+ !target.innerHTML.includes("path")
4026
+ ? setSelectedTitle(target.innerHTML)
4027
+ : setSelectedTitle(undefined);
4028
+ }, options: columnTitles.map((title) => title.label), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Coluna" }))) }),
4029
+ React__default.createElement(Autocomplete$1, { value: selectedFilterValue || "", onChange: ({ target }) => {
4030
+ !target.innerHTML.includes("path")
4031
+ ? setSelectedFilterValue(target.innerHTML)
4032
+ : setSelectedFilterValue(undefined);
4033
+ }, disabled: valuesToFilter.length < 1, options: valuesToFilter.map((title) => title), renderInput: (params) => (React__default.createElement(TextField, Object.assign({ variant: "standard", margin: "dense" }, params, { label: "Valor" }))) }),
4034
+ React__default.createElement(Box$2, { sx: { py: 1 } }),
4035
+ React__default.createElement(Button, { disabled: !selectedFilterValue, onClick: handleAddFilter, fullWidth: true }, "Adicionar filtro"))),
4036
+ React__default.createElement(Popover, { anchorEl: searchAnchorEl.current, open: openSearch, onClose: () => setOpenSearch(false), anchorOrigin: {
4037
+ vertical: "top",
4038
+ horizontal: "left",
4039
+ }, transformOrigin: {
4040
+ vertical: "top",
4041
+ horizontal: "left",
4042
+ } },
4043
+ React__default.createElement(Box$2, { sx: {
4044
+ minWidth: 300,
4045
+ px: 2,
4046
+ pb: 1,
4047
+ display: "grid",
4048
+ gridTemplateColumns: "1fr 30px",
4049
+ alignItems: "flex-end",
4050
+ } },
4051
+ React__default.createElement(TextField, { variant: "standard", margin: "dense", label: "Buscar", value: searchText, onChange: ({ currentTarget }) => setSearchText(currentTarget.value) }),
4052
+ React__default.createElement(Box$2, null,
4053
+ React__default.createElement(IconButton, { onClick: () => {
4054
+ setSearchText("");
4055
+ setOpenSearch(false);
4056
+ } },
4057
+ React__default.createElement(MdClose, { size: 8 * 3 })))))));
4058
+ };
4059
+
3837
4060
  var moment$1 = {exports: {}};
3838
4061
 
3839
4062
  (function (module, exports) {
@@ -9517,6 +9740,48 @@ var moment$1 = {exports: {}};
9517
9740
 
9518
9741
  var moment = moment$1.exports;
9519
9742
 
9743
+ const DefaultInput = (allProps) => {
9744
+ var _a;
9745
+ const { TextFieldProps, onSave, name, onUpdateValue, rowData, type = "text", fullWidth = true, isEditing, formatInputDefautvalue, setIsEditing, handleCancelEditing, } = allProps;
9746
+ const formatDefaultValue = (value) => {
9747
+ if (formatInputDefautvalue)
9748
+ return formatInputDefautvalue(value);
9749
+ switch (type) {
9750
+ case "date":
9751
+ return moment(value).format("YYYY-MM-DD");
9752
+ case "datetime-local":
9753
+ return moment(value).format("YYYY-MM-DDTHH:mm:ss");
9754
+ default:
9755
+ return String(value);
9756
+ }
9757
+ };
9758
+ const handleSave = (event) => {
9759
+ var _a, _b, _c;
9760
+ onUpdateValue(String((_a = event.target) === null || _a === void 0 ? void 0 : _a.value));
9761
+ setIsEditing(false);
9762
+ const response = {
9763
+ name,
9764
+ event,
9765
+ value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
9766
+ data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value }),
9767
+ };
9768
+ onSave(response);
9769
+ };
9770
+ const onKeyDown = (ev) => {
9771
+ if (ev.code === "Enter")
9772
+ handleSave(ev);
9773
+ if (ev.code === "Escape")
9774
+ handleCancelEditing();
9775
+ };
9776
+ 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: {
9777
+ style: {
9778
+ paddingBottom: 6,
9779
+ paddingTop: 6,
9780
+ },
9781
+ onKeyDown,
9782
+ }, 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)));
9783
+ };
9784
+
9520
9785
  function _typeof(obj) {
9521
9786
  "@babel/helpers - typeof";
9522
9787
 
@@ -12611,7 +12876,7 @@ IMask.HTMLContenteditableMaskElement = HTMLContenteditableMaskElement;
12611
12876
  var _excluded$2 = ["mask"];
12612
12877
  /** Listens to element events and controls changes between element and {@link Masked} */
12613
12878
 
12614
- var InputMask$1 = /*#__PURE__*/function () {
12879
+ var InputMask$2 = /*#__PURE__*/function () {
12615
12880
  /**
12616
12881
  View element
12617
12882
  @readonly
@@ -13016,7 +13281,7 @@ var InputMask$1 = /*#__PURE__*/function () {
13016
13281
 
13017
13282
  return InputMask;
13018
13283
  }();
13019
- IMask.InputMask = InputMask$1;
13284
+ IMask.InputMask = InputMask$2;
13020
13285
 
13021
13286
  /** Pattern which validates enum values */
13022
13287
 
@@ -14442,30 +14707,9 @@ function useIMask(opts) {
14442
14707
  };
14443
14708
  }
14444
14709
 
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) => {
14710
+ const InputMask$1 = (allProps) => {
14467
14711
  var _a;
14468
- const { TextFieldProps, onSave, name, data, mask, fullWidth = true, isEditing, handleCancelEditing, setIsEditing, } = allProps;
14712
+ const { TextFieldProps, onSave, name, rowData, mask, fullWidth = true, isEditing, handleCancelEditing, setIsEditing, } = allProps;
14469
14713
  const { ref, unmaskedValue, setValue } = useIMask(mask);
14470
14714
  const handleSave = (event) => {
14471
14715
  var _a, _b, _c;
@@ -14476,7 +14720,7 @@ const InputMask = (allProps) => {
14476
14720
  event,
14477
14721
  value: (_b = event.target) === null || _b === void 0 ? void 0 : _b.value,
14478
14722
  unmaskedValue,
14479
- data: Object.assign(Object.assign({}, data), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value }),
14723
+ data: Object.assign(Object.assign({}, rowData), { [name]: (_c = event.target) === null || _c === void 0 ? void 0 : _c.value }),
14480
14724
  };
14481
14725
  onSave(response);
14482
14726
  };
@@ -14487,9 +14731,9 @@ const InputMask = (allProps) => {
14487
14731
  handleCancelEditing();
14488
14732
  };
14489
14733
  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]]);
14734
+ if (rowData === null || rowData === void 0 ? void 0 : rowData[name])
14735
+ setValue(String(rowData === null || rowData === void 0 ? void 0 : rowData[name]));
14736
+ }, [rowData === null || rowData === void 0 ? void 0 : rowData[name]]);
14493
14737
  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
14738
  style: {
14495
14739
  paddingBottom: 6,
@@ -14497,258 +14741,215 @@ const InputMask = (allProps) => {
14497
14741
  },
14498
14742
  onKeyDown,
14499
14743
  }, 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));
14744
+ };
14745
+
14746
+ const EditableTableCell = (allProps) => {
14747
+ 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"]);
14748
+ const [isEditing, setIsEditing] = useState(false);
14749
+ const [value, setValue] = useState(rowData === null || rowData === void 0 ? void 0 : rowData[name]);
14750
+ const handleCancelEditing = () => {
14519
14751
  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();
14752
+ if (onCancel)
14753
+ onCancel();
14533
14754
  };
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)));
14755
+ 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) => {
14756
+ setValue(props.value);
14757
+ onSave(props);
14758
+ }, handleCancelEditing: handleCancelEditing, formatInputDefautvalue: formatInputDefautvalue })) : (React__default.createElement(DefaultInput, { onUpdateValue: (newValue) => {
14759
+ setValue(newValue);
14760
+ }, 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
14761
  };
14542
14762
 
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));
14546
- };
14547
- const Tr = memo(CustomTableRow);
14763
+ function GridV2({ columns, data, }) {
14764
+ const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable({ columns, data });
14765
+ return (React__default.createElement("table", Object.assign({}, getTableProps()),
14766
+ React__default.createElement("thead", null, headerGroups.map((headerGroup) => (React__default.createElement("tr", Object.assign({}, headerGroup.getHeaderGroupProps()), headerGroup.headers.map((column) => (React__default.createElement("th", Object.assign({}, column.getHeaderProps()), column.render("Header")))))))),
14767
+ React__default.createElement("tbody", Object.assign({}, getTableBodyProps()), rows.map((row, i) => {
14768
+ prepareRow(row);
14769
+ return (React__default.createElement("tr", Object.assign({}, row.getRowProps()), row.cells.map((cell) => {
14770
+ return React__default.createElement("td", Object.assign({}, cell.getCellProps()), cell.render("Cell"));
14771
+ })));
14772
+ }))));
14773
+ }
14548
14774
 
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
- }))))));
14775
+ const Input = (_a) => {
14776
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14777
+ if (withFormik)
14778
+ return React__default.createElement(FormikInput, Object.assign({}, rest));
14779
+ else
14780
+ return React__default.createElement(BaseInput$1, Object.assign({}, rest));
14781
+ };
14782
+ const BaseInput$1 = (props) => {
14783
+ return React__default.createElement(TextField, Object.assign({ fullWidth: true }, props));
14784
+ };
14785
+ const FormikInput = (_a) => {
14786
+ var { name } = _a, rest = __rest(_a, ["name"]);
14787
+ return (React__default.createElement(Field, { name: name }, (_a) => {
14788
+ var _b = _a.field, field = __rest(_b, ["value"]);
14789
+ return (React__default.createElement(BaseInput$1, Object.assign({}, field, rest)));
14790
+ }));
14556
14791
  };
14557
14792
 
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]);
14793
+ function InputMask(_a) {
14794
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14795
+ if (withFormik)
14796
+ return React__default.createElement(FormikInputMask, Object.assign({}, rest));
14797
+ else
14798
+ return React__default.createElement(BaseInputMask, Object.assign({}, rest));
14799
+ }
14800
+ const BaseInputMask = (_a) => {
14801
+ var { mask, defaultValue, onChangeValue } = _a, rest = __rest(_a, ["mask", "defaultValue", "onChangeValue"]);
14802
+ const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14650
14803
  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]);
14804
+ if (!value)
14805
+ setValue(String(defaultValue));
14806
+ }, [defaultValue]);
14663
14807
  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]);
14808
+ if (onChangeValue)
14809
+ onChangeValue(value, unmaskedValue);
14810
+ }, [value]);
14811
+ return React__default.createElement(BaseInput$1, Object.assign({ inputRef: ref }, rest));
14812
+ };
14813
+ function FormikInputMask(_a) {
14814
+ var { mask, defaultValue, name } = _a, rest = __rest(_a, ["mask", "defaultValue", "name"]);
14815
+ const { ref, value, unmaskedValue, setValue } = useIMask(mask);
14680
14816
  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);
14817
+ if (!value && defaultValue)
14818
+ setValue(String(defaultValue));
14819
+ }, [defaultValue]);
14820
+ const onChange = (setFieldValue) => {
14821
+ setFieldValue(name, unmaskedValue);
14822
+ };
14823
+ return (React__default.createElement(Field, { name: name }, (_a) => {
14824
+ var _b = _a.field, field = __rest(_b, ["value"]), { form: { setFieldValue } } = _a;
14825
+ return (React__default.createElement(BaseInput$1, Object.assign({}, rest, field, { onChange: () => onChange(setFieldValue), inputRef: ref })));
14826
+ }));
14827
+ }
14828
+
14829
+ const CustomInputLabel = InputLabel;
14830
+ const Select = (_a) => {
14831
+ var { withFormik = true } = _a, rest = __rest(_a, ["withFormik"]);
14832
+ if (withFormik)
14833
+ return React__default.createElement(FormikSelect, Object.assign({}, rest));
14834
+ else
14835
+ return React__default.createElement(BaseSelect, Object.assign({}, rest));
14836
+ };
14837
+ const BaseSelect = (_a) => {
14838
+ var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14839
+ return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14840
+ React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14841
+ React__default.createElement(Select$1, Object.assign({ name: name, inputProps: {
14842
+ name,
14843
+ }, label: label }, rest), children)));
14844
+ };
14845
+ const FormikSelect = (_a) => {
14846
+ var { name, label, children, FormControlProps, InputLabelProps } = _a, rest = __rest(_a, ["name", "label", "children", "FormControlProps", "InputLabelProps"]);
14847
+ const [_b, meta, { setValue }] = useField({ name }), field = __rest(_b, ["value"]);
14848
+ const onChange = (_, { props: { value } }) => {
14849
+ setValue(value);
14850
+ };
14851
+ return (React__default.createElement(FormControl, Object.assign({ fullWidth: true }, FormControlProps),
14852
+ React__default.createElement(CustomInputLabel, Object.assign({}, InputLabelProps), label),
14853
+ React__default.createElement(Select$1, Object.assign({ inputProps: {
14854
+ name,
14855
+ }, label: label }, rest, field, { onChange: onChange }), children)));
14856
+ };
14857
+
14858
+ function Autocomplete(_a) {
14859
+ var { withFormik = true, name, getOptionValue } = _a, rest = __rest(_a, ["withFormik", "name", "getOptionValue"]);
14860
+ if (withFormik && !!getOptionValue) {
14861
+ return (React__default.createElement(FormikAutocomplete, Object.assign({ name: name, getOptionValue: getOptionValue }, rest)));
14862
+ }
14863
+ else
14864
+ return React__default.createElement(BaseInput, Object.assign({}, rest));
14865
+ }
14866
+ function BaseInput(props) {
14867
+ return (React__default.createElement(Autocomplete$1, Object.assign({ fullWidth: true, renderInput: (params) => React__default.createElement(TextField, Object.assign({ label: props.label }, params)) }, props)));
14868
+ }
14869
+ function FormikAutocomplete(_a) {
14870
+ var { getOptionValue } = _a, props = __rest(_a, ["getOptionValue"]);
14871
+ const [_b, , { setValue }] = useField({ name: props.name }), field = __rest(_b, []);
14872
+ const onChange = (_, newValue) => {
14873
+ if (getOptionValue) {
14874
+ setValue(getOptionValue(newValue));
14691
14875
  }
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 })))))));
14876
+ else
14877
+ setValue(newValue);
14878
+ };
14879
+ return (React__default.createElement(Autocomplete$1, Object.assign({}, props, { renderInput: (params) => (React__default.createElement(TextField, Object.assign({}, params, field, { label: props.label }))), onChange: onChange })));
14880
+ }
14881
+
14882
+ const Checkbox = (_a) => {
14883
+ var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14884
+ if (withFormik && name)
14885
+ return React__default.createElement(FormikCheckbox, Object.assign({ name: name }, props));
14886
+ else
14887
+ return React__default.createElement(BaseCheckbox, Object.assign({}, props));
14888
+ };
14889
+ const BaseCheckbox = (_a) => {
14890
+ var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14891
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Checkbox$1, Object.assign({}, props)) }, FormControlLabelProps)));
14892
+ };
14893
+ const FormikCheckbox = (_a) => {
14894
+ var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14895
+ const [_b, , { setValue }] = useField({
14896
+ name,
14897
+ }), field = __rest(_b, ["value", "onChange"]);
14898
+ const onChange = (_, value) => {
14899
+ setValue(value);
14900
+ };
14901
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Checkbox$1, Object.assign({}, props)) }, field, FormControlLabelProps)));
14902
+ };
14903
+
14904
+ const Switch = (_a) => {
14905
+ var { withFormik = true, name } = _a, props = __rest(_a, ["withFormik", "name"]);
14906
+ if (withFormik && name)
14907
+ return React__default.createElement(FormikSwitch, Object.assign({ name: name }, props));
14908
+ else
14909
+ return React__default.createElement(BaseSwitch, Object.assign({}, props));
14910
+ };
14911
+ const BaseSwitch = (_a) => {
14912
+ var { label, FormControlLabelProps } = _a, props = __rest(_a, ["label", "FormControlLabelProps"]);
14913
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, control: React__default.createElement(Switch$1, Object.assign({}, props)) }, FormControlLabelProps)));
14914
+ };
14915
+ const FormikSwitch = (_a) => {
14916
+ var { label, name, FormControlLabelProps } = _a, props = __rest(_a, ["label", "name", "FormControlLabelProps"]);
14917
+ const [_b, , { setValue }] = useField({
14918
+ name,
14919
+ }), field = __rest(_b, ["value", "onChange"]);
14920
+ const onChange = (_, value) => {
14921
+ setValue(value);
14922
+ };
14923
+ return (React__default.createElement(FormControlLabel, Object.assign({ label: label, onChange: onChange, control: React__default.createElement(Switch$1, Object.assign({}, props)) }, field, FormControlLabelProps)));
14924
+ };
14925
+
14926
+ const Radio = (_a) => {
14927
+ var { name, withFormik = true } = _a, rest = __rest(_a, ["name", "withFormik"]);
14928
+ if (withFormik && name)
14929
+ return React__default.createElement(FormikRadio, Object.assign({ name: name }, rest));
14930
+ else
14931
+ return React__default.createElement(BaseRadio, Object.assign({}, rest));
14932
+ };
14933
+ const BaseRadio = (_a) => {
14934
+ var { label, options } = _a, rest = __rest(_a, ["label", "options"]);
14935
+ return (React__default.createElement(FormControl, null,
14936
+ label && React__default.createElement(FormLabel, null, label),
14937
+ 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) }))))));
14938
+ };
14939
+ const FormikRadio = (_a) => {
14940
+ var { label, name, options } = _a, rest = __rest(_a, ["label", "name", "options"]);
14941
+ const onChange = (setFieldValue, value) => {
14942
+ setFieldValue(name, value);
14943
+ };
14944
+ return (React__default.createElement(Field, null, ({ form: { setFieldValue } }) => (React__default.createElement(FormControl, null,
14945
+ label && React__default.createElement(FormLabel, null, label),
14946
+ 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) }))))))));
14947
+ };
14948
+
14949
+ const LargeButton = (_a) => {
14950
+ var { loading, children } = _a, rest = __rest(_a, ["loading", "children"]);
14951
+ return (React__default.createElement(Button, Object.assign({ variant: "contained", fullWidth: true, sx: Object.assign({ color: "#fff", fontWeight: "bold" }, rest.sx) }, rest), children));
14751
14952
  };
14752
14953
 
14753
- export { EditableTableCell, Grid, Td, Tr, filterData };
14954
+ export { Autocomplete, Checkbox, EditableTableCell, Grid, GridV2, Input, InputMask, LargeButton, Radio, Select, Switch, Td, Tr, filterData };
14754
14955
  //# sourceMappingURL=index.js.map