@data-c/pro 0.2.70 → 0.2.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -44,6 +44,8 @@ interface DataTableProps extends Omit<DataGridProProps, 'onCellKeyDown' | 'onRow
44
44
  onRowSelectionChange?: (rowSelectionModel: GridRowSelectionModel, details: GridCallbackDetails) => void;
45
45
  restoreFromState?: GridViewState | null;
46
46
  warmUpMs?: number;
47
+ stateMs?: number;
48
+ localStorageKey?: string;
47
49
  }
48
50
 
49
51
  type DataTableActionProps = {} & GridActionsCellItemProps;
package/dist/index.js CHANGED
@@ -166,6 +166,7 @@ var _DataTable = _react2.default.forwardRef(
166
166
  onColumnVisibilityModelChange,
167
167
  onColumnOrderChange,
168
168
  onColumnWidthChange,
169
+ onStateChange,
169
170
  controlledRowsSelectedId,
170
171
  onClearRowsSelectedId,
171
172
  onRowSelectionChange,
@@ -175,11 +176,13 @@ var _DataTable = _react2.default.forwardRef(
175
176
  slots,
176
177
  restoreFromState,
177
178
  warmUpMs = 150,
179
+ stateMs = 500,
178
180
  pinnedColumns,
179
181
  sx,
180
182
  sortingMode = "server",
181
183
  disableColumnPinning = true,
182
184
  disableColumnFilter = true,
185
+ localStorageKey,
183
186
  ...rest
184
187
  } = props;
185
188
  const {
@@ -189,40 +192,40 @@ var _DataTable = _react2.default.forwardRef(
189
192
  setClearCallback,
190
193
  apiRef
191
194
  } = useTableRootContext();
195
+ const restore = (state) => {
196
+ if (!_optionalChain([apiRef, 'optionalAccess', _2 => _2.current]) || !state)
197
+ return;
198
+ const cleanState = Object.entries(state).reduce((acc, [key, value]) => {
199
+ if (value !== null) {
200
+ acc[key] = value;
201
+ }
202
+ return acc;
203
+ }, {});
204
+ if (Object.keys(cleanState).length > 0) {
205
+ window.setTimeout(() => {
206
+ if (_optionalChain([apiRef, 'optionalAccess', _3 => _3.current])) {
207
+ apiRef.current.restoreState(cleanState);
208
+ hasRestoredStateRef.current = true;
209
+ }
210
+ }, warmUpMs);
211
+ }
212
+ };
213
+ const exportState = () => {
214
+ return _optionalChain([apiRef, 'optionalAccess', _4 => _4.current, 'optionalAccess', _5 => _5.exportState, 'call', _6 => _6({
215
+ exportOnlyDirtyModels: true
216
+ })]);
217
+ };
192
218
  _react2.default.useImperativeHandle(
193
219
  ref,
194
220
  () => ({
195
221
  apiRef: apiRef.current,
196
- restoreState: (state) => {
197
- if (!_optionalChain([apiRef, 'optionalAccess', _2 => _2.current]) || !state)
198
- return;
199
- const cleanState = Object.entries(state).reduce(
200
- (acc, [key, value]) => {
201
- if (value !== null) {
202
- acc[key] = value;
203
- }
204
- return acc;
205
- },
206
- {}
207
- );
208
- if (Object.keys(cleanState).length > 0) {
209
- window.setTimeout(() => {
210
- if (_optionalChain([apiRef, 'optionalAccess', _3 => _3.current])) {
211
- apiRef.current.restoreState(cleanState);
212
- hasRestoredStateRef.current = true;
213
- }
214
- }, warmUpMs);
215
- }
216
- },
217
- exportState: () => {
218
- return _optionalChain([apiRef, 'optionalAccess', _4 => _4.current, 'optionalAccess', _5 => _5.exportState, 'call', _6 => _6({
219
- exportOnlyDirtyModels: true
220
- })]);
221
- }
222
+ restoreState: restore,
223
+ exportState
222
224
  }),
223
- [apiRef]
225
+ [apiRef, restore]
224
226
  );
225
227
  const columnWidthDebounceRef = _react2.default.useRef(null);
228
+ const stateChangeDebounceRef = _react2.default.useRef(null);
226
229
  const ignoreWarmupRef = _react2.default.useRef(true);
227
230
  const hasRestoredStateRef = _react2.default.useRef(false);
228
231
  _react2.default.useEffect(() => {
@@ -234,6 +237,9 @@ var _DataTable = _react2.default.forwardRef(
234
237
  if (columnWidthDebounceRef.current) {
235
238
  window.clearTimeout(columnWidthDebounceRef.current);
236
239
  }
240
+ if (stateChangeDebounceRef.current) {
241
+ window.clearTimeout(stateChangeDebounceRef.current);
242
+ }
237
243
  };
238
244
  }, []);
239
245
  _react.useEffect.call(void 0, () => {
@@ -300,6 +306,20 @@ var _DataTable = _react2.default.forwardRef(
300
306
  emitColumnChange({ reason: "width" });
301
307
  }, 250);
302
308
  }, [emitColumnChange]);
309
+ const handleStateChangeDebounced = _react.useCallback.call(void 0,
310
+ (state, event, details) => {
311
+ if (stateChangeDebounceRef.current) {
312
+ window.clearTimeout(stateChangeDebounceRef.current);
313
+ }
314
+ stateChangeDebounceRef.current = window.setTimeout(() => {
315
+ _optionalChain([onStateChange, 'optionalCall', _11 => _11(state, event, details)]);
316
+ if (localStorageKey) {
317
+ localStorage.setItem(localStorageKey, JSON.stringify(exportState()));
318
+ }
319
+ }, stateMs);
320
+ },
321
+ [onStateChange]
322
+ );
303
323
  _react.useEffect.call(void 0, () => {
304
324
  if (controlledRowsSelectedId) {
305
325
  setRowsSelectedId(controlledRowsSelectedId);
@@ -314,6 +334,12 @@ var _DataTable = _react2.default.forwardRef(
314
334
  setClearCallback(false);
315
335
  }
316
336
  }, [clearCallback]);
337
+ _react.useEffect.call(void 0, () => {
338
+ if (localStorageKey) {
339
+ const raw = localStorage.getItem(localStorageKey);
340
+ raw && restore(JSON.parse(raw));
341
+ }
342
+ }, [localStorageKey]);
317
343
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
318
344
  _material.Stack,
319
345
  {
@@ -347,6 +373,7 @@ var _DataTable = _react2.default.forwardRef(
347
373
  onColumnOrderChange: _onColumnOrderChange,
348
374
  onColumnWidthChange: _onColumnWidthChange,
349
375
  onColumnVisibilityModelChange: _onColumnVisibilityModelChange,
376
+ onStateChange: handleStateChangeDebounced,
350
377
  density: "compact",
351
378
  hideFooterPagination: true,
352
379
  hideFooter: true,
@@ -793,7 +820,7 @@ var getFilteredRows = ({ apiRef }) => _xdatagridpro.gridFilteredSortedRowIdsSele
793
820
  function ExportCsvButton() {
794
821
  const { apiRef } = useTableRootContext();
795
822
  const handleExport = (options) => {
796
- if (_optionalChain([apiRef, 'optionalAccess', _11 => _11.current])) {
823
+ if (_optionalChain([apiRef, 'optionalAccess', _12 => _12.current])) {
797
824
  apiRef.current.exportDataAsCsv(options);
798
825
  }
799
826
  };
@@ -852,7 +879,7 @@ function Pagination(props) {
852
879
  } = props;
853
880
  const { page, pageSize = 15, totalRecords } = pagination || {};
854
881
  const pages = _react.useMemo.call(void 0, () => {
855
- if (_optionalChain([pagination, 'optionalAccess', _12 => _12.lastPage]))
882
+ if (_optionalChain([pagination, 'optionalAccess', _13 => _13.lastPage]))
856
883
  return pagination.lastPage;
857
884
  if ((totalRecords || 0) < pageSize)
858
885
  return 1;
@@ -984,7 +1011,7 @@ function Root({ children, height, ...rest }) {
984
1011
  function SelectionCounter(props) {
985
1012
  const { countTitle, gender } = props;
986
1013
  const { rowsSelectedId } = useTableRootContext();
987
- const countQuantidade = _optionalChain([rowsSelectedId, 'optionalAccess', _13 => _13.ids, 'access', _14 => _14.size]) || 0;
1014
+ const countQuantidade = _optionalChain([rowsSelectedId, 'optionalAccess', _14 => _14.ids, 'access', _15 => _15.size]) || 0;
988
1015
  const flexSufixCountTitle = _react.useMemo.call(void 0, () => {
989
1016
  if (!countTitle)
990
1017
  return "";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/DataTable/index.ts","../src/DataTable/DataTable.tsx","../src/DataTable/DataTableEmptyData.tsx","../src/DataTable/DataTableError.tsx","../src/DataTable/DataTableRootProvider.tsx","../src/DataTable/DataTableAction.tsx","../src/DataTable/DataTableActionDelete.tsx","../src/DataTable/DataTableActionEdit.tsx","../src/DataTable/DataTableActions.tsx","../src/DataTable/DataTableActionTransport.tsx","../src/DataTable/DataTableAddPanelTrigger.tsx","../src/DataTable/DataTableButton.tsx","../src/DataTable/DataTableCellAction.tsx","../src/DataTable/DataTableCellActionDelete.tsx","../src/DataTable/DataTableCellActionEdit.tsx","../src/DataTable/DataTableCellActions.tsx","../src/DataTable/DataTableCellActionTransport.tsx","../src/DataTable/DataTableColumnsPanelTrigger.tsx","../src/DataTable/DataTableContent.tsx","../src/DataTable/DataTableExportCsvButton.tsx","../src/DataTable/DataTableFooter.tsx","../src/DataTable/DataTablePagination.tsx","../src/DataTable/DataTableRoot.tsx","../src/DataTable/DataTableSelectionCounter.tsx","../src/DataTable/DataTableTitle.tsx","../src/DataTable/DataTableToolbar.tsx","../src/DataTable/DataTableToolbarActionsContainer.tsx"],"names":["useGridApiRef","Stack","Typography","jsx","jsxs","GridActionsCellItem","useEffect","useTheme","Fragment","ToolbarButton","gridFilteredSortedRowIdsSelector","useState","useMemo","DataTable_default"],"mappings":"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","sourcesContent":["import { useGridApiRef } from '@mui/x-data-grid-pro'\n\nimport DataTableV3 from './DataTable'\nimport DataTableAction from './DataTableAction'\nimport DataTableActionDelete from './DataTableActionDelete'\nimport DataTableActionEdit from './DataTableActionEdit'\nimport DataTableActions from './DataTableActions'\nimport DataTableActionTransport from './DataTableActionTransport'\nimport DataTableAddPanelTrigger from './DataTableAddPanelTrigger'\nimport DataTableButton from './DataTableButton'\nimport DataTableCellAction from './DataTableCellAction'\nimport DataTableCellActionDelete from './DataTableCellActionDelete'\nimport DataTableCellActionEdit from './DataTableCellActionEdit'\nimport DataTableCellActions from './DataTableCellActions'\nimport DataTableCellActionTransport from './DataTableCellActionTransport'\nimport DataTableColumnsPanelTrigger from './DataTableColumnsPanelTrigger'\nimport DataTableContent from './DataTableContent'\nimport DataTableExportCsvButton from './DataTableExportCsvButton'\nimport DataTableFooter from './DataTableFooter'\nimport DataTablePagination from './DataTablePagination'\nimport DataTableRoot from './DataTableRoot'\nimport DataTableSelectionCounter from './DataTableSelectionCounter'\nimport DataTableTitle from './DataTableTitle'\nimport DataTableToolbar from './DataTableToolbar'\nimport DataTableToolbarActionsContainer from './DataTableToolbarActionsContainer'\nimport { GridViewState, GridWrapperApi } from './types'\n\nconst DataTable = {\n CellActionTransport: DataTableCellActionTransport,\n SelectionCounter: DataTableSelectionCounter,\n CellActionDelete: DataTableCellActionDelete,\n ExportCsvButton: DataTableExportCsvButton,\n CellActionEdit: DataTableCellActionEdit,\n CellActions: DataTableCellActions,\n CellAction: DataTableCellAction,\n Pagination: DataTablePagination,\n Actions: DataTableActions,\n Toolbar: DataTableToolbar,\n ToolbarActionsContainer: DataTableToolbarActionsContainer,\n Content: DataTableContent,\n Button: DataTableButton,\n Footer: DataTableFooter,\n Table: DataTableV3,\n Title: DataTableTitle,\n Root: DataTableRoot,\n Action: DataTableAction,\n ActionEdit: DataTableActionEdit,\n ActionDelete: DataTableActionDelete,\n ActionTransport: DataTableActionTransport,\n ColumnsPanelTrigger: DataTableColumnsPanelTrigger,\n AddPanelTrigger: DataTableAddPanelTrigger,\n useGridApiRef,\n}\n\nexport type { GridViewState, GridWrapperApi }\n\nexport default DataTable\n","import React, { useEffect } from 'react'\n\nimport { Circle } from '@mui/icons-material'\nimport { LinearProgress, Stack, StackProps } from '@mui/material'\nimport {\n DataGridPro,\n DataGridProProps,\n GridApiPro,\n GridCallbackDetails,\n GridColumnOrderChangeParams,\n GridColumnResizeParams,\n GridColumnVisibilityModel,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n GridRowSelectionModel,\n GridRowsProp,\n MuiEvent,\n GridColDef as MuiGridColDef,\n} from '@mui/x-data-grid-pro'\nimport { ptBR } from '@mui/x-data-grid-pro/locales'\n\nimport DataTableEmptyData from './DataTableEmptyData'\nimport DataTableError from './DataTableError'\nimport { useTableRootContext } from './DataTableRootProvider'\nimport { ColumnChangeMeta, GridViewState, GridWrapperApi } from './types'\n\nexport type GridColDef = MuiGridColDef & {\n enableStickyColumns?: boolean\n}\n\nexport interface DataTableProps\n extends Omit<DataGridProProps, 'onCellKeyDown' | 'onRowDoubleClick'> {\n data?: GridRowsProp<{\n [key: string | symbol]: any\n }>\n columns: GridColDef[]\n error?: string\n isLoading?: boolean\n isFetching?: boolean\n stackProps?: StackProps\n onColumnChange?: (payload: {\n state: GridViewState\n meta: ColumnChangeMeta\n }) => void\n //Revisar os métodos abaixo\n controlledRowsSelectedId?: GridRowSelectionModel\n onCellKeyDown?: (event: 'edit' | 'delete', id: number | string) => void\n onRowDoubleClick?: (event: 'edit' | 'delete', id: number | string) => void\n onClearRowsSelectedId?: (rowsSelectedId: GridRowSelectionModel) => void\n onRowSelectionChange?: (\n rowSelectionModel: GridRowSelectionModel,\n details: GridCallbackDetails,\n ) => void\n restoreFromState?: GridViewState | null\n warmUpMs?: number\n}\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nconst _DataTable = React.forwardRef<GridWrapperApi, DataTableProps>(\n function Table(props, ref) {\n const {\n error,\n isLoading,\n isFetching,\n data,\n columns,\n onColumnChange,\n onColumnVisibilityModelChange,\n onColumnOrderChange,\n onColumnWidthChange,\n controlledRowsSelectedId,\n onClearRowsSelectedId,\n onRowSelectionChange,\n onCellKeyDown,\n onRowDoubleClick,\n stackProps,\n slots,\n restoreFromState,\n warmUpMs = 150,\n pinnedColumns,\n sx,\n sortingMode = 'server',\n disableColumnPinning = true,\n disableColumnFilter = true,\n ...rest\n } = props\n\n const {\n rowsSelectedId,\n setRowsSelectedId,\n clearCallback,\n setClearCallback,\n apiRef,\n } = useTableRootContext()\n\n React.useImperativeHandle(\n ref,\n () => ({\n apiRef: apiRef.current,\n\n restoreState: (state: any) => {\n if (!apiRef?.current || !state) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(state).reduce(\n (acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n },\n {} as any,\n )\n\n if (Object.keys(cleanState).length > 0) {\n // Aguarda um momento para garantir que o grid está pronto\n window.setTimeout(() => {\n if (apiRef?.current) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs)\n }\n },\n\n exportState: () => {\n return apiRef?.current?.exportState({\n exportOnlyDirtyModels: true,\n })\n },\n }),\n [apiRef],\n )\n\n const columnWidthDebounceRef = React.useRef<number | null>(null)\n const ignoreWarmupRef = React.useRef(true)\n const hasRestoredStateRef = React.useRef(false)\n\n // Ignore warmup: ignora eventos de largura de coluna no primeiro carregamento\n React.useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n ignoreWarmupRef.current = false\n }, 100) // Aguarda 100ms após montagem para considerar warmup concluído\n\n return () => {\n window.clearTimeout(timeoutId)\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (!apiRef.current) return\n if (!restoreFromState) return\n if (hasRestoredStateRef.current) return\n\n // Aguarda o próximo tick para garantir que o DataGrid está completamente montado\n const timeoutId = window.setTimeout(() => {\n if (!apiRef.current) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(restoreFromState).reduce(\n (acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n },\n {} as any,\n )\n\n if (Object.keys(cleanState).length > 0) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs) // Aguarda após o warmup + tempo de autosize\n\n return () => window.clearTimeout(timeoutId)\n }, [apiRef, restoreFromState])\n\n const emitColumnChange = React.useCallback(\n (meta: ColumnChangeMeta) => {\n if (!apiRef.current) return\n\n const state = apiRef.current.exportState({\n exportOnlyDirtyModels: true,\n })\n onColumnChange?.({ state, meta })\n },\n [apiRef, onColumnChange],\n )\n\n function _onColumnOrderChange(\n params: GridColumnOrderChangeParams,\n event: MuiEvent<{}>,\n details: GridCallbackDetails,\n ) {\n onColumnOrderChange?.(params, event, details)\n emitColumnChange({\n reason: 'order',\n })\n }\n\n function _onColumnWidthChange(\n params: GridColumnResizeParams,\n event: MuiEvent<{} | MouseEvent>,\n details: GridCallbackDetails,\n ) {\n // Ignora eventos durante o warmup (primeiro carregamento)\n if (ignoreWarmupRef.current) {\n return\n }\n\n onColumnWidthChange?.(params, event, details)\n emitColumnWidthChangeDebounced()\n }\n\n function _onColumnVisibilityModelChange(\n params: GridColumnVisibilityModel,\n details: GridCallbackDetails,\n ) {\n onColumnVisibilityModelChange?.(params, details)\n emitColumnChange({\n reason: 'visibility',\n })\n }\n\n const emitColumnWidthChangeDebounced = React.useCallback(() => {\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n\n columnWidthDebounceRef.current = window.setTimeout(() => {\n emitColumnChange({ reason: 'width' })\n }, 250) // ajuste aqui se quiser\n }, [emitColumnChange])\n\n useEffect(() => {\n if (controlledRowsSelectedId) {\n setRowsSelectedId(controlledRowsSelectedId)\n }\n }, [controlledRowsSelectedId])\n\n useEffect(() => {\n if (clearCallback) {\n onClearRowsSelectedId &&\n onClearRowsSelectedId({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(false)\n }\n }, [clearCallback])\n\n // function handleCellKeyDown(\n // params: GridEventLookup['cellKeyDown']['params'],\n // event: MuiEvent<GridEventLookup['cellKeyDown']['event']>,\n // details: GridCallbackDetails,\n // ) {\n // const eventCode =\n // event.ctrlKey && event.code === 'KeyE' ? 'ctrl+e' : event.code\n // switch (eventCode) {\n // case 'Enter':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // // case 'F2':\n // // event.preventDefault()\n // // //Open Form\n // // break\n // case 'F3':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // case 'Delete':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('delete', params.id)\n // break\n // case 'ctrl+e':\n // event.preventDefault()\n // const handleExport = (options: GridCsvExportOptions) => {\n // if (apiRef?.current) {\n // apiRef.current.exportDataAsCsv(options)\n // }\n // }\n\n // handleExport({ getRowsToExport: getFilteredRows })\n // break\n // default:\n // break\n // }\n // }\n\n // function handleRowDoubleClick(\n // params: GridRowParams,\n // _: React.MouseEvent,\n // details: GridCallbackDetails,\n // ) {\n // if (onRowDoubleClick) onRowDoubleClick('edit', params.id)\n // }\n\n return (\n <Stack\n height=\"100%\"\n minHeight=\"500px\"\n position=\"relative\"\n {...stackProps}\n >\n {!isLoading && isFetching && (\n <LinearProgress\n sx={{\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 999,\n height: '3px',\n }}\n />\n )}\n\n <DataGridPro\n apiRef={apiRef as React.MutableRefObject<GridApiPro> | undefined}\n rows={data}\n columns={columns}\n pinnedColumns={{ ...pinnedColumns, right: ['id', 'uuid'], left: [] }}\n disableColumnPinning={disableColumnPinning}\n disableColumnFilter={disableColumnFilter}\n onColumnOrderChange={_onColumnOrderChange}\n onColumnWidthChange={_onColumnWidthChange}\n onColumnVisibilityModelChange={_onColumnVisibilityModelChange}\n // Revisar parametros abaixo\n density=\"compact\"\n hideFooterPagination\n hideFooter\n loading={isLoading}\n rowHeight={43}\n columnHeaderHeight={43}\n disableVirtualization\n // onRowDoubleClick={handleRowDoubleClick}\n // onCellKeyDown={handleCellKeyDown}\n disableRowSelectionOnClick\n rowSelectionModel={rowsSelectedId}\n onRowSelectionModelChange={(rowSelectionModel, details) => {\n if (onRowSelectionChange) {\n onRowSelectionChange(rowSelectionModel, details)\n }\n\n if (controlledRowsSelectedId) return\n setRowsSelectedId(rowSelectionModel)\n }}\n slots={{\n booleanCellFalseIcon: () => (\n <Circle color=\"error\" sx={{ fontSize: '10pt' }} />\n ),\n booleanCellTrueIcon: () => (\n <Circle color=\"success\" sx={{ fontSize: '10pt' }} />\n ),\n noRowsOverlay: () =>\n !isLoading && !!error ? (\n <DataTableError errorMessage={error} />\n ) : (\n <DataTableEmptyData />\n ),\n ...slots,\n }}\n slotProps={{\n loadingOverlay: {\n variant: 'skeleton',\n noRowsVariant: 'skeleton',\n },\n }}\n localeText={ptBR.components.MuiDataGrid.defaultProps.localeText}\n sortingMode={sortingMode}\n sx={{\n border: 'none',\n borderRadius: 0,\n '--DataGrid-rowBorderColor': '#edf2f9',\n '--DataGrid-containerBackground': '#f4f6fa',\n '.MuiDataGrid-overlayWrapperInner': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n '.MuiDataGrid-row': {\n backgroundColor: 'white',\n '&:nth-of-type(even)': {\n backgroundColor: '#f9fafd',\n },\n ':hover': {\n backgroundColor: '#e9e9e9',\n },\n '&.Mui-selected': {\n backgroundColor: 'rgb(238, 249, 252)',\n '&:hover': {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n },\n },\n '.MuiDataGrid-cell': {\n fontSize: '12px',\n color: '#0b0e14',\n },\n '.MuiDataGrid-columnHeaders': {\n border: 'solid 1px #edf2f9',\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeader': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaders .MuiDataGrid-filler': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaderTitle': {\n fontSize: '12px',\n color: '#0b0e14',\n fontWeight: '600',\n },\n '& .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'white',\n },\n '& .MuiDataGrid-row:nth-of-type(even) .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: '#f9fafd',\n },\n '& .MuiDataGrid-row:hover .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: '#e9e9e9',\n },\n '& .MuiDataGrid-row.Mui-selected .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'rgb(238, 249, 252)',\n },\n '& .MuiDataGrid-row.Mui-selected:hover .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n '& .sticky-cell': {\n position: 'sticky',\n right: 0,\n zIndex: 1,\n },\n '& .sticky-header': {\n position: 'sticky',\n right: 0,\n backgroundColor: '#f4f6fa',\n zIndex: 2,\n },\n ...(sx as any),\n }}\n {...rest}\n />\n </Stack>\n )\n },\n)\n\nexport default _DataTable\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableEmptyData() {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/empty-data.svg\"\n alt=\"Imagem de notificação\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack spacing={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Nenhum registro encontrado\n </Typography>\n <Typography variant=\"body2\" whiteSpace=\"normal\">\n Tente outra pesquisa ou adicione um novo registro.\n </Typography>\n </Stack>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableError({\n errorMessage,\n}: {\n errorMessage: string\n}) {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/error.svg\"\n alt=\"Imagem de erro\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack gap={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Ops! Algo deu errado\n </Typography>\n\n <Typography variant=\"body2\">{errorMessage}</Typography>\n </Stack>\n </Stack>\n )\n}\n","import {\n createContext,\n ReactNode,\n RefObject,\n useContext,\n useState,\n} from 'react'\n\nimport {\n GridApiPro,\n GridRowSelectionModel,\n useGridApiRef,\n} from '@mui/x-data-grid-pro'\n\ninterface TableRootContextData {\n apiRef: RefObject<GridApiPro>\n rowsSelectedId: GridRowSelectionModel\n clearCallback: boolean\n breakpoint: boolean\n setBreakpoint: (breakpoint: boolean) => void\n setRowsSelectedId: (rowsSelectedId: GridRowSelectionModel) => void\n clearRowsSelectedId: () => void\n setClearCallback: (clearCallback: boolean) => void\n}\n\nexport const TableRootContext = createContext({} as TableRootContextData)\n\ninterface TableRootProviderProps {\n children: ReactNode\n}\n\nexport default function TableRootProvider({\n children,\n}: TableRootProviderProps) {\n const [ids, setIds] = useState<GridRowSelectionModel>({\n type: 'include',\n ids: new Set<string>(),\n })\n const [clearCallback, setClearCallback] = useState(false)\n const [breakpoint, setBreakpoint] = useState(false)\n\n const apiRef = useGridApiRef()\n\n function handleClearRowsSelectedId() {\n setIds({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(true)\n }\n\n return (\n <TableRootContext.Provider\n value={{\n apiRef,\n rowsSelectedId: ids,\n clearCallback,\n breakpoint,\n setClearCallback,\n setBreakpoint,\n setRowsSelectedId: setIds,\n clearRowsSelectedId: handleClearRowsSelectedId,\n }}\n >\n {children}\n </TableRootContext.Provider>\n )\n}\n\nexport function useTableRootContext() {\n return useContext<TableRootContextData>(TableRootContext)\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\n\nexport type DataTableActionProps = {} & GridActionsCellItemProps\n\nexport default function DataTableAction(props: DataTableActionProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Trash2 } from 'lucide-react'\n\nexport type DataTableActionDeleteProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionDelete(\n props: DataTableActionDeleteProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"error\"\n label=\"Deletar\"\n icon={<Trash2 size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Pencil } from 'lucide-react'\n\nexport type DataTableActionEditProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionEdit(props: DataTableActionEditProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n label=\"Editar\"\n color=\"primary\"\n icon={<Pencil size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { ReactNode, useEffect } from 'react'\nimport { Breakpoint, Stack, useMediaQuery, useTheme } from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface ActionsProps {\n breakpoints?: Breakpoint | number\n children: ReactNode\n}\n\nexport default function Actions({ children, breakpoints }: ActionsProps) {\n const { setBreakpoint } = useTableRootContext()\n\n const theme = useTheme()\n const breakpoint = useMediaQuery(theme.breakpoints.down(breakpoints || 'md'))\n\n useEffect(() => {\n setBreakpoint(breakpoint)\n }, [breakpoint])\n\n return (\n <Stack\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent={'flex-end'}\n // position=\"relative\"\n // overflow=\"hidden\"\n gap={1}\n marginLeft=\"auto\"\n flexGrow={1}\n >\n {children}\n </Stack>\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { ArrowBigDown } from 'lucide-react'\n\nexport type DataTableActionTransportProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionTransport(\n props: DataTableActionTransportProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"primary\"\n label=\"Transportar\"\n icon={<ArrowBigDown size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ToolbarButton } from '@mui/x-data-grid-pro'\nimport { SquarePlus } from 'lucide-react'\n\nexport interface DataTableAddPanelTriggerProps {\n onClick?: React.MouseEventHandler<HTMLElement> | undefined\n}\n\nexport default function DataTableAddPanelTrigger({\n onClick,\n}: DataTableAddPanelTriggerProps) {\n const theme = useTheme()\n return (\n <ToolbarButton onClick={onClick}>\n <SquarePlus color={theme.palette.primary.main} size={18} />\n </ToolbarButton>\n )\n}\n","import {\n ButtonProps as MuiButtonProps,\n Button as MuiButton,\n CircularProgress,\n IconButton,\n Tooltip,\n Box,\n} from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ntype ButtonProps = {\n isLoading?: boolean\n} & MuiButtonProps\n\nexport default function DataTableButton(props: ButtonProps) {\n const { isLoading, startIcon, children, title, ...rest } = props\n\n const { breakpoint } = useTableRootContext()\n\n return (\n <>\n {breakpoint ? (\n <Tooltip title={children}>\n <IconButton\n {...rest}\n color=\"primary\"\n disabled={isLoading ? true : rest.disabled}\n >\n {startIcon}\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '25%',\n bottom: '25%',\n left: '25%',\n right: '25%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n </IconButton>\n </Tooltip>\n ) : (\n <MuiButton\n startIcon={startIcon}\n disabled={isLoading ? true : rest.disabled}\n // variant=\"outlined\"\n sx={{\n position: 'relative',\n height: '26px',\n minWidth: '70px',\n padding: '7px 8px 8px',\n border: '1px solid rgba(223, 226, 231, 0.8)',\n borderRadius: '6px',\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n flexShrink: 1,\n transition: 'width 0.2s ease',\n }}\n {...rest}\n >\n <Box\n component=\"span\"\n sx={{\n transition: 'opacity 0.2s ease, width 0.2s ease',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '22%',\n left: '44%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n\n {children}\n </Box>\n </MuiButton>\n )}\n </>\n )\n}\n","import { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ntype CellActionProps = { event?: string; onClick?: (event?: string) => void }\n// & Omit<GridActionsCellItemProps, 'onClick'>\n\n/** @deprecated */\nexport default function CellAction(props: CellActionProps) {\n const { event, onClick, ...rest } = props\n\n return (\n <GridActionsCellItem\n label=\"Ação\"\n onClick={() => {}}\n icon={<span>🔧</span>} // Placeholder icon\n // color=\"primary\"\n // onClick={(event) => {}}\n // onClick={(_: any, __: any, ___: any) => {\n // onClick?.(event)\n // }}\n />\n )\n}\n","import { Delete as DeleteIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionDeleteProps {\n onClick?: (event: 'delete') => void\n disabled?: boolean\n title?: string\n}\n\n/** @deprecated */\nexport default function CellActionDelete({\n onClick,\n ...rest\n}: CellActionDeleteProps) {\n return (\n <GridActionsCellItem\n icon={<DeleteIcon />}\n label=\"Delete\"\n color=\"primary\"\n onClick={() => {\n if (onClick) onClick('delete')\n }}\n {...rest}\n />\n )\n}\n","import { Edit as EditIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionEditProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'edit') => void\n}\n\n/** @deprecated */\nexport default function CellActionEdit({\n onClick,\n ...rest\n}: CellActionEditProps) {\n return (\n <GridActionsCellItem\n icon={<EditIcon />}\n label=\"Edit\"\n color=\"primary\"\n onClick={() => onClick && onClick('edit')}\n {...rest}\n />\n )\n}\n","import { Children, cloneElement, isValidElement, ReactNode } from 'react'\n\ninterface CellActionsProps {\n children: ReactNode\n onClick: (event: any) => void\n}\n\n/** @deprecated */\nexport default function CellActions(props: CellActionsProps) {\n const { children, onClick: onItemClick } = props\n return (\n <>\n {Children.map(children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child as React.ReactElement<any>, {\n onClick: onItemClick,\n })\n }\n })}\n </>\n )\n}\n","import { GetApp as TransportIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionTransportProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'transport') => void\n}\n\n/** @deprecated */\nexport default function CellActionTransport({\n onClick,\n ...rest\n}: CellActionTransportProps) {\n return (\n <GridActionsCellItem\n icon={<TransportIcon />}\n label=\"Transport\"\n color=\"primary\"\n onClick={() => onClick && onClick('transport')}\n {...rest}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ColumnsPanelTrigger, ToolbarButton } from '@mui/x-data-grid-pro'\nimport { Columns3Cog } from 'lucide-react'\n\nexport default function DataTableColumnsPanelTrigger() {\n const theme = useTheme()\n return (\n <ColumnsPanelTrigger render={<ToolbarButton />}>\n <Columns3Cog color={theme.palette.primary.main} size={18} />\n </ColumnsPanelTrigger>\n )\n}\n","import { Stack, StackProps } from '@mui/material'\n\nexport default function Content(props: StackProps) {\n return (\n <Stack\n direction=\"row\"\n width={'100%'}\n flexGrow={1}\n alignItems=\"center\"\n gap={1.5}\n sx={{ background: '#f4f' }}\n {...props}\n />\n )\n}\n","import { FileDownload as FileDownloadIcon } from '@mui/icons-material'\nimport {\n GridCsvExportOptions,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n} from '@mui/x-data-grid-pro'\n\nimport Button from './DataTableButton'\nimport { useTableRootContext } from './DataTableRootProvider'\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nexport default function ExportCsvButton() {\n const { apiRef } = useTableRootContext()\n\n const handleExport = (options: GridCsvExportOptions) => {\n if (apiRef?.current) {\n apiRef.current.exportDataAsCsv(options)\n }\n }\n\n return (\n <Button\n startIcon={<FileDownloadIcon />}\n onClick={() => handleExport({ getRowsToExport: getFilteredRows })}\n >\n Exportar CSV\n </Button>\n )\n}\n","import { TableFooterProps, TableFooter } from '@mui/material'\nexport default function Footer(props: TableFooterProps) {\n return (\n <TableFooter\n {...props}\n sx={{\n height: '54px',\n paddingX: '12px',\n gap: '12px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'white',\n borderBottomLeftRadius: '8px',\n borderBottomRightRadius: '8px',\n borderTop: '1px solid #edf2f9',\n }}\n />\n )\n}\n","import {\n PaginationProps as MioPaginationProps,\n pluralizar,\n} from '@data-c/hooks'\nimport {\n MenuItem,\n Pagination as MuiPagination,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport { useMemo } from 'react'\n\ninterface PaginationProps {\n pagination?: MioPaginationProps\n rowsPerPageOptions?: number[]\n onChangePage?: (currentPage: number) => void\n onChangePageSize?: (numberOfRows: number) => void\n}\n\nexport default function Pagination(props: PaginationProps) {\n const {\n onChangePageSize,\n onChangePage,\n pagination,\n rowsPerPageOptions = [15, 50, 100, 200],\n } = props\n const { page, pageSize = 15, totalRecords } = pagination || {}\n\n const pages = useMemo(() => {\n if (pagination?.lastPage) return pagination.lastPage\n\n if ((totalRecords || 0) < pageSize) return 1\n return Math.max(Math.ceil((totalRecords || 0) / pageSize))\n }, [totalRecords, pageSize])\n\n const totalRecordsLabel = useMemo(() => {\n if ((totalRecords || 0) < pageSize)\n return `Exibindo ${pluralizar(\n totalRecords || 0,\n 'registro',\n 'registros',\n true,\n )}`\n\n let registrosExibidos = pageSize\n if (page === pages) {\n const ultimaPaginaRegistros = (totalRecords || 0) % pageSize\n registrosExibidos =\n ultimaPaginaRegistros === 0 ? pageSize : ultimaPaginaRegistros\n }\n\n return `Exibindo ${pluralizar(\n registrosExibidos || 0,\n 'registro',\n 'registros',\n true,\n )} de ${totalRecords}`\n }, [pagination, pages])\n\n // const showPagination = Boolean((totalRecords || 0) > pageSize)\n const showPagination = true\n\n return (\n <Stack\n width=\"100%\"\n direction=\"row\"\n alignItems=\"center\"\n gap={2}\n marginLeft=\"auto\"\n >\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {totalRecordsLabel}\n </Typography>\n\n {showPagination && (\n <Stack direction=\"row\" alignItems=\"center\" gap={2} marginLeft=\"auto\">\n <TextField\n sx={{\n width: '78px',\n fontSize: '8pt',\n }}\n size=\"small\"\n value={pageSize || 0}\n select\n onChange={(e) => {\n if (onChangePageSize) {\n onChangePageSize(parseInt(e.target.value))\n }\n }}\n >\n {rowsPerPageOptions.map((option: number) => (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n ))}\n </TextField>\n <MuiPagination\n variant=\"outlined\"\n shape=\"rounded\"\n count={pages || 0}\n showFirstButton\n showLastButton\n onChange={(_, _page) => {\n if (onChangePage) onChangePage(_page)\n }}\n page={page || 0}\n color=\"primary\"\n />\n </Stack>\n )}\n </Stack>\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Stack, StackProps } from '@mui/material'\nimport TableRootProvider from './DataTableRootProvider'\n\nexport default function Root({ children, height, ...rest }: StackProps) {\n const tableContainerRef = useRef<HTMLDivElement>(null)\n const [tableHeight, setTableHeight] = useState<number>(500)\n\n useEffect(() => {\n const calculateHeight = () => {\n const container = tableContainerRef.current\n if (!container) return\n\n const containerTop = container.getBoundingClientRect().top\n setTableHeight(window.innerHeight - containerTop)\n }\n calculateHeight()\n window.addEventListener('resize', calculateHeight)\n return () => {\n window.removeEventListener('resize', calculateHeight)\n }\n }, [])\n\n return (\n <Stack\n ref={tableContainerRef}\n sx={{\n backgroundColor: '#f4f6fa',\n border: '1px solid #edf2f9',\n borderRadius: 2,\n height: height || `calc(${tableHeight}px - 16px)`,\n ...rest.sx,\n }}\n {...rest}\n >\n <TableRootProvider>{children}</TableRootProvider>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface SelectionCounterProps {\n countTitle?: string\n gender?: 'masculino' | 'feminino'\n}\n\nexport default function SelectionCounter(props: SelectionCounterProps) {\n const { countTitle, gender } = props\n\n const { rowsSelectedId } = useTableRootContext()\n const countQuantidade = rowsSelectedId?.ids.size || 0\n\n const flexSufixCountTitle = useMemo(() => {\n if (!countTitle) return ''\n\n const selecionadoText =\n gender === 'feminino' ? 'selecionada' : 'selecionado'\n const selecionadosText =\n gender === 'feminino' ? 'selecionadas' : 'selecionados'\n const nenhumText = gender === 'feminino' ? 'Nenhuma' : 'Nenhum'\n\n return countQuantidade === 1\n ? `${countTitle} ${selecionadoText}`\n : countQuantidade && countQuantidade > 1\n ? `${countTitle\n .split(' ')\n .map((item) => `${item}s`)\n .join(' ')} ${selecionadosText}`\n : `${nenhumText} ${countTitle} ${selecionadoText}`\n }, [countQuantidade])\n\n return (\n <Stack>\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {countQuantidade && countQuantidade > 0 ? countQuantidade : ''}{' '}\n {flexSufixCountTitle}\n </Typography>\n </Stack>\n )\n}\n","import { Typography, TypographyProps, useTheme } from '@mui/material'\n\ninterface TitleProps extends TypographyProps {\n titleDivider?: boolean\n children: string\n}\n\nexport default function Title({\n children,\n titleDivider = false,\n sx,\n}: TitleProps) {\n const theme = useTheme()\n\n return (\n <Typography\n variant=\"h6\"\n whiteSpace=\"nowrap\"\n sx={{\n borderRight: titleDivider\n ? `solid 1px ${theme.palette.grey[300]}`\n : 'none',\n paddingRight: 1.5,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Paper, Stack } from '@mui/material'\nimport { Toolbar as MuiToolbar } from '@mui/x-data-grid-pro'\nimport { ReactNode } from 'react'\n\ninterface ToolbarProps {\n children?: ReactNode\n}\n\nexport default function Toolbar({ children }: ToolbarProps) {\n return (\n <MuiToolbar\n render={\n <Stack\n component={Paper}\n elevation={0}\n gap={1.5}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n p={1}\n // height={(theme) => `${theme.mixins.toolbar}px`}\n // height=\"52px\"\n borderRadius=\"8px 8px 0 0\"\n sx={{ width: '100%' }}\n >\n {children}\n </Stack>\n }\n />\n )\n}\n","import { Stack } from '@mui/material'\nimport { ReactNode } from 'react'\n\ninterface ToolbarActionsContainerProps {\n children?: ReactNode\n}\n\nexport default function ToolbarActionsContainer({\n children,\n}: ToolbarActionsContainerProps) {\n return (\n <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"flex-end\">\n {children}\n </Stack>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/DataTable/index.ts","../src/DataTable/DataTable.tsx","../src/DataTable/DataTableEmptyData.tsx","../src/DataTable/DataTableError.tsx","../src/DataTable/DataTableRootProvider.tsx","../src/DataTable/DataTableAction.tsx","../src/DataTable/DataTableActionDelete.tsx","../src/DataTable/DataTableActionEdit.tsx","../src/DataTable/DataTableActions.tsx","../src/DataTable/DataTableActionTransport.tsx","../src/DataTable/DataTableAddPanelTrigger.tsx","../src/DataTable/DataTableButton.tsx","../src/DataTable/DataTableCellAction.tsx","../src/DataTable/DataTableCellActionDelete.tsx","../src/DataTable/DataTableCellActionEdit.tsx","../src/DataTable/DataTableCellActions.tsx","../src/DataTable/DataTableCellActionTransport.tsx","../src/DataTable/DataTableColumnsPanelTrigger.tsx","../src/DataTable/DataTableContent.tsx","../src/DataTable/DataTableExportCsvButton.tsx","../src/DataTable/DataTableFooter.tsx","../src/DataTable/DataTablePagination.tsx","../src/DataTable/DataTableRoot.tsx","../src/DataTable/DataTableSelectionCounter.tsx","../src/DataTable/DataTableTitle.tsx","../src/DataTable/DataTableToolbar.tsx","../src/DataTable/DataTableToolbarActionsContainer.tsx"],"names":["useGridApiRef","Stack","Typography","jsx","jsxs","GridActionsCellItem","useEffect","useTheme","Fragment","ToolbarButton","gridFilteredSortedRowIdsSelector","useState","useMemo","DataTable_default"],"mappings":"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","sourcesContent":["import { useGridApiRef } from '@mui/x-data-grid-pro'\n\nimport DataTableV3 from './DataTable'\nimport DataTableAction from './DataTableAction'\nimport DataTableActionDelete from './DataTableActionDelete'\nimport DataTableActionEdit from './DataTableActionEdit'\nimport DataTableActions from './DataTableActions'\nimport DataTableActionTransport from './DataTableActionTransport'\nimport DataTableAddPanelTrigger from './DataTableAddPanelTrigger'\nimport DataTableButton from './DataTableButton'\nimport DataTableCellAction from './DataTableCellAction'\nimport DataTableCellActionDelete from './DataTableCellActionDelete'\nimport DataTableCellActionEdit from './DataTableCellActionEdit'\nimport DataTableCellActions from './DataTableCellActions'\nimport DataTableCellActionTransport from './DataTableCellActionTransport'\nimport DataTableColumnsPanelTrigger from './DataTableColumnsPanelTrigger'\nimport DataTableContent from './DataTableContent'\nimport DataTableExportCsvButton from './DataTableExportCsvButton'\nimport DataTableFooter from './DataTableFooter'\nimport DataTablePagination from './DataTablePagination'\nimport DataTableRoot from './DataTableRoot'\nimport DataTableSelectionCounter from './DataTableSelectionCounter'\nimport DataTableTitle from './DataTableTitle'\nimport DataTableToolbar from './DataTableToolbar'\nimport DataTableToolbarActionsContainer from './DataTableToolbarActionsContainer'\nimport { GridViewState, GridWrapperApi } from './types'\n\nconst DataTable = {\n CellActionTransport: DataTableCellActionTransport,\n SelectionCounter: DataTableSelectionCounter,\n CellActionDelete: DataTableCellActionDelete,\n ExportCsvButton: DataTableExportCsvButton,\n CellActionEdit: DataTableCellActionEdit,\n CellActions: DataTableCellActions,\n CellAction: DataTableCellAction,\n Pagination: DataTablePagination,\n Actions: DataTableActions,\n Toolbar: DataTableToolbar,\n ToolbarActionsContainer: DataTableToolbarActionsContainer,\n Content: DataTableContent,\n Button: DataTableButton,\n Footer: DataTableFooter,\n Table: DataTableV3,\n Title: DataTableTitle,\n Root: DataTableRoot,\n Action: DataTableAction,\n ActionEdit: DataTableActionEdit,\n ActionDelete: DataTableActionDelete,\n ActionTransport: DataTableActionTransport,\n ColumnsPanelTrigger: DataTableColumnsPanelTrigger,\n AddPanelTrigger: DataTableAddPanelTrigger,\n useGridApiRef,\n}\n\nexport type { GridViewState, GridWrapperApi }\n\nexport default DataTable\n","import React, { useCallback, useEffect } from 'react'\n\nimport { Circle } from '@mui/icons-material'\nimport { LinearProgress, Stack, StackProps } from '@mui/material'\nimport {\n DataGridPro,\n DataGridProProps,\n GridApiPro,\n GridCallbackDetails,\n GridColumnOrderChangeParams,\n GridColumnResizeParams,\n GridColumnVisibilityModel,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n GridRowSelectionModel,\n GridRowsProp,\n GridState,\n MuiEvent,\n GridColDef as MuiGridColDef,\n} from '@mui/x-data-grid-pro'\nimport { ptBR } from '@mui/x-data-grid-pro/locales'\n\nimport DataTableEmptyData from './DataTableEmptyData'\nimport DataTableError from './DataTableError'\nimport { useTableRootContext } from './DataTableRootProvider'\nimport { ColumnChangeMeta, GridViewState, GridWrapperApi } from './types'\n\nexport type GridColDef = MuiGridColDef & {\n enableStickyColumns?: boolean\n}\n\nexport interface DataTableProps\n extends Omit<DataGridProProps, 'onCellKeyDown' | 'onRowDoubleClick'> {\n data?: GridRowsProp<{\n [key: string | symbol]: any\n }>\n columns: GridColDef[]\n error?: string\n isLoading?: boolean\n isFetching?: boolean\n stackProps?: StackProps\n onColumnChange?: (payload: {\n state: GridViewState\n meta: ColumnChangeMeta\n }) => void\n //Revisar os métodos abaixo\n controlledRowsSelectedId?: GridRowSelectionModel\n onCellKeyDown?: (event: 'edit' | 'delete', id: number | string) => void\n onRowDoubleClick?: (event: 'edit' | 'delete', id: number | string) => void\n onClearRowsSelectedId?: (rowsSelectedId: GridRowSelectionModel) => void\n onRowSelectionChange?: (\n rowSelectionModel: GridRowSelectionModel,\n details: GridCallbackDetails,\n ) => void\n restoreFromState?: GridViewState | null\n warmUpMs?: number\n stateMs?: number\n localStorageKey?: string\n}\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nconst _DataTable = React.forwardRef<GridWrapperApi, DataTableProps>(\n function Table(props, ref) {\n const {\n error,\n isLoading,\n isFetching,\n data,\n columns,\n onColumnChange,\n onColumnVisibilityModelChange,\n onColumnOrderChange,\n onColumnWidthChange,\n onStateChange,\n controlledRowsSelectedId,\n onClearRowsSelectedId,\n onRowSelectionChange,\n onCellKeyDown,\n onRowDoubleClick,\n stackProps,\n slots,\n restoreFromState,\n warmUpMs = 150,\n stateMs = 500,\n pinnedColumns,\n sx,\n sortingMode = 'server',\n disableColumnPinning = true,\n disableColumnFilter = true,\n localStorageKey,\n ...rest\n } = props\n\n const {\n rowsSelectedId,\n setRowsSelectedId,\n clearCallback,\n setClearCallback,\n apiRef,\n } = useTableRootContext()\n\n const restore = (state: any) => {\n if (!apiRef?.current || !state) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(state).reduce((acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n }, {} as any)\n\n if (Object.keys(cleanState).length > 0) {\n // Aguarda um momento para garantir que o grid está pronto\n window.setTimeout(() => {\n if (apiRef?.current) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs)\n }\n }\n\n const exportState = () => {\n return apiRef?.current?.exportState({\n exportOnlyDirtyModels: true,\n })\n }\n\n React.useImperativeHandle(\n ref,\n () => ({\n apiRef: apiRef.current,\n\n restoreState: restore,\n\n exportState: exportState,\n }),\n [apiRef, restore],\n )\n\n const columnWidthDebounceRef = React.useRef<number | null>(null)\n const stateChangeDebounceRef = React.useRef<number | null>(null)\n const ignoreWarmupRef = React.useRef(true)\n const hasRestoredStateRef = React.useRef(false)\n\n // Ignore warmup: ignora eventos de largura de coluna no primeiro carregamento\n React.useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n ignoreWarmupRef.current = false\n }, 100) // Aguarda 100ms após montagem para considerar warmup concluído\n\n return () => {\n window.clearTimeout(timeoutId)\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n if (stateChangeDebounceRef.current) {\n window.clearTimeout(stateChangeDebounceRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (!apiRef.current) return\n if (!restoreFromState) return\n if (hasRestoredStateRef.current) return\n\n // Aguarda o próximo tick para garantir que o DataGrid está completamente montado\n const timeoutId = window.setTimeout(() => {\n if (!apiRef.current) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(restoreFromState).reduce(\n (acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n },\n {} as any,\n )\n\n if (Object.keys(cleanState).length > 0) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs) // Aguarda após o warmup + tempo de autosize\n\n return () => window.clearTimeout(timeoutId)\n }, [apiRef, restoreFromState])\n\n const emitColumnChange = React.useCallback(\n (meta: ColumnChangeMeta) => {\n if (!apiRef.current) return\n\n const state = apiRef.current.exportState({\n exportOnlyDirtyModels: true,\n })\n onColumnChange?.({ state, meta })\n },\n [apiRef, onColumnChange],\n )\n\n function _onColumnOrderChange(\n params: GridColumnOrderChangeParams,\n event: MuiEvent<{}>,\n details: GridCallbackDetails,\n ) {\n onColumnOrderChange?.(params, event, details)\n emitColumnChange({\n reason: 'order',\n })\n }\n\n function _onColumnWidthChange(\n params: GridColumnResizeParams,\n event: MuiEvent<{} | MouseEvent>,\n details: GridCallbackDetails,\n ) {\n // Ignora eventos durante o warmup (primeiro carregamento)\n if (ignoreWarmupRef.current) {\n return\n }\n\n onColumnWidthChange?.(params, event, details)\n emitColumnWidthChangeDebounced()\n }\n\n function _onColumnVisibilityModelChange(\n params: GridColumnVisibilityModel,\n details: GridCallbackDetails,\n ) {\n onColumnVisibilityModelChange?.(params, details)\n emitColumnChange({\n reason: 'visibility',\n })\n }\n\n const emitColumnWidthChangeDebounced = React.useCallback(() => {\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n\n columnWidthDebounceRef.current = window.setTimeout(() => {\n emitColumnChange({ reason: 'width' })\n }, 250) // ajuste aqui se quiser\n }, [emitColumnChange])\n\n // Debounce para onStateChange\n const handleStateChangeDebounced = useCallback(\n (state: GridState, event: MuiEvent<{}>, details: GridCallbackDetails) => {\n if (stateChangeDebounceRef.current) {\n window.clearTimeout(stateChangeDebounceRef.current)\n }\n\n stateChangeDebounceRef.current = window.setTimeout(() => {\n onStateChange?.(state, event, details)\n if (localStorageKey) {\n localStorage.setItem(localStorageKey, JSON.stringify(exportState()))\n }\n }, stateMs)\n },\n [onStateChange],\n )\n\n useEffect(() => {\n if (controlledRowsSelectedId) {\n setRowsSelectedId(controlledRowsSelectedId)\n }\n }, [controlledRowsSelectedId])\n\n useEffect(() => {\n if (clearCallback) {\n onClearRowsSelectedId &&\n onClearRowsSelectedId({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(false)\n }\n }, [clearCallback])\n\n // const restore = (): GridViewState | null => {\n // console.log('Restaurando estado da grid...')\n // const raw = localStorage.getItem('grid:clientes:view')\n // return raw ? JSON.parse(raw) : null\n // // return null\n // }\n\n useEffect(() => {\n if (localStorageKey) {\n const raw = localStorage.getItem(localStorageKey)\n raw && restore(JSON.parse(raw))\n }\n }, [localStorageKey])\n\n // function handleCellKeyDown(\n // params: GridEventLookup['cellKeyDown']['params'],\n // event: MuiEvent<GridEventLookup['cellKeyDown']['event']>,\n // details: GridCallbackDetails,\n // ) {\n // const eventCode =\n // event.ctrlKey && event.code === 'KeyE' ? 'ctrl+e' : event.code\n // switch (eventCode) {\n // case 'Enter':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // // case 'F2':\n // // event.preventDefault()\n // // //Open Form\n // // break\n // case 'F3':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // case 'Delete':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('delete', params.id)\n // break\n // case 'ctrl+e':\n // event.preventDefault()\n // const handleExport = (options: GridCsvExportOptions) => {\n // if (apiRef?.current) {\n // apiRef.current.exportDataAsCsv(options)\n // }\n // }\n\n // handleExport({ getRowsToExport: getFilteredRows })\n // break\n // default:\n // break\n // }\n // }\n\n // function handleRowDoubleClick(\n // params: GridRowParams,\n // _: React.MouseEvent,\n // details: GridCallbackDetails,\n // ) {\n // if (onRowDoubleClick) onRowDoubleClick('edit', params.id)\n // }\n\n return (\n <Stack\n height=\"100%\"\n minHeight=\"500px\"\n position=\"relative\"\n {...stackProps}\n >\n {!isLoading && isFetching && (\n <LinearProgress\n sx={{\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 999,\n height: '3px',\n }}\n />\n )}\n\n <DataGridPro\n apiRef={apiRef as React.MutableRefObject<GridApiPro> | undefined}\n rows={data}\n columns={columns}\n pinnedColumns={{ ...pinnedColumns, right: ['id', 'uuid'], left: [] }}\n disableColumnPinning={disableColumnPinning}\n disableColumnFilter={disableColumnFilter}\n onColumnOrderChange={_onColumnOrderChange}\n onColumnWidthChange={_onColumnWidthChange}\n onColumnVisibilityModelChange={_onColumnVisibilityModelChange}\n onStateChange={handleStateChangeDebounced}\n // Revisar parametros abaixo\n density=\"compact\"\n hideFooterPagination\n hideFooter\n loading={isLoading}\n rowHeight={43}\n columnHeaderHeight={43}\n disableVirtualization\n // onRowDoubleClick={handleRowDoubleClick}\n // onCellKeyDown={handleCellKeyDown}\n disableRowSelectionOnClick\n rowSelectionModel={rowsSelectedId}\n onRowSelectionModelChange={(rowSelectionModel, details) => {\n if (onRowSelectionChange) {\n onRowSelectionChange(rowSelectionModel, details)\n }\n\n if (controlledRowsSelectedId) return\n setRowsSelectedId(rowSelectionModel)\n }}\n slots={{\n booleanCellFalseIcon: () => (\n <Circle color=\"error\" sx={{ fontSize: '10pt' }} />\n ),\n booleanCellTrueIcon: () => (\n <Circle color=\"success\" sx={{ fontSize: '10pt' }} />\n ),\n noRowsOverlay: () =>\n !isLoading && !!error ? (\n <DataTableError errorMessage={error} />\n ) : (\n <DataTableEmptyData />\n ),\n ...slots,\n }}\n slotProps={{\n loadingOverlay: {\n variant: 'skeleton',\n noRowsVariant: 'skeleton',\n },\n }}\n localeText={ptBR.components.MuiDataGrid.defaultProps.localeText}\n sortingMode={sortingMode}\n sx={{\n border: 'none',\n borderRadius: 0,\n '--DataGrid-rowBorderColor': '#edf2f9',\n '--DataGrid-containerBackground': '#f4f6fa',\n '.MuiDataGrid-overlayWrapperInner': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n '.MuiDataGrid-row': {\n backgroundColor: 'white',\n '&:nth-of-type(even)': {\n backgroundColor: '#f9fafd',\n },\n ':hover': {\n backgroundColor: '#e9e9e9',\n },\n '&.Mui-selected': {\n backgroundColor: 'rgb(238, 249, 252)',\n '&:hover': {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n },\n },\n '.MuiDataGrid-cell': {\n fontSize: '12px',\n color: '#0b0e14',\n },\n '.MuiDataGrid-columnHeaders': {\n border: 'solid 1px #edf2f9',\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeader': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaders .MuiDataGrid-filler': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaderTitle': {\n fontSize: '12px',\n color: '#0b0e14',\n fontWeight: '600',\n },\n '& .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'white',\n },\n '& .MuiDataGrid-row:nth-of-type(even) .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: '#f9fafd',\n },\n '& .MuiDataGrid-row:hover .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: '#e9e9e9',\n },\n '& .MuiDataGrid-row.Mui-selected .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'rgb(238, 249, 252)',\n },\n '& .MuiDataGrid-row.Mui-selected:hover .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n '& .sticky-cell': {\n position: 'sticky',\n right: 0,\n zIndex: 1,\n },\n '& .sticky-header': {\n position: 'sticky',\n right: 0,\n backgroundColor: '#f4f6fa',\n zIndex: 2,\n },\n ...(sx as any),\n }}\n {...rest}\n />\n </Stack>\n )\n },\n)\n\nexport default _DataTable\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableEmptyData() {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/empty-data.svg\"\n alt=\"Imagem de notificação\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack spacing={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Nenhum registro encontrado\n </Typography>\n <Typography variant=\"body2\" whiteSpace=\"normal\">\n Tente outra pesquisa ou adicione um novo registro.\n </Typography>\n </Stack>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableError({\n errorMessage,\n}: {\n errorMessage: string\n}) {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/error.svg\"\n alt=\"Imagem de erro\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack gap={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Ops! Algo deu errado\n </Typography>\n\n <Typography variant=\"body2\">{errorMessage}</Typography>\n </Stack>\n </Stack>\n )\n}\n","import {\n createContext,\n ReactNode,\n RefObject,\n useContext,\n useState,\n} from 'react'\n\nimport {\n GridApiPro,\n GridRowSelectionModel,\n useGridApiRef,\n} from '@mui/x-data-grid-pro'\n\ninterface TableRootContextData {\n apiRef: RefObject<GridApiPro>\n rowsSelectedId: GridRowSelectionModel\n clearCallback: boolean\n breakpoint: boolean\n setBreakpoint: (breakpoint: boolean) => void\n setRowsSelectedId: (rowsSelectedId: GridRowSelectionModel) => void\n clearRowsSelectedId: () => void\n setClearCallback: (clearCallback: boolean) => void\n}\n\nexport const TableRootContext = createContext({} as TableRootContextData)\n\ninterface TableRootProviderProps {\n children: ReactNode\n}\n\nexport default function TableRootProvider({\n children,\n}: TableRootProviderProps) {\n const [ids, setIds] = useState<GridRowSelectionModel>({\n type: 'include',\n ids: new Set<string>(),\n })\n const [clearCallback, setClearCallback] = useState(false)\n const [breakpoint, setBreakpoint] = useState(false)\n\n const apiRef = useGridApiRef()\n\n function handleClearRowsSelectedId() {\n setIds({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(true)\n }\n\n return (\n <TableRootContext.Provider\n value={{\n apiRef,\n rowsSelectedId: ids,\n clearCallback,\n breakpoint,\n setClearCallback,\n setBreakpoint,\n setRowsSelectedId: setIds,\n clearRowsSelectedId: handleClearRowsSelectedId,\n }}\n >\n {children}\n </TableRootContext.Provider>\n )\n}\n\nexport function useTableRootContext() {\n return useContext<TableRootContextData>(TableRootContext)\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\n\nexport type DataTableActionProps = {} & GridActionsCellItemProps\n\nexport default function DataTableAction(props: DataTableActionProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Trash2 } from 'lucide-react'\n\nexport type DataTableActionDeleteProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionDelete(\n props: DataTableActionDeleteProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"error\"\n label=\"Deletar\"\n icon={<Trash2 size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Pencil } from 'lucide-react'\n\nexport type DataTableActionEditProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionEdit(props: DataTableActionEditProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n label=\"Editar\"\n color=\"primary\"\n icon={<Pencil size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { ReactNode, useEffect } from 'react'\nimport { Breakpoint, Stack, useMediaQuery, useTheme } from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface ActionsProps {\n breakpoints?: Breakpoint | number\n children: ReactNode\n}\n\nexport default function Actions({ children, breakpoints }: ActionsProps) {\n const { setBreakpoint } = useTableRootContext()\n\n const theme = useTheme()\n const breakpoint = useMediaQuery(theme.breakpoints.down(breakpoints || 'md'))\n\n useEffect(() => {\n setBreakpoint(breakpoint)\n }, [breakpoint])\n\n return (\n <Stack\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent={'flex-end'}\n // position=\"relative\"\n // overflow=\"hidden\"\n gap={1}\n marginLeft=\"auto\"\n flexGrow={1}\n >\n {children}\n </Stack>\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { ArrowBigDown } from 'lucide-react'\n\nexport type DataTableActionTransportProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionTransport(\n props: DataTableActionTransportProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"primary\"\n label=\"Transportar\"\n icon={<ArrowBigDown size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ToolbarButton } from '@mui/x-data-grid-pro'\nimport { SquarePlus } from 'lucide-react'\n\nexport interface DataTableAddPanelTriggerProps {\n onClick?: React.MouseEventHandler<HTMLElement> | undefined\n}\n\nexport default function DataTableAddPanelTrigger({\n onClick,\n}: DataTableAddPanelTriggerProps) {\n const theme = useTheme()\n return (\n <ToolbarButton onClick={onClick}>\n <SquarePlus color={theme.palette.primary.main} size={18} />\n </ToolbarButton>\n )\n}\n","import {\n ButtonProps as MuiButtonProps,\n Button as MuiButton,\n CircularProgress,\n IconButton,\n Tooltip,\n Box,\n} from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ntype ButtonProps = {\n isLoading?: boolean\n} & MuiButtonProps\n\nexport default function DataTableButton(props: ButtonProps) {\n const { isLoading, startIcon, children, title, ...rest } = props\n\n const { breakpoint } = useTableRootContext()\n\n return (\n <>\n {breakpoint ? (\n <Tooltip title={children}>\n <IconButton\n {...rest}\n color=\"primary\"\n disabled={isLoading ? true : rest.disabled}\n >\n {startIcon}\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '25%',\n bottom: '25%',\n left: '25%',\n right: '25%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n </IconButton>\n </Tooltip>\n ) : (\n <MuiButton\n startIcon={startIcon}\n disabled={isLoading ? true : rest.disabled}\n // variant=\"outlined\"\n sx={{\n position: 'relative',\n height: '26px',\n minWidth: '70px',\n padding: '7px 8px 8px',\n border: '1px solid rgba(223, 226, 231, 0.8)',\n borderRadius: '6px',\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n flexShrink: 1,\n transition: 'width 0.2s ease',\n }}\n {...rest}\n >\n <Box\n component=\"span\"\n sx={{\n transition: 'opacity 0.2s ease, width 0.2s ease',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '22%',\n left: '44%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n\n {children}\n </Box>\n </MuiButton>\n )}\n </>\n )\n}\n","import { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ntype CellActionProps = { event?: string; onClick?: (event?: string) => void }\n// & Omit<GridActionsCellItemProps, 'onClick'>\n\n/** @deprecated */\nexport default function CellAction(props: CellActionProps) {\n const { event, onClick, ...rest } = props\n\n return (\n <GridActionsCellItem\n label=\"Ação\"\n onClick={() => {}}\n icon={<span>🔧</span>} // Placeholder icon\n // color=\"primary\"\n // onClick={(event) => {}}\n // onClick={(_: any, __: any, ___: any) => {\n // onClick?.(event)\n // }}\n />\n )\n}\n","import { Delete as DeleteIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionDeleteProps {\n onClick?: (event: 'delete') => void\n disabled?: boolean\n title?: string\n}\n\n/** @deprecated */\nexport default function CellActionDelete({\n onClick,\n ...rest\n}: CellActionDeleteProps) {\n return (\n <GridActionsCellItem\n icon={<DeleteIcon />}\n label=\"Delete\"\n color=\"primary\"\n onClick={() => {\n if (onClick) onClick('delete')\n }}\n {...rest}\n />\n )\n}\n","import { Edit as EditIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionEditProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'edit') => void\n}\n\n/** @deprecated */\nexport default function CellActionEdit({\n onClick,\n ...rest\n}: CellActionEditProps) {\n return (\n <GridActionsCellItem\n icon={<EditIcon />}\n label=\"Edit\"\n color=\"primary\"\n onClick={() => onClick && onClick('edit')}\n {...rest}\n />\n )\n}\n","import { Children, cloneElement, isValidElement, ReactNode } from 'react'\n\ninterface CellActionsProps {\n children: ReactNode\n onClick: (event: any) => void\n}\n\n/** @deprecated */\nexport default function CellActions(props: CellActionsProps) {\n const { children, onClick: onItemClick } = props\n return (\n <>\n {Children.map(children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child as React.ReactElement<any>, {\n onClick: onItemClick,\n })\n }\n })}\n </>\n )\n}\n","import { GetApp as TransportIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionTransportProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'transport') => void\n}\n\n/** @deprecated */\nexport default function CellActionTransport({\n onClick,\n ...rest\n}: CellActionTransportProps) {\n return (\n <GridActionsCellItem\n icon={<TransportIcon />}\n label=\"Transport\"\n color=\"primary\"\n onClick={() => onClick && onClick('transport')}\n {...rest}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ColumnsPanelTrigger, ToolbarButton } from '@mui/x-data-grid-pro'\nimport { Columns3Cog } from 'lucide-react'\n\nexport default function DataTableColumnsPanelTrigger() {\n const theme = useTheme()\n return (\n <ColumnsPanelTrigger render={<ToolbarButton />}>\n <Columns3Cog color={theme.palette.primary.main} size={18} />\n </ColumnsPanelTrigger>\n )\n}\n","import { Stack, StackProps } from '@mui/material'\n\nexport default function Content(props: StackProps) {\n return (\n <Stack\n direction=\"row\"\n width={'100%'}\n flexGrow={1}\n alignItems=\"center\"\n gap={1.5}\n sx={{ background: '#f4f' }}\n {...props}\n />\n )\n}\n","import { FileDownload as FileDownloadIcon } from '@mui/icons-material'\nimport {\n GridCsvExportOptions,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n} from '@mui/x-data-grid-pro'\n\nimport Button from './DataTableButton'\nimport { useTableRootContext } from './DataTableRootProvider'\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nexport default function ExportCsvButton() {\n const { apiRef } = useTableRootContext()\n\n const handleExport = (options: GridCsvExportOptions) => {\n if (apiRef?.current) {\n apiRef.current.exportDataAsCsv(options)\n }\n }\n\n return (\n <Button\n startIcon={<FileDownloadIcon />}\n onClick={() => handleExport({ getRowsToExport: getFilteredRows })}\n >\n Exportar CSV\n </Button>\n )\n}\n","import { TableFooterProps, TableFooter } from '@mui/material'\nexport default function Footer(props: TableFooterProps) {\n return (\n <TableFooter\n {...props}\n sx={{\n height: '54px',\n paddingX: '12px',\n gap: '12px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'white',\n borderBottomLeftRadius: '8px',\n borderBottomRightRadius: '8px',\n borderTop: '1px solid #edf2f9',\n }}\n />\n )\n}\n","import {\n PaginationProps as MioPaginationProps,\n pluralizar,\n} from '@data-c/hooks'\nimport {\n MenuItem,\n Pagination as MuiPagination,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport { useMemo } from 'react'\n\ninterface PaginationProps {\n pagination?: MioPaginationProps\n rowsPerPageOptions?: number[]\n onChangePage?: (currentPage: number) => void\n onChangePageSize?: (numberOfRows: number) => void\n}\n\nexport default function Pagination(props: PaginationProps) {\n const {\n onChangePageSize,\n onChangePage,\n pagination,\n rowsPerPageOptions = [15, 50, 100, 200],\n } = props\n const { page, pageSize = 15, totalRecords } = pagination || {}\n\n const pages = useMemo(() => {\n if (pagination?.lastPage) return pagination.lastPage\n\n if ((totalRecords || 0) < pageSize) return 1\n return Math.max(Math.ceil((totalRecords || 0) / pageSize))\n }, [totalRecords, pageSize])\n\n const totalRecordsLabel = useMemo(() => {\n if ((totalRecords || 0) < pageSize)\n return `Exibindo ${pluralizar(\n totalRecords || 0,\n 'registro',\n 'registros',\n true,\n )}`\n\n let registrosExibidos = pageSize\n if (page === pages) {\n const ultimaPaginaRegistros = (totalRecords || 0) % pageSize\n registrosExibidos =\n ultimaPaginaRegistros === 0 ? pageSize : ultimaPaginaRegistros\n }\n\n return `Exibindo ${pluralizar(\n registrosExibidos || 0,\n 'registro',\n 'registros',\n true,\n )} de ${totalRecords}`\n }, [pagination, pages])\n\n // const showPagination = Boolean((totalRecords || 0) > pageSize)\n const showPagination = true\n\n return (\n <Stack\n width=\"100%\"\n direction=\"row\"\n alignItems=\"center\"\n gap={2}\n marginLeft=\"auto\"\n >\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {totalRecordsLabel}\n </Typography>\n\n {showPagination && (\n <Stack direction=\"row\" alignItems=\"center\" gap={2} marginLeft=\"auto\">\n <TextField\n sx={{\n width: '78px',\n fontSize: '8pt',\n }}\n size=\"small\"\n value={pageSize || 0}\n select\n onChange={(e) => {\n if (onChangePageSize) {\n onChangePageSize(parseInt(e.target.value))\n }\n }}\n >\n {rowsPerPageOptions.map((option: number) => (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n ))}\n </TextField>\n <MuiPagination\n variant=\"outlined\"\n shape=\"rounded\"\n count={pages || 0}\n showFirstButton\n showLastButton\n onChange={(_, _page) => {\n if (onChangePage) onChangePage(_page)\n }}\n page={page || 0}\n color=\"primary\"\n />\n </Stack>\n )}\n </Stack>\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Stack, StackProps } from '@mui/material'\nimport TableRootProvider from './DataTableRootProvider'\n\nexport default function Root({ children, height, ...rest }: StackProps) {\n const tableContainerRef = useRef<HTMLDivElement>(null)\n const [tableHeight, setTableHeight] = useState<number>(500)\n\n useEffect(() => {\n const calculateHeight = () => {\n const container = tableContainerRef.current\n if (!container) return\n\n const containerTop = container.getBoundingClientRect().top\n setTableHeight(window.innerHeight - containerTop)\n }\n calculateHeight()\n window.addEventListener('resize', calculateHeight)\n return () => {\n window.removeEventListener('resize', calculateHeight)\n }\n }, [])\n\n return (\n <Stack\n ref={tableContainerRef}\n sx={{\n backgroundColor: '#f4f6fa',\n border: '1px solid #edf2f9',\n borderRadius: 2,\n height: height || `calc(${tableHeight}px - 16px)`,\n ...rest.sx,\n }}\n {...rest}\n >\n <TableRootProvider>{children}</TableRootProvider>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface SelectionCounterProps {\n countTitle?: string\n gender?: 'masculino' | 'feminino'\n}\n\nexport default function SelectionCounter(props: SelectionCounterProps) {\n const { countTitle, gender } = props\n\n const { rowsSelectedId } = useTableRootContext()\n const countQuantidade = rowsSelectedId?.ids.size || 0\n\n const flexSufixCountTitle = useMemo(() => {\n if (!countTitle) return ''\n\n const selecionadoText =\n gender === 'feminino' ? 'selecionada' : 'selecionado'\n const selecionadosText =\n gender === 'feminino' ? 'selecionadas' : 'selecionados'\n const nenhumText = gender === 'feminino' ? 'Nenhuma' : 'Nenhum'\n\n return countQuantidade === 1\n ? `${countTitle} ${selecionadoText}`\n : countQuantidade && countQuantidade > 1\n ? `${countTitle\n .split(' ')\n .map((item) => `${item}s`)\n .join(' ')} ${selecionadosText}`\n : `${nenhumText} ${countTitle} ${selecionadoText}`\n }, [countQuantidade])\n\n return (\n <Stack>\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {countQuantidade && countQuantidade > 0 ? countQuantidade : ''}{' '}\n {flexSufixCountTitle}\n </Typography>\n </Stack>\n )\n}\n","import { Typography, TypographyProps, useTheme } from '@mui/material'\n\ninterface TitleProps extends TypographyProps {\n titleDivider?: boolean\n children: string\n}\n\nexport default function Title({\n children,\n titleDivider = false,\n sx,\n}: TitleProps) {\n const theme = useTheme()\n\n return (\n <Typography\n variant=\"h6\"\n whiteSpace=\"nowrap\"\n sx={{\n borderRight: titleDivider\n ? `solid 1px ${theme.palette.grey[300]}`\n : 'none',\n paddingRight: 1.5,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Paper, Stack } from '@mui/material'\nimport { Toolbar as MuiToolbar } from '@mui/x-data-grid-pro'\nimport { ReactNode } from 'react'\n\ninterface ToolbarProps {\n children?: ReactNode\n}\n\nexport default function Toolbar({ children }: ToolbarProps) {\n return (\n <MuiToolbar\n render={\n <Stack\n component={Paper}\n elevation={0}\n gap={1.5}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n p={1}\n // height={(theme) => `${theme.mixins.toolbar}px`}\n // height=\"52px\"\n borderRadius=\"8px 8px 0 0\"\n sx={{ width: '100%' }}\n >\n {children}\n </Stack>\n }\n />\n )\n}\n","import { Stack } from '@mui/material'\nimport { ReactNode } from 'react'\n\ninterface ToolbarActionsContainerProps {\n children?: ReactNode\n}\n\nexport default function ToolbarActionsContainer({\n children,\n}: ToolbarActionsContainerProps) {\n return (\n <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"flex-end\">\n {children}\n </Stack>\n )\n}\n"]}
package/dist/index.mjs CHANGED
@@ -2,7 +2,7 @@
2
2
  import { useGridApiRef as useGridApiRef2 } from "@mui/x-data-grid-pro";
3
3
 
4
4
  // src/DataTable/DataTable.tsx
5
- import React, { useEffect } from "react";
5
+ import React, { useCallback, useEffect } from "react";
6
6
  import { Circle } from "@mui/icons-material";
7
7
  import { LinearProgress, Stack as Stack3 } from "@mui/material";
8
8
  import {
@@ -166,6 +166,7 @@ var _DataTable = React.forwardRef(
166
166
  onColumnVisibilityModelChange,
167
167
  onColumnOrderChange,
168
168
  onColumnWidthChange,
169
+ onStateChange,
169
170
  controlledRowsSelectedId,
170
171
  onClearRowsSelectedId,
171
172
  onRowSelectionChange,
@@ -175,11 +176,13 @@ var _DataTable = React.forwardRef(
175
176
  slots,
176
177
  restoreFromState,
177
178
  warmUpMs = 150,
179
+ stateMs = 500,
178
180
  pinnedColumns,
179
181
  sx,
180
182
  sortingMode = "server",
181
183
  disableColumnPinning = true,
182
184
  disableColumnFilter = true,
185
+ localStorageKey,
183
186
  ...rest
184
187
  } = props;
185
188
  const {
@@ -189,40 +192,40 @@ var _DataTable = React.forwardRef(
189
192
  setClearCallback,
190
193
  apiRef
191
194
  } = useTableRootContext();
195
+ const restore = (state) => {
196
+ if (!apiRef?.current || !state)
197
+ return;
198
+ const cleanState = Object.entries(state).reduce((acc, [key, value]) => {
199
+ if (value !== null) {
200
+ acc[key] = value;
201
+ }
202
+ return acc;
203
+ }, {});
204
+ if (Object.keys(cleanState).length > 0) {
205
+ window.setTimeout(() => {
206
+ if (apiRef?.current) {
207
+ apiRef.current.restoreState(cleanState);
208
+ hasRestoredStateRef.current = true;
209
+ }
210
+ }, warmUpMs);
211
+ }
212
+ };
213
+ const exportState = () => {
214
+ return apiRef?.current?.exportState({
215
+ exportOnlyDirtyModels: true
216
+ });
217
+ };
192
218
  React.useImperativeHandle(
193
219
  ref,
194
220
  () => ({
195
221
  apiRef: apiRef.current,
196
- restoreState: (state) => {
197
- if (!apiRef?.current || !state)
198
- return;
199
- const cleanState = Object.entries(state).reduce(
200
- (acc, [key, value]) => {
201
- if (value !== null) {
202
- acc[key] = value;
203
- }
204
- return acc;
205
- },
206
- {}
207
- );
208
- if (Object.keys(cleanState).length > 0) {
209
- window.setTimeout(() => {
210
- if (apiRef?.current) {
211
- apiRef.current.restoreState(cleanState);
212
- hasRestoredStateRef.current = true;
213
- }
214
- }, warmUpMs);
215
- }
216
- },
217
- exportState: () => {
218
- return apiRef?.current?.exportState({
219
- exportOnlyDirtyModels: true
220
- });
221
- }
222
+ restoreState: restore,
223
+ exportState
222
224
  }),
223
- [apiRef]
225
+ [apiRef, restore]
224
226
  );
225
227
  const columnWidthDebounceRef = React.useRef(null);
228
+ const stateChangeDebounceRef = React.useRef(null);
226
229
  const ignoreWarmupRef = React.useRef(true);
227
230
  const hasRestoredStateRef = React.useRef(false);
228
231
  React.useEffect(() => {
@@ -234,6 +237,9 @@ var _DataTable = React.forwardRef(
234
237
  if (columnWidthDebounceRef.current) {
235
238
  window.clearTimeout(columnWidthDebounceRef.current);
236
239
  }
240
+ if (stateChangeDebounceRef.current) {
241
+ window.clearTimeout(stateChangeDebounceRef.current);
242
+ }
237
243
  };
238
244
  }, []);
239
245
  useEffect(() => {
@@ -300,6 +306,20 @@ var _DataTable = React.forwardRef(
300
306
  emitColumnChange({ reason: "width" });
301
307
  }, 250);
302
308
  }, [emitColumnChange]);
309
+ const handleStateChangeDebounced = useCallback(
310
+ (state, event, details) => {
311
+ if (stateChangeDebounceRef.current) {
312
+ window.clearTimeout(stateChangeDebounceRef.current);
313
+ }
314
+ stateChangeDebounceRef.current = window.setTimeout(() => {
315
+ onStateChange?.(state, event, details);
316
+ if (localStorageKey) {
317
+ localStorage.setItem(localStorageKey, JSON.stringify(exportState()));
318
+ }
319
+ }, stateMs);
320
+ },
321
+ [onStateChange]
322
+ );
303
323
  useEffect(() => {
304
324
  if (controlledRowsSelectedId) {
305
325
  setRowsSelectedId(controlledRowsSelectedId);
@@ -314,6 +334,12 @@ var _DataTable = React.forwardRef(
314
334
  setClearCallback(false);
315
335
  }
316
336
  }, [clearCallback]);
337
+ useEffect(() => {
338
+ if (localStorageKey) {
339
+ const raw = localStorage.getItem(localStorageKey);
340
+ raw && restore(JSON.parse(raw));
341
+ }
342
+ }, [localStorageKey]);
317
343
  return /* @__PURE__ */ jsxs3(
318
344
  Stack3,
319
345
  {
@@ -347,6 +373,7 @@ var _DataTable = React.forwardRef(
347
373
  onColumnOrderChange: _onColumnOrderChange,
348
374
  onColumnWidthChange: _onColumnWidthChange,
349
375
  onColumnVisibilityModelChange: _onColumnVisibilityModelChange,
376
+ onStateChange: handleStateChangeDebounced,
350
377
  density: "compact",
351
378
  hideFooterPagination: true,
352
379
  hideFooter: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/DataTable/index.ts","../src/DataTable/DataTable.tsx","../src/DataTable/DataTableEmptyData.tsx","../src/DataTable/DataTableError.tsx","../src/DataTable/DataTableRootProvider.tsx","../src/DataTable/DataTableAction.tsx","../src/DataTable/DataTableActionDelete.tsx","../src/DataTable/DataTableActionEdit.tsx","../src/DataTable/DataTableActions.tsx","../src/DataTable/DataTableActionTransport.tsx","../src/DataTable/DataTableAddPanelTrigger.tsx","../src/DataTable/DataTableButton.tsx","../src/DataTable/DataTableCellAction.tsx","../src/DataTable/DataTableCellActionDelete.tsx","../src/DataTable/DataTableCellActionEdit.tsx","../src/DataTable/DataTableCellActions.tsx","../src/DataTable/DataTableCellActionTransport.tsx","../src/DataTable/DataTableColumnsPanelTrigger.tsx","../src/DataTable/DataTableContent.tsx","../src/DataTable/DataTableExportCsvButton.tsx","../src/DataTable/DataTableFooter.tsx","../src/DataTable/DataTablePagination.tsx","../src/DataTable/DataTableRoot.tsx","../src/DataTable/DataTableSelectionCounter.tsx","../src/DataTable/DataTableTitle.tsx","../src/DataTable/DataTableToolbar.tsx","../src/DataTable/DataTableToolbarActionsContainer.tsx"],"sourcesContent":["import { useGridApiRef } from '@mui/x-data-grid-pro'\n\nimport DataTableV3 from './DataTable'\nimport DataTableAction from './DataTableAction'\nimport DataTableActionDelete from './DataTableActionDelete'\nimport DataTableActionEdit from './DataTableActionEdit'\nimport DataTableActions from './DataTableActions'\nimport DataTableActionTransport from './DataTableActionTransport'\nimport DataTableAddPanelTrigger from './DataTableAddPanelTrigger'\nimport DataTableButton from './DataTableButton'\nimport DataTableCellAction from './DataTableCellAction'\nimport DataTableCellActionDelete from './DataTableCellActionDelete'\nimport DataTableCellActionEdit from './DataTableCellActionEdit'\nimport DataTableCellActions from './DataTableCellActions'\nimport DataTableCellActionTransport from './DataTableCellActionTransport'\nimport DataTableColumnsPanelTrigger from './DataTableColumnsPanelTrigger'\nimport DataTableContent from './DataTableContent'\nimport DataTableExportCsvButton from './DataTableExportCsvButton'\nimport DataTableFooter from './DataTableFooter'\nimport DataTablePagination from './DataTablePagination'\nimport DataTableRoot from './DataTableRoot'\nimport DataTableSelectionCounter from './DataTableSelectionCounter'\nimport DataTableTitle from './DataTableTitle'\nimport DataTableToolbar from './DataTableToolbar'\nimport DataTableToolbarActionsContainer from './DataTableToolbarActionsContainer'\nimport { GridViewState, GridWrapperApi } from './types'\n\nconst DataTable = {\n CellActionTransport: DataTableCellActionTransport,\n SelectionCounter: DataTableSelectionCounter,\n CellActionDelete: DataTableCellActionDelete,\n ExportCsvButton: DataTableExportCsvButton,\n CellActionEdit: DataTableCellActionEdit,\n CellActions: DataTableCellActions,\n CellAction: DataTableCellAction,\n Pagination: DataTablePagination,\n Actions: DataTableActions,\n Toolbar: DataTableToolbar,\n ToolbarActionsContainer: DataTableToolbarActionsContainer,\n Content: DataTableContent,\n Button: DataTableButton,\n Footer: DataTableFooter,\n Table: DataTableV3,\n Title: DataTableTitle,\n Root: DataTableRoot,\n Action: DataTableAction,\n ActionEdit: DataTableActionEdit,\n ActionDelete: DataTableActionDelete,\n ActionTransport: DataTableActionTransport,\n ColumnsPanelTrigger: DataTableColumnsPanelTrigger,\n AddPanelTrigger: DataTableAddPanelTrigger,\n useGridApiRef,\n}\n\nexport type { GridViewState, GridWrapperApi }\n\nexport default DataTable\n","import React, { useEffect } from 'react'\n\nimport { Circle } from '@mui/icons-material'\nimport { LinearProgress, Stack, StackProps } from '@mui/material'\nimport {\n DataGridPro,\n DataGridProProps,\n GridApiPro,\n GridCallbackDetails,\n GridColumnOrderChangeParams,\n GridColumnResizeParams,\n GridColumnVisibilityModel,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n GridRowSelectionModel,\n GridRowsProp,\n MuiEvent,\n GridColDef as MuiGridColDef,\n} from '@mui/x-data-grid-pro'\nimport { ptBR } from '@mui/x-data-grid-pro/locales'\n\nimport DataTableEmptyData from './DataTableEmptyData'\nimport DataTableError from './DataTableError'\nimport { useTableRootContext } from './DataTableRootProvider'\nimport { ColumnChangeMeta, GridViewState, GridWrapperApi } from './types'\n\nexport type GridColDef = MuiGridColDef & {\n enableStickyColumns?: boolean\n}\n\nexport interface DataTableProps\n extends Omit<DataGridProProps, 'onCellKeyDown' | 'onRowDoubleClick'> {\n data?: GridRowsProp<{\n [key: string | symbol]: any\n }>\n columns: GridColDef[]\n error?: string\n isLoading?: boolean\n isFetching?: boolean\n stackProps?: StackProps\n onColumnChange?: (payload: {\n state: GridViewState\n meta: ColumnChangeMeta\n }) => void\n //Revisar os métodos abaixo\n controlledRowsSelectedId?: GridRowSelectionModel\n onCellKeyDown?: (event: 'edit' | 'delete', id: number | string) => void\n onRowDoubleClick?: (event: 'edit' | 'delete', id: number | string) => void\n onClearRowsSelectedId?: (rowsSelectedId: GridRowSelectionModel) => void\n onRowSelectionChange?: (\n rowSelectionModel: GridRowSelectionModel,\n details: GridCallbackDetails,\n ) => void\n restoreFromState?: GridViewState | null\n warmUpMs?: number\n}\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nconst _DataTable = React.forwardRef<GridWrapperApi, DataTableProps>(\n function Table(props, ref) {\n const {\n error,\n isLoading,\n isFetching,\n data,\n columns,\n onColumnChange,\n onColumnVisibilityModelChange,\n onColumnOrderChange,\n onColumnWidthChange,\n controlledRowsSelectedId,\n onClearRowsSelectedId,\n onRowSelectionChange,\n onCellKeyDown,\n onRowDoubleClick,\n stackProps,\n slots,\n restoreFromState,\n warmUpMs = 150,\n pinnedColumns,\n sx,\n sortingMode = 'server',\n disableColumnPinning = true,\n disableColumnFilter = true,\n ...rest\n } = props\n\n const {\n rowsSelectedId,\n setRowsSelectedId,\n clearCallback,\n setClearCallback,\n apiRef,\n } = useTableRootContext()\n\n React.useImperativeHandle(\n ref,\n () => ({\n apiRef: apiRef.current,\n\n restoreState: (state: any) => {\n if (!apiRef?.current || !state) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(state).reduce(\n (acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n },\n {} as any,\n )\n\n if (Object.keys(cleanState).length > 0) {\n // Aguarda um momento para garantir que o grid está pronto\n window.setTimeout(() => {\n if (apiRef?.current) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs)\n }\n },\n\n exportState: () => {\n return apiRef?.current?.exportState({\n exportOnlyDirtyModels: true,\n })\n },\n }),\n [apiRef],\n )\n\n const columnWidthDebounceRef = React.useRef<number | null>(null)\n const ignoreWarmupRef = React.useRef(true)\n const hasRestoredStateRef = React.useRef(false)\n\n // Ignore warmup: ignora eventos de largura de coluna no primeiro carregamento\n React.useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n ignoreWarmupRef.current = false\n }, 100) // Aguarda 100ms após montagem para considerar warmup concluído\n\n return () => {\n window.clearTimeout(timeoutId)\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (!apiRef.current) return\n if (!restoreFromState) return\n if (hasRestoredStateRef.current) return\n\n // Aguarda o próximo tick para garantir que o DataGrid está completamente montado\n const timeoutId = window.setTimeout(() => {\n if (!apiRef.current) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(restoreFromState).reduce(\n (acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n },\n {} as any,\n )\n\n if (Object.keys(cleanState).length > 0) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs) // Aguarda após o warmup + tempo de autosize\n\n return () => window.clearTimeout(timeoutId)\n }, [apiRef, restoreFromState])\n\n const emitColumnChange = React.useCallback(\n (meta: ColumnChangeMeta) => {\n if (!apiRef.current) return\n\n const state = apiRef.current.exportState({\n exportOnlyDirtyModels: true,\n })\n onColumnChange?.({ state, meta })\n },\n [apiRef, onColumnChange],\n )\n\n function _onColumnOrderChange(\n params: GridColumnOrderChangeParams,\n event: MuiEvent<{}>,\n details: GridCallbackDetails,\n ) {\n onColumnOrderChange?.(params, event, details)\n emitColumnChange({\n reason: 'order',\n })\n }\n\n function _onColumnWidthChange(\n params: GridColumnResizeParams,\n event: MuiEvent<{} | MouseEvent>,\n details: GridCallbackDetails,\n ) {\n // Ignora eventos durante o warmup (primeiro carregamento)\n if (ignoreWarmupRef.current) {\n return\n }\n\n onColumnWidthChange?.(params, event, details)\n emitColumnWidthChangeDebounced()\n }\n\n function _onColumnVisibilityModelChange(\n params: GridColumnVisibilityModel,\n details: GridCallbackDetails,\n ) {\n onColumnVisibilityModelChange?.(params, details)\n emitColumnChange({\n reason: 'visibility',\n })\n }\n\n const emitColumnWidthChangeDebounced = React.useCallback(() => {\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n\n columnWidthDebounceRef.current = window.setTimeout(() => {\n emitColumnChange({ reason: 'width' })\n }, 250) // ajuste aqui se quiser\n }, [emitColumnChange])\n\n useEffect(() => {\n if (controlledRowsSelectedId) {\n setRowsSelectedId(controlledRowsSelectedId)\n }\n }, [controlledRowsSelectedId])\n\n useEffect(() => {\n if (clearCallback) {\n onClearRowsSelectedId &&\n onClearRowsSelectedId({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(false)\n }\n }, [clearCallback])\n\n // function handleCellKeyDown(\n // params: GridEventLookup['cellKeyDown']['params'],\n // event: MuiEvent<GridEventLookup['cellKeyDown']['event']>,\n // details: GridCallbackDetails,\n // ) {\n // const eventCode =\n // event.ctrlKey && event.code === 'KeyE' ? 'ctrl+e' : event.code\n // switch (eventCode) {\n // case 'Enter':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // // case 'F2':\n // // event.preventDefault()\n // // //Open Form\n // // break\n // case 'F3':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // case 'Delete':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('delete', params.id)\n // break\n // case 'ctrl+e':\n // event.preventDefault()\n // const handleExport = (options: GridCsvExportOptions) => {\n // if (apiRef?.current) {\n // apiRef.current.exportDataAsCsv(options)\n // }\n // }\n\n // handleExport({ getRowsToExport: getFilteredRows })\n // break\n // default:\n // break\n // }\n // }\n\n // function handleRowDoubleClick(\n // params: GridRowParams,\n // _: React.MouseEvent,\n // details: GridCallbackDetails,\n // ) {\n // if (onRowDoubleClick) onRowDoubleClick('edit', params.id)\n // }\n\n return (\n <Stack\n height=\"100%\"\n minHeight=\"500px\"\n position=\"relative\"\n {...stackProps}\n >\n {!isLoading && isFetching && (\n <LinearProgress\n sx={{\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 999,\n height: '3px',\n }}\n />\n )}\n\n <DataGridPro\n apiRef={apiRef as React.MutableRefObject<GridApiPro> | undefined}\n rows={data}\n columns={columns}\n pinnedColumns={{ ...pinnedColumns, right: ['id', 'uuid'], left: [] }}\n disableColumnPinning={disableColumnPinning}\n disableColumnFilter={disableColumnFilter}\n onColumnOrderChange={_onColumnOrderChange}\n onColumnWidthChange={_onColumnWidthChange}\n onColumnVisibilityModelChange={_onColumnVisibilityModelChange}\n // Revisar parametros abaixo\n density=\"compact\"\n hideFooterPagination\n hideFooter\n loading={isLoading}\n rowHeight={43}\n columnHeaderHeight={43}\n disableVirtualization\n // onRowDoubleClick={handleRowDoubleClick}\n // onCellKeyDown={handleCellKeyDown}\n disableRowSelectionOnClick\n rowSelectionModel={rowsSelectedId}\n onRowSelectionModelChange={(rowSelectionModel, details) => {\n if (onRowSelectionChange) {\n onRowSelectionChange(rowSelectionModel, details)\n }\n\n if (controlledRowsSelectedId) return\n setRowsSelectedId(rowSelectionModel)\n }}\n slots={{\n booleanCellFalseIcon: () => (\n <Circle color=\"error\" sx={{ fontSize: '10pt' }} />\n ),\n booleanCellTrueIcon: () => (\n <Circle color=\"success\" sx={{ fontSize: '10pt' }} />\n ),\n noRowsOverlay: () =>\n !isLoading && !!error ? (\n <DataTableError errorMessage={error} />\n ) : (\n <DataTableEmptyData />\n ),\n ...slots,\n }}\n slotProps={{\n loadingOverlay: {\n variant: 'skeleton',\n noRowsVariant: 'skeleton',\n },\n }}\n localeText={ptBR.components.MuiDataGrid.defaultProps.localeText}\n sortingMode={sortingMode}\n sx={{\n border: 'none',\n borderRadius: 0,\n '--DataGrid-rowBorderColor': '#edf2f9',\n '--DataGrid-containerBackground': '#f4f6fa',\n '.MuiDataGrid-overlayWrapperInner': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n '.MuiDataGrid-row': {\n backgroundColor: 'white',\n '&:nth-of-type(even)': {\n backgroundColor: '#f9fafd',\n },\n ':hover': {\n backgroundColor: '#e9e9e9',\n },\n '&.Mui-selected': {\n backgroundColor: 'rgb(238, 249, 252)',\n '&:hover': {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n },\n },\n '.MuiDataGrid-cell': {\n fontSize: '12px',\n color: '#0b0e14',\n },\n '.MuiDataGrid-columnHeaders': {\n border: 'solid 1px #edf2f9',\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeader': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaders .MuiDataGrid-filler': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaderTitle': {\n fontSize: '12px',\n color: '#0b0e14',\n fontWeight: '600',\n },\n '& .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'white',\n },\n '& .MuiDataGrid-row:nth-of-type(even) .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: '#f9fafd',\n },\n '& .MuiDataGrid-row:hover .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: '#e9e9e9',\n },\n '& .MuiDataGrid-row.Mui-selected .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'rgb(238, 249, 252)',\n },\n '& .MuiDataGrid-row.Mui-selected:hover .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n '& .sticky-cell': {\n position: 'sticky',\n right: 0,\n zIndex: 1,\n },\n '& .sticky-header': {\n position: 'sticky',\n right: 0,\n backgroundColor: '#f4f6fa',\n zIndex: 2,\n },\n ...(sx as any),\n }}\n {...rest}\n />\n </Stack>\n )\n },\n)\n\nexport default _DataTable\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableEmptyData() {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/empty-data.svg\"\n alt=\"Imagem de notificação\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack spacing={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Nenhum registro encontrado\n </Typography>\n <Typography variant=\"body2\" whiteSpace=\"normal\">\n Tente outra pesquisa ou adicione um novo registro.\n </Typography>\n </Stack>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableError({\n errorMessage,\n}: {\n errorMessage: string\n}) {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/error.svg\"\n alt=\"Imagem de erro\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack gap={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Ops! Algo deu errado\n </Typography>\n\n <Typography variant=\"body2\">{errorMessage}</Typography>\n </Stack>\n </Stack>\n )\n}\n","import {\n createContext,\n ReactNode,\n RefObject,\n useContext,\n useState,\n} from 'react'\n\nimport {\n GridApiPro,\n GridRowSelectionModel,\n useGridApiRef,\n} from '@mui/x-data-grid-pro'\n\ninterface TableRootContextData {\n apiRef: RefObject<GridApiPro>\n rowsSelectedId: GridRowSelectionModel\n clearCallback: boolean\n breakpoint: boolean\n setBreakpoint: (breakpoint: boolean) => void\n setRowsSelectedId: (rowsSelectedId: GridRowSelectionModel) => void\n clearRowsSelectedId: () => void\n setClearCallback: (clearCallback: boolean) => void\n}\n\nexport const TableRootContext = createContext({} as TableRootContextData)\n\ninterface TableRootProviderProps {\n children: ReactNode\n}\n\nexport default function TableRootProvider({\n children,\n}: TableRootProviderProps) {\n const [ids, setIds] = useState<GridRowSelectionModel>({\n type: 'include',\n ids: new Set<string>(),\n })\n const [clearCallback, setClearCallback] = useState(false)\n const [breakpoint, setBreakpoint] = useState(false)\n\n const apiRef = useGridApiRef()\n\n function handleClearRowsSelectedId() {\n setIds({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(true)\n }\n\n return (\n <TableRootContext.Provider\n value={{\n apiRef,\n rowsSelectedId: ids,\n clearCallback,\n breakpoint,\n setClearCallback,\n setBreakpoint,\n setRowsSelectedId: setIds,\n clearRowsSelectedId: handleClearRowsSelectedId,\n }}\n >\n {children}\n </TableRootContext.Provider>\n )\n}\n\nexport function useTableRootContext() {\n return useContext<TableRootContextData>(TableRootContext)\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\n\nexport type DataTableActionProps = {} & GridActionsCellItemProps\n\nexport default function DataTableAction(props: DataTableActionProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Trash2 } from 'lucide-react'\n\nexport type DataTableActionDeleteProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionDelete(\n props: DataTableActionDeleteProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"error\"\n label=\"Deletar\"\n icon={<Trash2 size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Pencil } from 'lucide-react'\n\nexport type DataTableActionEditProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionEdit(props: DataTableActionEditProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n label=\"Editar\"\n color=\"primary\"\n icon={<Pencil size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { ReactNode, useEffect } from 'react'\nimport { Breakpoint, Stack, useMediaQuery, useTheme } from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface ActionsProps {\n breakpoints?: Breakpoint | number\n children: ReactNode\n}\n\nexport default function Actions({ children, breakpoints }: ActionsProps) {\n const { setBreakpoint } = useTableRootContext()\n\n const theme = useTheme()\n const breakpoint = useMediaQuery(theme.breakpoints.down(breakpoints || 'md'))\n\n useEffect(() => {\n setBreakpoint(breakpoint)\n }, [breakpoint])\n\n return (\n <Stack\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent={'flex-end'}\n // position=\"relative\"\n // overflow=\"hidden\"\n gap={1}\n marginLeft=\"auto\"\n flexGrow={1}\n >\n {children}\n </Stack>\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { ArrowBigDown } from 'lucide-react'\n\nexport type DataTableActionTransportProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionTransport(\n props: DataTableActionTransportProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"primary\"\n label=\"Transportar\"\n icon={<ArrowBigDown size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ToolbarButton } from '@mui/x-data-grid-pro'\nimport { SquarePlus } from 'lucide-react'\n\nexport interface DataTableAddPanelTriggerProps {\n onClick?: React.MouseEventHandler<HTMLElement> | undefined\n}\n\nexport default function DataTableAddPanelTrigger({\n onClick,\n}: DataTableAddPanelTriggerProps) {\n const theme = useTheme()\n return (\n <ToolbarButton onClick={onClick}>\n <SquarePlus color={theme.palette.primary.main} size={18} />\n </ToolbarButton>\n )\n}\n","import {\n ButtonProps as MuiButtonProps,\n Button as MuiButton,\n CircularProgress,\n IconButton,\n Tooltip,\n Box,\n} from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ntype ButtonProps = {\n isLoading?: boolean\n} & MuiButtonProps\n\nexport default function DataTableButton(props: ButtonProps) {\n const { isLoading, startIcon, children, title, ...rest } = props\n\n const { breakpoint } = useTableRootContext()\n\n return (\n <>\n {breakpoint ? (\n <Tooltip title={children}>\n <IconButton\n {...rest}\n color=\"primary\"\n disabled={isLoading ? true : rest.disabled}\n >\n {startIcon}\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '25%',\n bottom: '25%',\n left: '25%',\n right: '25%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n </IconButton>\n </Tooltip>\n ) : (\n <MuiButton\n startIcon={startIcon}\n disabled={isLoading ? true : rest.disabled}\n // variant=\"outlined\"\n sx={{\n position: 'relative',\n height: '26px',\n minWidth: '70px',\n padding: '7px 8px 8px',\n border: '1px solid rgba(223, 226, 231, 0.8)',\n borderRadius: '6px',\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n flexShrink: 1,\n transition: 'width 0.2s ease',\n }}\n {...rest}\n >\n <Box\n component=\"span\"\n sx={{\n transition: 'opacity 0.2s ease, width 0.2s ease',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '22%',\n left: '44%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n\n {children}\n </Box>\n </MuiButton>\n )}\n </>\n )\n}\n","import { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ntype CellActionProps = { event?: string; onClick?: (event?: string) => void }\n// & Omit<GridActionsCellItemProps, 'onClick'>\n\n/** @deprecated */\nexport default function CellAction(props: CellActionProps) {\n const { event, onClick, ...rest } = props\n\n return (\n <GridActionsCellItem\n label=\"Ação\"\n onClick={() => {}}\n icon={<span>🔧</span>} // Placeholder icon\n // color=\"primary\"\n // onClick={(event) => {}}\n // onClick={(_: any, __: any, ___: any) => {\n // onClick?.(event)\n // }}\n />\n )\n}\n","import { Delete as DeleteIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionDeleteProps {\n onClick?: (event: 'delete') => void\n disabled?: boolean\n title?: string\n}\n\n/** @deprecated */\nexport default function CellActionDelete({\n onClick,\n ...rest\n}: CellActionDeleteProps) {\n return (\n <GridActionsCellItem\n icon={<DeleteIcon />}\n label=\"Delete\"\n color=\"primary\"\n onClick={() => {\n if (onClick) onClick('delete')\n }}\n {...rest}\n />\n )\n}\n","import { Edit as EditIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionEditProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'edit') => void\n}\n\n/** @deprecated */\nexport default function CellActionEdit({\n onClick,\n ...rest\n}: CellActionEditProps) {\n return (\n <GridActionsCellItem\n icon={<EditIcon />}\n label=\"Edit\"\n color=\"primary\"\n onClick={() => onClick && onClick('edit')}\n {...rest}\n />\n )\n}\n","import { Children, cloneElement, isValidElement, ReactNode } from 'react'\n\ninterface CellActionsProps {\n children: ReactNode\n onClick: (event: any) => void\n}\n\n/** @deprecated */\nexport default function CellActions(props: CellActionsProps) {\n const { children, onClick: onItemClick } = props\n return (\n <>\n {Children.map(children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child as React.ReactElement<any>, {\n onClick: onItemClick,\n })\n }\n })}\n </>\n )\n}\n","import { GetApp as TransportIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionTransportProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'transport') => void\n}\n\n/** @deprecated */\nexport default function CellActionTransport({\n onClick,\n ...rest\n}: CellActionTransportProps) {\n return (\n <GridActionsCellItem\n icon={<TransportIcon />}\n label=\"Transport\"\n color=\"primary\"\n onClick={() => onClick && onClick('transport')}\n {...rest}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ColumnsPanelTrigger, ToolbarButton } from '@mui/x-data-grid-pro'\nimport { Columns3Cog } from 'lucide-react'\n\nexport default function DataTableColumnsPanelTrigger() {\n const theme = useTheme()\n return (\n <ColumnsPanelTrigger render={<ToolbarButton />}>\n <Columns3Cog color={theme.palette.primary.main} size={18} />\n </ColumnsPanelTrigger>\n )\n}\n","import { Stack, StackProps } from '@mui/material'\n\nexport default function Content(props: StackProps) {\n return (\n <Stack\n direction=\"row\"\n width={'100%'}\n flexGrow={1}\n alignItems=\"center\"\n gap={1.5}\n sx={{ background: '#f4f' }}\n {...props}\n />\n )\n}\n","import { FileDownload as FileDownloadIcon } from '@mui/icons-material'\nimport {\n GridCsvExportOptions,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n} from '@mui/x-data-grid-pro'\n\nimport Button from './DataTableButton'\nimport { useTableRootContext } from './DataTableRootProvider'\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nexport default function ExportCsvButton() {\n const { apiRef } = useTableRootContext()\n\n const handleExport = (options: GridCsvExportOptions) => {\n if (apiRef?.current) {\n apiRef.current.exportDataAsCsv(options)\n }\n }\n\n return (\n <Button\n startIcon={<FileDownloadIcon />}\n onClick={() => handleExport({ getRowsToExport: getFilteredRows })}\n >\n Exportar CSV\n </Button>\n )\n}\n","import { TableFooterProps, TableFooter } from '@mui/material'\nexport default function Footer(props: TableFooterProps) {\n return (\n <TableFooter\n {...props}\n sx={{\n height: '54px',\n paddingX: '12px',\n gap: '12px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'white',\n borderBottomLeftRadius: '8px',\n borderBottomRightRadius: '8px',\n borderTop: '1px solid #edf2f9',\n }}\n />\n )\n}\n","import {\n PaginationProps as MioPaginationProps,\n pluralizar,\n} from '@data-c/hooks'\nimport {\n MenuItem,\n Pagination as MuiPagination,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport { useMemo } from 'react'\n\ninterface PaginationProps {\n pagination?: MioPaginationProps\n rowsPerPageOptions?: number[]\n onChangePage?: (currentPage: number) => void\n onChangePageSize?: (numberOfRows: number) => void\n}\n\nexport default function Pagination(props: PaginationProps) {\n const {\n onChangePageSize,\n onChangePage,\n pagination,\n rowsPerPageOptions = [15, 50, 100, 200],\n } = props\n const { page, pageSize = 15, totalRecords } = pagination || {}\n\n const pages = useMemo(() => {\n if (pagination?.lastPage) return pagination.lastPage\n\n if ((totalRecords || 0) < pageSize) return 1\n return Math.max(Math.ceil((totalRecords || 0) / pageSize))\n }, [totalRecords, pageSize])\n\n const totalRecordsLabel = useMemo(() => {\n if ((totalRecords || 0) < pageSize)\n return `Exibindo ${pluralizar(\n totalRecords || 0,\n 'registro',\n 'registros',\n true,\n )}`\n\n let registrosExibidos = pageSize\n if (page === pages) {\n const ultimaPaginaRegistros = (totalRecords || 0) % pageSize\n registrosExibidos =\n ultimaPaginaRegistros === 0 ? pageSize : ultimaPaginaRegistros\n }\n\n return `Exibindo ${pluralizar(\n registrosExibidos || 0,\n 'registro',\n 'registros',\n true,\n )} de ${totalRecords}`\n }, [pagination, pages])\n\n // const showPagination = Boolean((totalRecords || 0) > pageSize)\n const showPagination = true\n\n return (\n <Stack\n width=\"100%\"\n direction=\"row\"\n alignItems=\"center\"\n gap={2}\n marginLeft=\"auto\"\n >\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {totalRecordsLabel}\n </Typography>\n\n {showPagination && (\n <Stack direction=\"row\" alignItems=\"center\" gap={2} marginLeft=\"auto\">\n <TextField\n sx={{\n width: '78px',\n fontSize: '8pt',\n }}\n size=\"small\"\n value={pageSize || 0}\n select\n onChange={(e) => {\n if (onChangePageSize) {\n onChangePageSize(parseInt(e.target.value))\n }\n }}\n >\n {rowsPerPageOptions.map((option: number) => (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n ))}\n </TextField>\n <MuiPagination\n variant=\"outlined\"\n shape=\"rounded\"\n count={pages || 0}\n showFirstButton\n showLastButton\n onChange={(_, _page) => {\n if (onChangePage) onChangePage(_page)\n }}\n page={page || 0}\n color=\"primary\"\n />\n </Stack>\n )}\n </Stack>\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Stack, StackProps } from '@mui/material'\nimport TableRootProvider from './DataTableRootProvider'\n\nexport default function Root({ children, height, ...rest }: StackProps) {\n const tableContainerRef = useRef<HTMLDivElement>(null)\n const [tableHeight, setTableHeight] = useState<number>(500)\n\n useEffect(() => {\n const calculateHeight = () => {\n const container = tableContainerRef.current\n if (!container) return\n\n const containerTop = container.getBoundingClientRect().top\n setTableHeight(window.innerHeight - containerTop)\n }\n calculateHeight()\n window.addEventListener('resize', calculateHeight)\n return () => {\n window.removeEventListener('resize', calculateHeight)\n }\n }, [])\n\n return (\n <Stack\n ref={tableContainerRef}\n sx={{\n backgroundColor: '#f4f6fa',\n border: '1px solid #edf2f9',\n borderRadius: 2,\n height: height || `calc(${tableHeight}px - 16px)`,\n ...rest.sx,\n }}\n {...rest}\n >\n <TableRootProvider>{children}</TableRootProvider>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface SelectionCounterProps {\n countTitle?: string\n gender?: 'masculino' | 'feminino'\n}\n\nexport default function SelectionCounter(props: SelectionCounterProps) {\n const { countTitle, gender } = props\n\n const { rowsSelectedId } = useTableRootContext()\n const countQuantidade = rowsSelectedId?.ids.size || 0\n\n const flexSufixCountTitle = useMemo(() => {\n if (!countTitle) return ''\n\n const selecionadoText =\n gender === 'feminino' ? 'selecionada' : 'selecionado'\n const selecionadosText =\n gender === 'feminino' ? 'selecionadas' : 'selecionados'\n const nenhumText = gender === 'feminino' ? 'Nenhuma' : 'Nenhum'\n\n return countQuantidade === 1\n ? `${countTitle} ${selecionadoText}`\n : countQuantidade && countQuantidade > 1\n ? `${countTitle\n .split(' ')\n .map((item) => `${item}s`)\n .join(' ')} ${selecionadosText}`\n : `${nenhumText} ${countTitle} ${selecionadoText}`\n }, [countQuantidade])\n\n return (\n <Stack>\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {countQuantidade && countQuantidade > 0 ? countQuantidade : ''}{' '}\n {flexSufixCountTitle}\n </Typography>\n </Stack>\n )\n}\n","import { Typography, TypographyProps, useTheme } from '@mui/material'\n\ninterface TitleProps extends TypographyProps {\n titleDivider?: boolean\n children: string\n}\n\nexport default function Title({\n children,\n titleDivider = false,\n sx,\n}: TitleProps) {\n const theme = useTheme()\n\n return (\n <Typography\n variant=\"h6\"\n whiteSpace=\"nowrap\"\n sx={{\n borderRight: titleDivider\n ? `solid 1px ${theme.palette.grey[300]}`\n : 'none',\n paddingRight: 1.5,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Paper, Stack } from '@mui/material'\nimport { Toolbar as MuiToolbar } from '@mui/x-data-grid-pro'\nimport { ReactNode } from 'react'\n\ninterface ToolbarProps {\n children?: ReactNode\n}\n\nexport default function Toolbar({ children }: ToolbarProps) {\n return (\n <MuiToolbar\n render={\n <Stack\n component={Paper}\n elevation={0}\n gap={1.5}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n p={1}\n // height={(theme) => `${theme.mixins.toolbar}px`}\n // height=\"52px\"\n borderRadius=\"8px 8px 0 0\"\n sx={{ width: '100%' }}\n >\n {children}\n </Stack>\n }\n />\n )\n}\n","import { Stack } from '@mui/material'\nimport { ReactNode } from 'react'\n\ninterface ToolbarActionsContainerProps {\n children?: ReactNode\n}\n\nexport default function ToolbarActionsContainer({\n children,\n}: ToolbarActionsContainerProps) {\n return (\n <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"flex-end\">\n {children}\n </Stack>\n )\n}\n"],"mappings":"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","names":["useGridApiRef","Stack","Stack","Typography","jsx","jsxs","jsx","jsx","jsxs","jsxs","Stack","jsx","jsx","GridActionsCellItem","jsx","GridActionsCellItem","jsx","useEffect","Stack","jsx","useEffect","Stack","GridActionsCellItem","jsx","useTheme","jsx","jsx","jsxs","GridActionsCellItem","jsx","GridActionsCellItem","jsx","GridActionsCellItem","jsx","Fragment","jsx","GridActionsCellItem","jsx","useTheme","ToolbarButton","jsx","Stack","jsx","gridFilteredSortedRowIdsSelector","jsx","gridFilteredSortedRowIdsSelector","jsx","Stack","Typography","jsx","jsxs","useEffect","useState","Stack","jsx","useState","useEffect","Stack","Stack","Typography","useMemo","jsx","jsxs","useMemo","Stack","Typography","Typography","useTheme","jsx","Stack","jsx","Stack","jsx","useGridApiRef","DataTable_default"]}
1
+ {"version":3,"sources":["../src/DataTable/index.ts","../src/DataTable/DataTable.tsx","../src/DataTable/DataTableEmptyData.tsx","../src/DataTable/DataTableError.tsx","../src/DataTable/DataTableRootProvider.tsx","../src/DataTable/DataTableAction.tsx","../src/DataTable/DataTableActionDelete.tsx","../src/DataTable/DataTableActionEdit.tsx","../src/DataTable/DataTableActions.tsx","../src/DataTable/DataTableActionTransport.tsx","../src/DataTable/DataTableAddPanelTrigger.tsx","../src/DataTable/DataTableButton.tsx","../src/DataTable/DataTableCellAction.tsx","../src/DataTable/DataTableCellActionDelete.tsx","../src/DataTable/DataTableCellActionEdit.tsx","../src/DataTable/DataTableCellActions.tsx","../src/DataTable/DataTableCellActionTransport.tsx","../src/DataTable/DataTableColumnsPanelTrigger.tsx","../src/DataTable/DataTableContent.tsx","../src/DataTable/DataTableExportCsvButton.tsx","../src/DataTable/DataTableFooter.tsx","../src/DataTable/DataTablePagination.tsx","../src/DataTable/DataTableRoot.tsx","../src/DataTable/DataTableSelectionCounter.tsx","../src/DataTable/DataTableTitle.tsx","../src/DataTable/DataTableToolbar.tsx","../src/DataTable/DataTableToolbarActionsContainer.tsx"],"sourcesContent":["import { useGridApiRef } from '@mui/x-data-grid-pro'\n\nimport DataTableV3 from './DataTable'\nimport DataTableAction from './DataTableAction'\nimport DataTableActionDelete from './DataTableActionDelete'\nimport DataTableActionEdit from './DataTableActionEdit'\nimport DataTableActions from './DataTableActions'\nimport DataTableActionTransport from './DataTableActionTransport'\nimport DataTableAddPanelTrigger from './DataTableAddPanelTrigger'\nimport DataTableButton from './DataTableButton'\nimport DataTableCellAction from './DataTableCellAction'\nimport DataTableCellActionDelete from './DataTableCellActionDelete'\nimport DataTableCellActionEdit from './DataTableCellActionEdit'\nimport DataTableCellActions from './DataTableCellActions'\nimport DataTableCellActionTransport from './DataTableCellActionTransport'\nimport DataTableColumnsPanelTrigger from './DataTableColumnsPanelTrigger'\nimport DataTableContent from './DataTableContent'\nimport DataTableExportCsvButton from './DataTableExportCsvButton'\nimport DataTableFooter from './DataTableFooter'\nimport DataTablePagination from './DataTablePagination'\nimport DataTableRoot from './DataTableRoot'\nimport DataTableSelectionCounter from './DataTableSelectionCounter'\nimport DataTableTitle from './DataTableTitle'\nimport DataTableToolbar from './DataTableToolbar'\nimport DataTableToolbarActionsContainer from './DataTableToolbarActionsContainer'\nimport { GridViewState, GridWrapperApi } from './types'\n\nconst DataTable = {\n CellActionTransport: DataTableCellActionTransport,\n SelectionCounter: DataTableSelectionCounter,\n CellActionDelete: DataTableCellActionDelete,\n ExportCsvButton: DataTableExportCsvButton,\n CellActionEdit: DataTableCellActionEdit,\n CellActions: DataTableCellActions,\n CellAction: DataTableCellAction,\n Pagination: DataTablePagination,\n Actions: DataTableActions,\n Toolbar: DataTableToolbar,\n ToolbarActionsContainer: DataTableToolbarActionsContainer,\n Content: DataTableContent,\n Button: DataTableButton,\n Footer: DataTableFooter,\n Table: DataTableV3,\n Title: DataTableTitle,\n Root: DataTableRoot,\n Action: DataTableAction,\n ActionEdit: DataTableActionEdit,\n ActionDelete: DataTableActionDelete,\n ActionTransport: DataTableActionTransport,\n ColumnsPanelTrigger: DataTableColumnsPanelTrigger,\n AddPanelTrigger: DataTableAddPanelTrigger,\n useGridApiRef,\n}\n\nexport type { GridViewState, GridWrapperApi }\n\nexport default DataTable\n","import React, { useCallback, useEffect } from 'react'\n\nimport { Circle } from '@mui/icons-material'\nimport { LinearProgress, Stack, StackProps } from '@mui/material'\nimport {\n DataGridPro,\n DataGridProProps,\n GridApiPro,\n GridCallbackDetails,\n GridColumnOrderChangeParams,\n GridColumnResizeParams,\n GridColumnVisibilityModel,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n GridRowSelectionModel,\n GridRowsProp,\n GridState,\n MuiEvent,\n GridColDef as MuiGridColDef,\n} from '@mui/x-data-grid-pro'\nimport { ptBR } from '@mui/x-data-grid-pro/locales'\n\nimport DataTableEmptyData from './DataTableEmptyData'\nimport DataTableError from './DataTableError'\nimport { useTableRootContext } from './DataTableRootProvider'\nimport { ColumnChangeMeta, GridViewState, GridWrapperApi } from './types'\n\nexport type GridColDef = MuiGridColDef & {\n enableStickyColumns?: boolean\n}\n\nexport interface DataTableProps\n extends Omit<DataGridProProps, 'onCellKeyDown' | 'onRowDoubleClick'> {\n data?: GridRowsProp<{\n [key: string | symbol]: any\n }>\n columns: GridColDef[]\n error?: string\n isLoading?: boolean\n isFetching?: boolean\n stackProps?: StackProps\n onColumnChange?: (payload: {\n state: GridViewState\n meta: ColumnChangeMeta\n }) => void\n //Revisar os métodos abaixo\n controlledRowsSelectedId?: GridRowSelectionModel\n onCellKeyDown?: (event: 'edit' | 'delete', id: number | string) => void\n onRowDoubleClick?: (event: 'edit' | 'delete', id: number | string) => void\n onClearRowsSelectedId?: (rowsSelectedId: GridRowSelectionModel) => void\n onRowSelectionChange?: (\n rowSelectionModel: GridRowSelectionModel,\n details: GridCallbackDetails,\n ) => void\n restoreFromState?: GridViewState | null\n warmUpMs?: number\n stateMs?: number\n localStorageKey?: string\n}\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nconst _DataTable = React.forwardRef<GridWrapperApi, DataTableProps>(\n function Table(props, ref) {\n const {\n error,\n isLoading,\n isFetching,\n data,\n columns,\n onColumnChange,\n onColumnVisibilityModelChange,\n onColumnOrderChange,\n onColumnWidthChange,\n onStateChange,\n controlledRowsSelectedId,\n onClearRowsSelectedId,\n onRowSelectionChange,\n onCellKeyDown,\n onRowDoubleClick,\n stackProps,\n slots,\n restoreFromState,\n warmUpMs = 150,\n stateMs = 500,\n pinnedColumns,\n sx,\n sortingMode = 'server',\n disableColumnPinning = true,\n disableColumnFilter = true,\n localStorageKey,\n ...rest\n } = props\n\n const {\n rowsSelectedId,\n setRowsSelectedId,\n clearCallback,\n setClearCallback,\n apiRef,\n } = useTableRootContext()\n\n const restore = (state: any) => {\n if (!apiRef?.current || !state) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(state).reduce((acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n }, {} as any)\n\n if (Object.keys(cleanState).length > 0) {\n // Aguarda um momento para garantir que o grid está pronto\n window.setTimeout(() => {\n if (apiRef?.current) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs)\n }\n }\n\n const exportState = () => {\n return apiRef?.current?.exportState({\n exportOnlyDirtyModels: true,\n })\n }\n\n React.useImperativeHandle(\n ref,\n () => ({\n apiRef: apiRef.current,\n\n restoreState: restore,\n\n exportState: exportState,\n }),\n [apiRef, restore],\n )\n\n const columnWidthDebounceRef = React.useRef<number | null>(null)\n const stateChangeDebounceRef = React.useRef<number | null>(null)\n const ignoreWarmupRef = React.useRef(true)\n const hasRestoredStateRef = React.useRef(false)\n\n // Ignore warmup: ignora eventos de largura de coluna no primeiro carregamento\n React.useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n ignoreWarmupRef.current = false\n }, 100) // Aguarda 100ms após montagem para considerar warmup concluído\n\n return () => {\n window.clearTimeout(timeoutId)\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n if (stateChangeDebounceRef.current) {\n window.clearTimeout(stateChangeDebounceRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (!apiRef.current) return\n if (!restoreFromState) return\n if (hasRestoredStateRef.current) return\n\n // Aguarda o próximo tick para garantir que o DataGrid está completamente montado\n const timeoutId = window.setTimeout(() => {\n if (!apiRef.current) return\n\n // Filter out null values from the state to prevent errors\n const cleanState = Object.entries(restoreFromState).reduce(\n (acc, [key, value]) => {\n if (value !== null) {\n acc[key] = value\n }\n return acc\n },\n {} as any,\n )\n\n if (Object.keys(cleanState).length > 0) {\n apiRef.current.restoreState(cleanState)\n hasRestoredStateRef.current = true\n }\n }, warmUpMs) // Aguarda após o warmup + tempo de autosize\n\n return () => window.clearTimeout(timeoutId)\n }, [apiRef, restoreFromState])\n\n const emitColumnChange = React.useCallback(\n (meta: ColumnChangeMeta) => {\n if (!apiRef.current) return\n\n const state = apiRef.current.exportState({\n exportOnlyDirtyModels: true,\n })\n onColumnChange?.({ state, meta })\n },\n [apiRef, onColumnChange],\n )\n\n function _onColumnOrderChange(\n params: GridColumnOrderChangeParams,\n event: MuiEvent<{}>,\n details: GridCallbackDetails,\n ) {\n onColumnOrderChange?.(params, event, details)\n emitColumnChange({\n reason: 'order',\n })\n }\n\n function _onColumnWidthChange(\n params: GridColumnResizeParams,\n event: MuiEvent<{} | MouseEvent>,\n details: GridCallbackDetails,\n ) {\n // Ignora eventos durante o warmup (primeiro carregamento)\n if (ignoreWarmupRef.current) {\n return\n }\n\n onColumnWidthChange?.(params, event, details)\n emitColumnWidthChangeDebounced()\n }\n\n function _onColumnVisibilityModelChange(\n params: GridColumnVisibilityModel,\n details: GridCallbackDetails,\n ) {\n onColumnVisibilityModelChange?.(params, details)\n emitColumnChange({\n reason: 'visibility',\n })\n }\n\n const emitColumnWidthChangeDebounced = React.useCallback(() => {\n if (columnWidthDebounceRef.current) {\n window.clearTimeout(columnWidthDebounceRef.current)\n }\n\n columnWidthDebounceRef.current = window.setTimeout(() => {\n emitColumnChange({ reason: 'width' })\n }, 250) // ajuste aqui se quiser\n }, [emitColumnChange])\n\n // Debounce para onStateChange\n const handleStateChangeDebounced = useCallback(\n (state: GridState, event: MuiEvent<{}>, details: GridCallbackDetails) => {\n if (stateChangeDebounceRef.current) {\n window.clearTimeout(stateChangeDebounceRef.current)\n }\n\n stateChangeDebounceRef.current = window.setTimeout(() => {\n onStateChange?.(state, event, details)\n if (localStorageKey) {\n localStorage.setItem(localStorageKey, JSON.stringify(exportState()))\n }\n }, stateMs)\n },\n [onStateChange],\n )\n\n useEffect(() => {\n if (controlledRowsSelectedId) {\n setRowsSelectedId(controlledRowsSelectedId)\n }\n }, [controlledRowsSelectedId])\n\n useEffect(() => {\n if (clearCallback) {\n onClearRowsSelectedId &&\n onClearRowsSelectedId({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(false)\n }\n }, [clearCallback])\n\n // const restore = (): GridViewState | null => {\n // console.log('Restaurando estado da grid...')\n // const raw = localStorage.getItem('grid:clientes:view')\n // return raw ? JSON.parse(raw) : null\n // // return null\n // }\n\n useEffect(() => {\n if (localStorageKey) {\n const raw = localStorage.getItem(localStorageKey)\n raw && restore(JSON.parse(raw))\n }\n }, [localStorageKey])\n\n // function handleCellKeyDown(\n // params: GridEventLookup['cellKeyDown']['params'],\n // event: MuiEvent<GridEventLookup['cellKeyDown']['event']>,\n // details: GridCallbackDetails,\n // ) {\n // const eventCode =\n // event.ctrlKey && event.code === 'KeyE' ? 'ctrl+e' : event.code\n // switch (eventCode) {\n // case 'Enter':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // // case 'F2':\n // // event.preventDefault()\n // // //Open Form\n // // break\n // case 'F3':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('edit', params.id)\n // break\n // case 'Delete':\n // event.preventDefault()\n // if (onCellKeyDown) onCellKeyDown('delete', params.id)\n // break\n // case 'ctrl+e':\n // event.preventDefault()\n // const handleExport = (options: GridCsvExportOptions) => {\n // if (apiRef?.current) {\n // apiRef.current.exportDataAsCsv(options)\n // }\n // }\n\n // handleExport({ getRowsToExport: getFilteredRows })\n // break\n // default:\n // break\n // }\n // }\n\n // function handleRowDoubleClick(\n // params: GridRowParams,\n // _: React.MouseEvent,\n // details: GridCallbackDetails,\n // ) {\n // if (onRowDoubleClick) onRowDoubleClick('edit', params.id)\n // }\n\n return (\n <Stack\n height=\"100%\"\n minHeight=\"500px\"\n position=\"relative\"\n {...stackProps}\n >\n {!isLoading && isFetching && (\n <LinearProgress\n sx={{\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 999,\n height: '3px',\n }}\n />\n )}\n\n <DataGridPro\n apiRef={apiRef as React.MutableRefObject<GridApiPro> | undefined}\n rows={data}\n columns={columns}\n pinnedColumns={{ ...pinnedColumns, right: ['id', 'uuid'], left: [] }}\n disableColumnPinning={disableColumnPinning}\n disableColumnFilter={disableColumnFilter}\n onColumnOrderChange={_onColumnOrderChange}\n onColumnWidthChange={_onColumnWidthChange}\n onColumnVisibilityModelChange={_onColumnVisibilityModelChange}\n onStateChange={handleStateChangeDebounced}\n // Revisar parametros abaixo\n density=\"compact\"\n hideFooterPagination\n hideFooter\n loading={isLoading}\n rowHeight={43}\n columnHeaderHeight={43}\n disableVirtualization\n // onRowDoubleClick={handleRowDoubleClick}\n // onCellKeyDown={handleCellKeyDown}\n disableRowSelectionOnClick\n rowSelectionModel={rowsSelectedId}\n onRowSelectionModelChange={(rowSelectionModel, details) => {\n if (onRowSelectionChange) {\n onRowSelectionChange(rowSelectionModel, details)\n }\n\n if (controlledRowsSelectedId) return\n setRowsSelectedId(rowSelectionModel)\n }}\n slots={{\n booleanCellFalseIcon: () => (\n <Circle color=\"error\" sx={{ fontSize: '10pt' }} />\n ),\n booleanCellTrueIcon: () => (\n <Circle color=\"success\" sx={{ fontSize: '10pt' }} />\n ),\n noRowsOverlay: () =>\n !isLoading && !!error ? (\n <DataTableError errorMessage={error} />\n ) : (\n <DataTableEmptyData />\n ),\n ...slots,\n }}\n slotProps={{\n loadingOverlay: {\n variant: 'skeleton',\n noRowsVariant: 'skeleton',\n },\n }}\n localeText={ptBR.components.MuiDataGrid.defaultProps.localeText}\n sortingMode={sortingMode}\n sx={{\n border: 'none',\n borderRadius: 0,\n '--DataGrid-rowBorderColor': '#edf2f9',\n '--DataGrid-containerBackground': '#f4f6fa',\n '.MuiDataGrid-overlayWrapperInner': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n '.MuiDataGrid-row': {\n backgroundColor: 'white',\n '&:nth-of-type(even)': {\n backgroundColor: '#f9fafd',\n },\n ':hover': {\n backgroundColor: '#e9e9e9',\n },\n '&.Mui-selected': {\n backgroundColor: 'rgb(238, 249, 252)',\n '&:hover': {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n },\n },\n '.MuiDataGrid-cell': {\n fontSize: '12px',\n color: '#0b0e14',\n },\n '.MuiDataGrid-columnHeaders': {\n border: 'solid 1px #edf2f9',\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeader': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaders .MuiDataGrid-filler': {\n backgroundColor: '#f4f6fa',\n },\n '.MuiDataGrid-columnHeaderTitle': {\n fontSize: '12px',\n color: '#0b0e14',\n fontWeight: '600',\n },\n '& .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'white',\n },\n '& .MuiDataGrid-row:nth-of-type(even) .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: '#f9fafd',\n },\n '& .MuiDataGrid-row:hover .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: '#e9e9e9',\n },\n '& .MuiDataGrid-row.Mui-selected .MuiDataGrid-cell--pinnedRight': {\n backgroundColor: 'rgb(238, 249, 252)',\n },\n '& .MuiDataGrid-row.Mui-selected:hover .MuiDataGrid-cell--pinnedRight':\n {\n backgroundColor: 'rgb(222, 243, 249)',\n },\n '& .sticky-cell': {\n position: 'sticky',\n right: 0,\n zIndex: 1,\n },\n '& .sticky-header': {\n position: 'sticky',\n right: 0,\n backgroundColor: '#f4f6fa',\n zIndex: 2,\n },\n ...(sx as any),\n }}\n {...rest}\n />\n </Stack>\n )\n },\n)\n\nexport default _DataTable\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableEmptyData() {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/empty-data.svg\"\n alt=\"Imagem de notificação\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack spacing={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Nenhum registro encontrado\n </Typography>\n <Typography variant=\"body2\" whiteSpace=\"normal\">\n Tente outra pesquisa ou adicione um novo registro.\n </Typography>\n </Stack>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\n\nexport default function DataTableError({\n errorMessage,\n}: {\n errorMessage: string\n}) {\n return (\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n padding={2}\n maxWidth=\"400px\"\n minWidth=\"200px\"\n >\n <Stack\n width=\"250px\"\n height=\"250px\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"50%\"\n sx={{\n background:\n 'linear-gradient(to top, #ffffff, #fdfcfd, #fafafa, #f8f7f8, #f5f5f6);',\n }}\n >\n <img\n src=\"https://datac-site-assets.s3.sa-east-1.amazonaws.com/error.svg\"\n alt=\"Imagem de erro\"\n width=\"148px\"\n height=\"148px\"\n />\n </Stack>\n <Stack gap={1} textAlign=\"center\">\n <Typography variant=\"h4\" component=\"h2\" fontWeight=\"600\">\n Ops! Algo deu errado\n </Typography>\n\n <Typography variant=\"body2\">{errorMessage}</Typography>\n </Stack>\n </Stack>\n )\n}\n","import {\n createContext,\n ReactNode,\n RefObject,\n useContext,\n useState,\n} from 'react'\n\nimport {\n GridApiPro,\n GridRowSelectionModel,\n useGridApiRef,\n} from '@mui/x-data-grid-pro'\n\ninterface TableRootContextData {\n apiRef: RefObject<GridApiPro>\n rowsSelectedId: GridRowSelectionModel\n clearCallback: boolean\n breakpoint: boolean\n setBreakpoint: (breakpoint: boolean) => void\n setRowsSelectedId: (rowsSelectedId: GridRowSelectionModel) => void\n clearRowsSelectedId: () => void\n setClearCallback: (clearCallback: boolean) => void\n}\n\nexport const TableRootContext = createContext({} as TableRootContextData)\n\ninterface TableRootProviderProps {\n children: ReactNode\n}\n\nexport default function TableRootProvider({\n children,\n}: TableRootProviderProps) {\n const [ids, setIds] = useState<GridRowSelectionModel>({\n type: 'include',\n ids: new Set<string>(),\n })\n const [clearCallback, setClearCallback] = useState(false)\n const [breakpoint, setBreakpoint] = useState(false)\n\n const apiRef = useGridApiRef()\n\n function handleClearRowsSelectedId() {\n setIds({\n type: 'include',\n ids: new Set<string>(),\n })\n setClearCallback(true)\n }\n\n return (\n <TableRootContext.Provider\n value={{\n apiRef,\n rowsSelectedId: ids,\n clearCallback,\n breakpoint,\n setClearCallback,\n setBreakpoint,\n setRowsSelectedId: setIds,\n clearRowsSelectedId: handleClearRowsSelectedId,\n }}\n >\n {children}\n </TableRootContext.Provider>\n )\n}\n\nexport function useTableRootContext() {\n return useContext<TableRootContextData>(TableRootContext)\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\n\nexport type DataTableActionProps = {} & GridActionsCellItemProps\n\nexport default function DataTableAction(props: DataTableActionProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Trash2 } from 'lucide-react'\n\nexport type DataTableActionDeleteProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionDelete(\n props: DataTableActionDeleteProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"error\"\n label=\"Deletar\"\n icon={<Trash2 size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { Pencil } from 'lucide-react'\n\nexport type DataTableActionEditProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionEdit(props: DataTableActionEditProps) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n label=\"Editar\"\n color=\"primary\"\n icon={<Pencil size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { ReactNode, useEffect } from 'react'\nimport { Breakpoint, Stack, useMediaQuery, useTheme } from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface ActionsProps {\n breakpoints?: Breakpoint | number\n children: ReactNode\n}\n\nexport default function Actions({ children, breakpoints }: ActionsProps) {\n const { setBreakpoint } = useTableRootContext()\n\n const theme = useTheme()\n const breakpoint = useMediaQuery(theme.breakpoints.down(breakpoints || 'md'))\n\n useEffect(() => {\n setBreakpoint(breakpoint)\n }, [breakpoint])\n\n return (\n <Stack\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent={'flex-end'}\n // position=\"relative\"\n // overflow=\"hidden\"\n gap={1}\n marginLeft=\"auto\"\n flexGrow={1}\n >\n {children}\n </Stack>\n )\n}\n","import {\n GridActionsCellItem,\n GridActionsCellItemProps,\n} from '@mui/x-data-grid-pro'\nimport { ArrowBigDown } from 'lucide-react'\n\nexport type DataTableActionTransportProps = {} & Omit<\n GridActionsCellItemProps,\n 'icon' | 'label'\n>\n\nexport default function DataTableActionTransport(\n props: DataTableActionTransportProps,\n) {\n // Omit the ref property if present, or cast it to LegacyRef<HTMLElement>\n const { ref, ...rest } = props as any\n return (\n <GridActionsCellItem\n color=\"primary\"\n label=\"Transportar\"\n icon={<ArrowBigDown size={16} />}\n {...rest}\n ref={ref as React.LegacyRef<HTMLElement> | undefined}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ToolbarButton } from '@mui/x-data-grid-pro'\nimport { SquarePlus } from 'lucide-react'\n\nexport interface DataTableAddPanelTriggerProps {\n onClick?: React.MouseEventHandler<HTMLElement> | undefined\n}\n\nexport default function DataTableAddPanelTrigger({\n onClick,\n}: DataTableAddPanelTriggerProps) {\n const theme = useTheme()\n return (\n <ToolbarButton onClick={onClick}>\n <SquarePlus color={theme.palette.primary.main} size={18} />\n </ToolbarButton>\n )\n}\n","import {\n ButtonProps as MuiButtonProps,\n Button as MuiButton,\n CircularProgress,\n IconButton,\n Tooltip,\n Box,\n} from '@mui/material'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ntype ButtonProps = {\n isLoading?: boolean\n} & MuiButtonProps\n\nexport default function DataTableButton(props: ButtonProps) {\n const { isLoading, startIcon, children, title, ...rest } = props\n\n const { breakpoint } = useTableRootContext()\n\n return (\n <>\n {breakpoint ? (\n <Tooltip title={children}>\n <IconButton\n {...rest}\n color=\"primary\"\n disabled={isLoading ? true : rest.disabled}\n >\n {startIcon}\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '25%',\n bottom: '25%',\n left: '25%',\n right: '25%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n </IconButton>\n </Tooltip>\n ) : (\n <MuiButton\n startIcon={startIcon}\n disabled={isLoading ? true : rest.disabled}\n // variant=\"outlined\"\n sx={{\n position: 'relative',\n height: '26px',\n minWidth: '70px',\n padding: '7px 8px 8px',\n border: '1px solid rgba(223, 226, 231, 0.8)',\n borderRadius: '6px',\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n flexShrink: 1,\n transition: 'width 0.2s ease',\n }}\n {...rest}\n >\n <Box\n component=\"span\"\n sx={{\n transition: 'opacity 0.2s ease, width 0.2s ease',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n {isLoading && (\n <CircularProgress\n color=\"secondary\"\n size={14}\n sx={{\n position: 'absolute',\n top: '22%',\n left: '44%',\n transform: 'translate(-50%, -50%)',\n }}\n />\n )}\n\n {children}\n </Box>\n </MuiButton>\n )}\n </>\n )\n}\n","import { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ntype CellActionProps = { event?: string; onClick?: (event?: string) => void }\n// & Omit<GridActionsCellItemProps, 'onClick'>\n\n/** @deprecated */\nexport default function CellAction(props: CellActionProps) {\n const { event, onClick, ...rest } = props\n\n return (\n <GridActionsCellItem\n label=\"Ação\"\n onClick={() => {}}\n icon={<span>🔧</span>} // Placeholder icon\n // color=\"primary\"\n // onClick={(event) => {}}\n // onClick={(_: any, __: any, ___: any) => {\n // onClick?.(event)\n // }}\n />\n )\n}\n","import { Delete as DeleteIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionDeleteProps {\n onClick?: (event: 'delete') => void\n disabled?: boolean\n title?: string\n}\n\n/** @deprecated */\nexport default function CellActionDelete({\n onClick,\n ...rest\n}: CellActionDeleteProps) {\n return (\n <GridActionsCellItem\n icon={<DeleteIcon />}\n label=\"Delete\"\n color=\"primary\"\n onClick={() => {\n if (onClick) onClick('delete')\n }}\n {...rest}\n />\n )\n}\n","import { Edit as EditIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionEditProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'edit') => void\n}\n\n/** @deprecated */\nexport default function CellActionEdit({\n onClick,\n ...rest\n}: CellActionEditProps) {\n return (\n <GridActionsCellItem\n icon={<EditIcon />}\n label=\"Edit\"\n color=\"primary\"\n onClick={() => onClick && onClick('edit')}\n {...rest}\n />\n )\n}\n","import { Children, cloneElement, isValidElement, ReactNode } from 'react'\n\ninterface CellActionsProps {\n children: ReactNode\n onClick: (event: any) => void\n}\n\n/** @deprecated */\nexport default function CellActions(props: CellActionsProps) {\n const { children, onClick: onItemClick } = props\n return (\n <>\n {Children.map(children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child as React.ReactElement<any>, {\n onClick: onItemClick,\n })\n }\n })}\n </>\n )\n}\n","import { GetApp as TransportIcon } from '@mui/icons-material'\nimport { GridActionsCellItem } from '@mui/x-data-grid-pro'\n\ninterface CellActionTransportProps {\n disabled?: boolean\n title?: string\n onClick?: (event: 'transport') => void\n}\n\n/** @deprecated */\nexport default function CellActionTransport({\n onClick,\n ...rest\n}: CellActionTransportProps) {\n return (\n <GridActionsCellItem\n icon={<TransportIcon />}\n label=\"Transport\"\n color=\"primary\"\n onClick={() => onClick && onClick('transport')}\n {...rest}\n />\n )\n}\n","import { useTheme } from '@mui/material'\nimport { ColumnsPanelTrigger, ToolbarButton } from '@mui/x-data-grid-pro'\nimport { Columns3Cog } from 'lucide-react'\n\nexport default function DataTableColumnsPanelTrigger() {\n const theme = useTheme()\n return (\n <ColumnsPanelTrigger render={<ToolbarButton />}>\n <Columns3Cog color={theme.palette.primary.main} size={18} />\n </ColumnsPanelTrigger>\n )\n}\n","import { Stack, StackProps } from '@mui/material'\n\nexport default function Content(props: StackProps) {\n return (\n <Stack\n direction=\"row\"\n width={'100%'}\n flexGrow={1}\n alignItems=\"center\"\n gap={1.5}\n sx={{ background: '#f4f' }}\n {...props}\n />\n )\n}\n","import { FileDownload as FileDownloadIcon } from '@mui/icons-material'\nimport {\n GridCsvExportOptions,\n GridCsvGetRowsToExportParams,\n gridFilteredSortedRowIdsSelector,\n} from '@mui/x-data-grid-pro'\n\nimport Button from './DataTableButton'\nimport { useTableRootContext } from './DataTableRootProvider'\n\nconst getFilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridFilteredSortedRowIdsSelector(apiRef)\n\nexport default function ExportCsvButton() {\n const { apiRef } = useTableRootContext()\n\n const handleExport = (options: GridCsvExportOptions) => {\n if (apiRef?.current) {\n apiRef.current.exportDataAsCsv(options)\n }\n }\n\n return (\n <Button\n startIcon={<FileDownloadIcon />}\n onClick={() => handleExport({ getRowsToExport: getFilteredRows })}\n >\n Exportar CSV\n </Button>\n )\n}\n","import { TableFooterProps, TableFooter } from '@mui/material'\nexport default function Footer(props: TableFooterProps) {\n return (\n <TableFooter\n {...props}\n sx={{\n height: '54px',\n paddingX: '12px',\n gap: '12px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'white',\n borderBottomLeftRadius: '8px',\n borderBottomRightRadius: '8px',\n borderTop: '1px solid #edf2f9',\n }}\n />\n )\n}\n","import {\n PaginationProps as MioPaginationProps,\n pluralizar,\n} from '@data-c/hooks'\nimport {\n MenuItem,\n Pagination as MuiPagination,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport { useMemo } from 'react'\n\ninterface PaginationProps {\n pagination?: MioPaginationProps\n rowsPerPageOptions?: number[]\n onChangePage?: (currentPage: number) => void\n onChangePageSize?: (numberOfRows: number) => void\n}\n\nexport default function Pagination(props: PaginationProps) {\n const {\n onChangePageSize,\n onChangePage,\n pagination,\n rowsPerPageOptions = [15, 50, 100, 200],\n } = props\n const { page, pageSize = 15, totalRecords } = pagination || {}\n\n const pages = useMemo(() => {\n if (pagination?.lastPage) return pagination.lastPage\n\n if ((totalRecords || 0) < pageSize) return 1\n return Math.max(Math.ceil((totalRecords || 0) / pageSize))\n }, [totalRecords, pageSize])\n\n const totalRecordsLabel = useMemo(() => {\n if ((totalRecords || 0) < pageSize)\n return `Exibindo ${pluralizar(\n totalRecords || 0,\n 'registro',\n 'registros',\n true,\n )}`\n\n let registrosExibidos = pageSize\n if (page === pages) {\n const ultimaPaginaRegistros = (totalRecords || 0) % pageSize\n registrosExibidos =\n ultimaPaginaRegistros === 0 ? pageSize : ultimaPaginaRegistros\n }\n\n return `Exibindo ${pluralizar(\n registrosExibidos || 0,\n 'registro',\n 'registros',\n true,\n )} de ${totalRecords}`\n }, [pagination, pages])\n\n // const showPagination = Boolean((totalRecords || 0) > pageSize)\n const showPagination = true\n\n return (\n <Stack\n width=\"100%\"\n direction=\"row\"\n alignItems=\"center\"\n gap={2}\n marginLeft=\"auto\"\n >\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {totalRecordsLabel}\n </Typography>\n\n {showPagination && (\n <Stack direction=\"row\" alignItems=\"center\" gap={2} marginLeft=\"auto\">\n <TextField\n sx={{\n width: '78px',\n fontSize: '8pt',\n }}\n size=\"small\"\n value={pageSize || 0}\n select\n onChange={(e) => {\n if (onChangePageSize) {\n onChangePageSize(parseInt(e.target.value))\n }\n }}\n >\n {rowsPerPageOptions.map((option: number) => (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n ))}\n </TextField>\n <MuiPagination\n variant=\"outlined\"\n shape=\"rounded\"\n count={pages || 0}\n showFirstButton\n showLastButton\n onChange={(_, _page) => {\n if (onChangePage) onChangePage(_page)\n }}\n page={page || 0}\n color=\"primary\"\n />\n </Stack>\n )}\n </Stack>\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Stack, StackProps } from '@mui/material'\nimport TableRootProvider from './DataTableRootProvider'\n\nexport default function Root({ children, height, ...rest }: StackProps) {\n const tableContainerRef = useRef<HTMLDivElement>(null)\n const [tableHeight, setTableHeight] = useState<number>(500)\n\n useEffect(() => {\n const calculateHeight = () => {\n const container = tableContainerRef.current\n if (!container) return\n\n const containerTop = container.getBoundingClientRect().top\n setTableHeight(window.innerHeight - containerTop)\n }\n calculateHeight()\n window.addEventListener('resize', calculateHeight)\n return () => {\n window.removeEventListener('resize', calculateHeight)\n }\n }, [])\n\n return (\n <Stack\n ref={tableContainerRef}\n sx={{\n backgroundColor: '#f4f6fa',\n border: '1px solid #edf2f9',\n borderRadius: 2,\n height: height || `calc(${tableHeight}px - 16px)`,\n ...rest.sx,\n }}\n {...rest}\n >\n <TableRootProvider>{children}</TableRootProvider>\n </Stack>\n )\n}\n","import { Stack, Typography } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useTableRootContext } from './DataTableRootProvider'\n\ninterface SelectionCounterProps {\n countTitle?: string\n gender?: 'masculino' | 'feminino'\n}\n\nexport default function SelectionCounter(props: SelectionCounterProps) {\n const { countTitle, gender } = props\n\n const { rowsSelectedId } = useTableRootContext()\n const countQuantidade = rowsSelectedId?.ids.size || 0\n\n const flexSufixCountTitle = useMemo(() => {\n if (!countTitle) return ''\n\n const selecionadoText =\n gender === 'feminino' ? 'selecionada' : 'selecionado'\n const selecionadosText =\n gender === 'feminino' ? 'selecionadas' : 'selecionados'\n const nenhumText = gender === 'feminino' ? 'Nenhuma' : 'Nenhum'\n\n return countQuantidade === 1\n ? `${countTitle} ${selecionadoText}`\n : countQuantidade && countQuantidade > 1\n ? `${countTitle\n .split(' ')\n .map((item) => `${item}s`)\n .join(' ')} ${selecionadosText}`\n : `${nenhumText} ${countTitle} ${selecionadoText}`\n }, [countQuantidade])\n\n return (\n <Stack>\n <Typography\n variant=\"body2\"\n fontSize=\"13px\"\n fontWeight=\"500\"\n whiteSpace=\"nowrap\"\n >\n {countQuantidade && countQuantidade > 0 ? countQuantidade : ''}{' '}\n {flexSufixCountTitle}\n </Typography>\n </Stack>\n )\n}\n","import { Typography, TypographyProps, useTheme } from '@mui/material'\n\ninterface TitleProps extends TypographyProps {\n titleDivider?: boolean\n children: string\n}\n\nexport default function Title({\n children,\n titleDivider = false,\n sx,\n}: TitleProps) {\n const theme = useTheme()\n\n return (\n <Typography\n variant=\"h6\"\n whiteSpace=\"nowrap\"\n sx={{\n borderRight: titleDivider\n ? `solid 1px ${theme.palette.grey[300]}`\n : 'none',\n paddingRight: 1.5,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Paper, Stack } from '@mui/material'\nimport { Toolbar as MuiToolbar } from '@mui/x-data-grid-pro'\nimport { ReactNode } from 'react'\n\ninterface ToolbarProps {\n children?: ReactNode\n}\n\nexport default function Toolbar({ children }: ToolbarProps) {\n return (\n <MuiToolbar\n render={\n <Stack\n component={Paper}\n elevation={0}\n gap={1.5}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n p={1}\n // height={(theme) => `${theme.mixins.toolbar}px`}\n // height=\"52px\"\n borderRadius=\"8px 8px 0 0\"\n sx={{ width: '100%' }}\n >\n {children}\n </Stack>\n }\n />\n )\n}\n","import { Stack } from '@mui/material'\nimport { ReactNode } from 'react'\n\ninterface ToolbarActionsContainerProps {\n children?: ReactNode\n}\n\nexport default function ToolbarActionsContainer({\n children,\n}: ToolbarActionsContainerProps) {\n return (\n <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"flex-end\">\n {children}\n </Stack>\n )\n}\n"],"mappings":"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","names":["useGridApiRef","Stack","Stack","Typography","jsx","jsxs","jsx","jsx","jsxs","jsxs","Stack","jsx","jsx","GridActionsCellItem","jsx","GridActionsCellItem","jsx","useEffect","Stack","jsx","useEffect","Stack","GridActionsCellItem","jsx","useTheme","jsx","jsx","jsxs","GridActionsCellItem","jsx","GridActionsCellItem","jsx","GridActionsCellItem","jsx","Fragment","jsx","GridActionsCellItem","jsx","useTheme","ToolbarButton","jsx","Stack","jsx","gridFilteredSortedRowIdsSelector","jsx","gridFilteredSortedRowIdsSelector","jsx","Stack","Typography","jsx","jsxs","useEffect","useState","Stack","jsx","useState","useEffect","Stack","Stack","Typography","useMemo","jsx","jsxs","useMemo","Stack","Typography","Typography","useTheme","jsx","Stack","jsx","Stack","jsx","useGridApiRef","DataTable_default"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-c/pro",
3
- "version": "0.2.70",
3
+ "version": "0.2.72",
4
4
  "author": "Raphael <raphael@datac.com.br>",
5
5
  "homepage": "https://gitlab.com/raphaelbsr/mio#readme",
6
6
  "main": "dist/index.js",
@@ -45,5 +45,5 @@
45
45
  "resolutions": {
46
46
  "csstype": "3.1.2"
47
47
  },
48
- "gitHead": "17ae54958e538cbbe3db6906a78bb285de8c59eb"
48
+ "gitHead": "9d55f06954e49bde4f93d2b97b18ca9fbae9f060"
49
49
  }