@m4l/components 9.2.62 → 9.2.63-JT14072025.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/components/DataGrid/Datagrid.styles.js +43 -12
  2. package/components/DataGrid/formatters/ColumnBooleanFormatter/formatter.d.ts +2 -1
  3. package/components/DataGrid/formatters/ColumnBooleanFormatter/formatter.js +2 -3
  4. package/components/DataGrid/formatters/ColumnBooleanFormatter/useColumnBoolean.d.ts +1 -1
  5. package/components/DataGrid/formatters/ColumnChipStatusFormatter/formatter.d.ts +2 -1
  6. package/components/DataGrid/formatters/ColumnChipStatusFormatter/formatter.js +5 -4
  7. package/components/DataGrid/formatters/ColumnChipStatusFormatter/useColumnChipStatus.d.ts +1 -1
  8. package/components/DataGrid/formatters/ColumnConcatenatedValuesFormatter/formatter.d.ts +2 -1
  9. package/components/DataGrid/formatters/ColumnConcatenatedValuesFormatter/formatter.js +11 -4
  10. package/components/DataGrid/formatters/ColumnConcatenatedValuesFormatter/useColumnConcatenatedValues.d.ts +1 -1
  11. package/components/DataGrid/formatters/ColumnDateFormatter/formatter.d.ts +2 -1
  12. package/components/DataGrid/formatters/ColumnDateFormatter/formatter.js +13 -4
  13. package/components/DataGrid/formatters/ColumnDateFormatter/useColumnDate.d.ts +1 -1
  14. package/components/DataGrid/formatters/ColumnIconFormatter/formatter.d.ts +3 -1
  15. package/components/DataGrid/formatters/ColumnIconFormatter/formatter.js +7 -43
  16. package/components/DataGrid/formatters/ColumnIconFormatter/helpers/renderIcon.d.ts +8 -0
  17. package/components/DataGrid/formatters/ColumnIconFormatter/helpers/renderIcon.js +58 -0
  18. package/components/DataGrid/formatters/ColumnIconFormatter/helpers/renderMultipleIcons.d.ts +7 -0
  19. package/components/DataGrid/formatters/ColumnIconFormatter/helpers/renderMultipleIcons.js +19 -0
  20. package/components/DataGrid/formatters/ColumnIconFormatter/types.d.ts +10 -3
  21. package/components/DataGrid/formatters/ColumnIconFormatter/useColumnIcon.d.ts +2 -2
  22. package/components/DataGrid/formatters/ColumnInteractiveCheckFormatter/types.d.ts +2 -2
  23. package/components/DataGrid/formatters/ColumnNestedValueFormatter/formatter.d.ts +2 -1
  24. package/components/DataGrid/formatters/ColumnNestedValueFormatter/formatter.js +4 -3
  25. package/components/DataGrid/formatters/ColumnNestedValueFormatter/useColumnNestedValue.d.ts +1 -1
  26. package/components/DataGrid/formatters/ColumnPointsFormatter/formatter.d.ts +2 -1
  27. package/components/DataGrid/formatters/ColumnPointsFormatter/formatter.js +13 -5
  28. package/components/DataGrid/formatters/ColumnPointsFormatter/useColumnPoints.d.ts +1 -1
  29. package/components/DataGrid/formatters/ColumnPriceFormatter/formatter.d.ts +2 -1
  30. package/components/DataGrid/formatters/ColumnPriceFormatter/formatter.js +11 -4
  31. package/components/DataGrid/formatters/ColumnPriceFormatter/useColumnPrice.d.ts +1 -1
  32. package/components/DataGrid/formatters/ColumnSetCheckFormatter/formatter.d.ts +2 -2
  33. package/components/DataGrid/formatters/ColumnSetCheckFormatter/formatter.js +1 -1
  34. package/components/DataGrid/formatters/ColumnSetCheckFormatter/useColumnSetCheck.d.ts +1 -1
  35. package/components/DataGrid/formatters/ColumnUncertaintyFormatter/formatter.d.ts +2 -1
  36. package/components/DataGrid/formatters/ColumnUncertaintyFormatter/formatter.js +15 -6
  37. package/components/DataGrid/formatters/ColumnUncertaintyFormatter/useColumnUncertainty.d.ts +1 -1
  38. package/components/DataGrid/index.d.ts +1 -1
  39. package/components/DataGrid/slots/DataGridEnum.d.ts +3 -0
  40. package/components/DataGrid/slots/DataGridEnum.js +6 -1
  41. package/components/DataGrid/slots/DataGridSlot.d.ts +6 -0
  42. package/components/DataGrid/slots/DataGridSlot.js +24 -19
  43. package/components/DataGrid/subcomponents/ControlNavigate/ControlNavigate.js +1 -1
  44. package/components/DataGrid/subcomponents/HeaderActions/index.js +1 -1
  45. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Density/index.js +2 -1
  46. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/RowsCount/index.js +1 -1
  47. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfig/index.js +5 -6
  48. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/hooks/useModalSettings/index.js +1 -1
  49. package/components/DataGrid/subcomponents/Table/hooks/getDragHeaderRenderer.d.ts +2 -2
  50. package/components/DataGrid/subcomponents/Table/hooks/useHeaderMenuActions.d.ts +2 -2
  51. package/components/DataGrid/subcomponents/Table/hooks/useHeaderMenuActions.js +17 -7
  52. package/components/DataGrid/subcomponents/Table/hooks/useSortColumnsRows.js +9 -7
  53. package/components/DataGrid/subcomponents/Table/index.d.ts +3 -1
  54. package/components/DataGrid/subcomponents/Table/index.js +40 -10
  55. package/components/DataGrid/subcomponents/Table/subcomponents/ActionsColumn.js +1 -1
  56. package/components/DataGrid/subcomponents/Table/subcomponents/CheckboxFormatter.d.ts +2 -2
  57. package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.d.ts +2 -2
  58. package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.js +24 -10
  59. package/components/DataGrid/subcomponents/Table/subcomponents/HeaderRenderClick/HeaderRenderClick.js +2 -2
  60. package/components/DataGrid/subcomponents/Table/subcomponents/SelectColumn.js +7 -7
  61. package/components/DataGrid/subcomponents/editors/TextEditor/index.d.ts +3 -3
  62. package/components/DataGrid/subcomponents/editors/TextEditor/index.js +1 -1
  63. package/components/DataGrid/types.d.ts +8 -6
  64. package/components/NumberInput/hooks/useNumberInput/useNumberInput.js +0 -2
  65. package/components/ObjectLogs/ObjectLogs.styles.js +2 -1
  66. package/components/ObjectLogs/slots/ObjectLogsEnum.d.ts +1 -0
  67. package/components/ObjectLogs/slots/ObjectLogsEnum.js +1 -0
  68. package/components/ObjectLogs/slots/ObjectLogsSlots.d.ts +3 -0
  69. package/components/ObjectLogs/slots/ObjectLogsSlots.js +7 -2
  70. package/components/areas/contexts/AreasContext/store.js +2 -2
  71. package/components/formatters/BooleanFormatter/BooleanFormatter.js +7 -4
  72. package/components/formatters/BooleanFormatter/BooleanFormatter.styles.js +9 -1
  73. package/components/formatters/BooleanFormatter/slots/BooleanFormatterEnum.d.ts +2 -1
  74. package/components/formatters/BooleanFormatter/slots/BooleanFormatterEnum.js +1 -0
  75. package/components/formatters/BooleanFormatter/slots/BooleanFormatterSlots.d.ts +3 -0
  76. package/components/formatters/BooleanFormatter/slots/BooleanFormatterSlots.js +6 -1
  77. package/components/formatters/BooleanFormatter/types.d.ts +1 -1
  78. package/components/hook-form/RHFAutocompleteAsync/reducer/RHFAutocompleteReducer.js +0 -5
  79. package/components/mui_extended/MenuItem/MenuItem.js +2 -1
  80. package/components/mui_extended/MenuItem/types.d.ts +4 -0
  81. package/hooks/useDynamicFilterAndSort/useDynamicFilterAndSort.js +1 -1
  82. package/package.json +2 -2
  83. package/storybook/components/DataGrid/DataGrid.stories.d.ts +8 -0
  84. package/storybook/components/DataGrid/helpers/icons.d.ts +6 -0
  85. package/storybook/components/DataGrid/helpers/types.d.ts +14 -2
  86. package/storybook/components/DataGrid/helpers/useColumns.d.ts +2 -1
  87. package/storybook/components/DataGrid/helpers/useSeed.d.ts +1 -1
  88. package/helpers/getFieldValueWithRow.js +0 -10
@@ -1,4 +1,4 @@
1
- import { FormatterProps } from 'react-data-grid';
1
+ import { RenderCellProps } from 'react-data-grid';
2
2
  import { ColumnSetCheckFormatterProps } from './types';
3
3
  import { RowKey } from '../../types';
4
4
  /**
@@ -6,4 +6,4 @@ import { RowKey } from '../../types';
6
6
  * acualizando un Set/Setter por medio de un hook generico el cual es invocado con el argumento field para ,
7
7
  * sin la necesidad de entrar en edición como lo hace un editor
8
8
  */
9
- export declare function ColumnSetCheckFormatter<Row, TKey extends RowKey = RowKey>(parameters: ColumnSetCheckFormatterProps<Row, TKey>): (props: FormatterProps<Row>) => import("react/jsx-runtime").JSX.Element;
9
+ export declare function ColumnSetCheckFormatter<Row, TKey extends RowKey = RowKey>(parameters: ColumnSetCheckFormatterProps<Row, TKey>): (props: RenderCellProps<Row>) => import("react/jsx-runtime").JSX.Element;
@@ -23,7 +23,7 @@ function ColumnSetCheckFormatter(parameters) {
23
23
  {
24
24
  value: checkedRows.has(rowKeyGetter(row)) || false,
25
25
  disabled,
26
- isCellSelected: props.isCellSelected,
26
+ tabIndex: props.tabIndex,
27
27
  onChange,
28
28
  "aria-label": "Select"
29
29
  }
@@ -5,7 +5,7 @@ import { ColumnSetCheckFormatterProps } from './types';
5
5
  * Returns formatter, customFilter and customSort.
6
6
  */
7
7
  export declare const useColumnSetCheck: <TRow, TKey extends RowKey = RowKey>(props: ColumnSetCheckFormatterProps<TRow, TKey>) => {
8
- formatter: (props: import('react-data-grid').FormatterProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
+ formatter: (props: import('react-data-grid').RenderCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
9
9
  customFilter: (row: TRow, value: TKey) => boolean;
10
10
  customSort: (a: TRow, b: TRow) => 0 | 1 | -1;
11
11
  };
@@ -1,5 +1,6 @@
1
1
  import { ColumnUncertaintyFormatterProps } from './types';
2
+ import { RenderCellProps } from 'react-data-grid';
2
3
  /**
3
4
  * Formatter for column uncertainty in DataGrid
4
5
  */
5
- export declare function ColumnUncertaintyFormatter<TRow>(props: ColumnUncertaintyFormatterProps<TRow>): (obProps: any) => import("react/jsx-runtime").JSX.Element;
6
+ export declare function ColumnUncertaintyFormatter<TRow>(props: ColumnUncertaintyFormatterProps<TRow>): (formatterProps: RenderCellProps<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -1,14 +1,23 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
- import { g as getFieldValueWithRow } from "../../../../helpers/getFieldValueWithRow.js";
4
3
  import { U as UncertaintyFormatter } from "../../../formatters/UncertaintyFormatter/UncertaintyFormatter.js";
5
4
  function ColumnUncertaintyFormatter(props) {
6
5
  const { Component = React.Fragment } = props;
7
- const fieldValue = getFieldValueWithRow(props.fieldValue);
8
- const fieldSymbol = getFieldValueWithRow(props.fieldSymbol);
9
- const fieldUnit = getFieldValueWithRow(props.fieldUnit);
10
- return (obProps) => {
11
- return /* @__PURE__ */ jsx(UncertaintyFormatter, { obProps, ...props, fieldValue, fieldSymbol, fieldUnit, Component });
6
+ const fieldValue = props.fieldValue;
7
+ const fieldSymbol = props.fieldSymbol;
8
+ const fieldUnit = props.fieldUnit;
9
+ return (formatterProps) => {
10
+ return /* @__PURE__ */ jsx(
11
+ UncertaintyFormatter,
12
+ {
13
+ obProps: formatterProps.row,
14
+ ...props,
15
+ fieldValue,
16
+ fieldSymbol,
17
+ fieldUnit,
18
+ Component
19
+ }
20
+ );
12
21
  };
13
22
  }
14
23
  export {
@@ -4,7 +4,7 @@ import { ColumnUncertaintyFormatterProps } from './types';
4
4
  * the filter and the customSort of the uncertainty column.
5
5
  */
6
6
  export declare const useColumnUncertanity: <TRow>(props: ColumnUncertaintyFormatterProps<TRow>) => {
7
- formatter: (obProps: any) => import("react/jsx-runtime").JSX.Element;
7
+ formatter: (formatterProps: import('react-data-grid').RenderCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
8
  customFilter: (row: TRow, value: string) => boolean;
9
9
  customSort: (a: TRow, b: TRow) => 0 | 1 | -1;
10
10
  };
@@ -1,6 +1,6 @@
1
1
  export { DataGrid } from './DataGrid';
2
2
  export * from './formatters';
3
- export type { Column, EditorProps, FormatterProps } from 'react-data-grid';
3
+ export type { Column, RenderEditCellProps, RenderCellProps } from 'react-data-grid';
4
4
  export type { RowKey, ChangeUserColumn } from './types';
5
5
  export { getDataGridComponentsDictionary } from './dictionary';
6
6
  export { TextEditor, NumberEditor } from './subcomponents/editors/TextEditor';
@@ -41,3 +41,6 @@ export declare enum ColumnsConfigSlots {
41
41
  export declare enum ControlNavigateSlots {
42
42
  controlNavigate = "controlNavigate"
43
43
  }
44
+ export declare enum ColumnIconFormatterSlots {
45
+ columnIconFormatter = "columnIconFormatter"
46
+ }
@@ -48,6 +48,10 @@ var ControlNavigateSlots = /* @__PURE__ */ ((ControlNavigateSlots2) => {
48
48
  ControlNavigateSlots2["controlNavigate"] = "controlNavigate";
49
49
  return ControlNavigateSlots2;
50
50
  })(ControlNavigateSlots || {});
51
+ var ColumnIconFormatterSlots = /* @__PURE__ */ ((ColumnIconFormatterSlots2) => {
52
+ ColumnIconFormatterSlots2["columnIconFormatter"] = "columnIconFormatter";
53
+ return ColumnIconFormatterSlots2;
54
+ })(ColumnIconFormatterSlots || {});
51
55
  export {
52
56
  ActionsSlots as A,
53
57
  ControlNavigateSlots as C,
@@ -55,5 +59,6 @@ export {
55
59
  RowsCountSlots as R,
56
60
  TextEditorSlots as T,
57
61
  ColumnsConfigSlots as a,
58
- TableSlots as b
62
+ TableSlots as b,
63
+ ColumnIconFormatterSlots as c
59
64
  };
@@ -62,3 +62,9 @@ export declare const InputTextEditorStyled: import('@emotion/styled').StyledComp
62
62
  * ****************
63
63
  */
64
64
  export declare const ControlNavigateStyled: import('@emotion/styled').StyledComponent<any, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
65
+ /**
66
+ * ****************
67
+ * Slots ColumnIconFormatter
68
+ * ****************
69
+ */
70
+ export declare const ColumnIconFormatterStyled: import('@emotion/styled').StyledComponent<any, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
@@ -1,7 +1,7 @@
1
1
  import { styled } from "@mui/material/styles";
2
2
  import { MenuList, InputBase } from "@mui/material";
3
3
  import { D as DATAGRID_PREFIX_NAME } from "../constants.js";
4
- import { D as DataGridSlots, T as TextEditorSlots, A as ActionsSlots, b as TableSlots, C as ControlNavigateSlots, R as RowsCountSlots, a as ColumnsConfigSlots } from "./DataGridEnum.js";
4
+ import { D as DataGridSlots, T as TextEditorSlots, A as ActionsSlots, b as TableSlots, C as ControlNavigateSlots, c as ColumnIconFormatterSlots, R as RowsCountSlots, a as ColumnsConfigSlots } from "./DataGridEnum.js";
5
5
  import { d as dataGridStyles } from "../Datagrid.styles.js";
6
6
  import { I as Icon } from "../../Icon/Icon.js";
7
7
  const DataGridRootStyled = styled("div", {
@@ -120,6 +120,10 @@ const ControlNavigateStyled = styled("div", {
120
120
  name: DATAGRID_PREFIX_NAME,
121
121
  slot: ControlNavigateSlots.controlNavigate
122
122
  })(dataGridStyles.controlNavigate);
123
+ const ColumnIconFormatterStyled = styled("div", {
124
+ name: DATAGRID_PREFIX_NAME,
125
+ slot: ColumnIconFormatterSlots.columnIconFormatter
126
+ })(dataGridStyles.columnIconFormatter);
123
127
  export {
124
128
  ActionsRootStyled as A,
125
129
  ButtonHeaderActionsStyled as B,
@@ -132,22 +136,23 @@ export {
132
136
  RowsCountRootStyled as R,
133
137
  TableWrapperDataGridStyled as T,
134
138
  WrapperSkeletonStyled as W,
135
- ControlNavigateStyled as a,
136
- ActionsConfigContainerStyled as b,
137
- ContainerLeftActionsStyled as c,
138
- ContainerRightActionsStyled as d,
139
- RowsCountLabelStyled as e,
140
- RowsCountValueStyled as f,
141
- ColumnsConfigWrapperStyled as g,
142
- ColumnsConfigDataGridStyled as h,
143
- ColumnsConfigSelColumnsStyled as i,
144
- ColumnsConfigActiosStyled as j,
145
- ContentModalSettingStyled as k,
146
- TableContainerStyled as l,
147
- NameColumnStyled as m,
148
- DraggableHeaderRootStyled as n,
149
- DraggableWrapperInputBaseStyled as o,
150
- IconSearchStyled as p,
151
- HeaderRenderClickStyled as q,
152
- InputTextEditorStyled as r
139
+ ColumnIconFormatterStyled as a,
140
+ ControlNavigateStyled as b,
141
+ ActionsConfigContainerStyled as c,
142
+ ContainerLeftActionsStyled as d,
143
+ ContainerRightActionsStyled as e,
144
+ RowsCountLabelStyled as f,
145
+ RowsCountValueStyled as g,
146
+ ColumnsConfigWrapperStyled as h,
147
+ ColumnsConfigDataGridStyled as i,
148
+ ColumnsConfigSelColumnsStyled as j,
149
+ ColumnsConfigActiosStyled as k,
150
+ ContentModalSettingStyled as l,
151
+ TableContainerStyled as m,
152
+ NameColumnStyled as n,
153
+ DraggableHeaderRootStyled as o,
154
+ DraggableWrapperInputBaseStyled as p,
155
+ IconSearchStyled as q,
156
+ HeaderRenderClickStyled as r,
157
+ InputTextEditorStyled as s
153
158
  };
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useIsMobile } from "@m4l/graphics";
3
- import { a as ControlNavigateStyled } from "../../slots/DataGridSlot.js";
3
+ import { b as ControlNavigateStyled } from "../../slots/DataGridSlot.js";
4
4
  import { R as RowsCount } from "../HeaderActions/subcomponents/RowsCount/index.js";
5
5
  import { u as useComponentSize } from "../../../../hooks/useComponentSize/useComponentSize.js";
6
6
  import { P as Pager } from "../../../Pager/Pager.js";
@@ -5,7 +5,7 @@ import { D as Density } from "./subcomponents/Density/index.js";
5
5
  import { u as useDataGrid } from "../../hooks/useDataGrid.js";
6
6
  import { useIsMobile } from "@m4l/graphics";
7
7
  import { M as MobileMenuActions } from "./subcomponents/MobileMenuActions/index.js";
8
- import { A as ActionsRootStyled, b as ActionsConfigContainerStyled, c as ContainerLeftActionsStyled, d as ContainerRightActionsStyled } from "../../slots/DataGridSlot.js";
8
+ import { A as ActionsRootStyled, c as ActionsConfigContainerStyled, d as ContainerLeftActionsStyled, e as ContainerRightActionsStyled } from "../../slots/DataGridSlot.js";
9
9
  import { u as useComponentSize } from "../../../../hooks/useComponentSize/useComponentSize.js";
10
10
  function HeaderActions(props) {
11
11
  const {
@@ -42,7 +42,8 @@ function Density() {
42
42
  currentRowHeightVariant,
43
43
  setRowHeightVariant,
44
44
  host_static_assets,
45
- environment_assets
45
+ environment_assets,
46
+ getLabel
46
47
  ]);
47
48
  const theme = useTheme();
48
49
  const currenViewIcon = useMemo(() => {
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { useModuleDictionary, useModuleSkeleton } from "@m4l/core";
3
3
  import { Skeleton } from "@mui/material";
4
4
  import { u as useDataGrid } from "../../../../hooks/useDataGrid.js";
5
- import { R as RowsCountRootStyled, e as RowsCountLabelStyled, f as RowsCountValueStyled } from "../../../../slots/DataGridSlot.js";
5
+ import { R as RowsCountRootStyled, f as RowsCountLabelStyled, g as RowsCountValueStyled } from "../../../../slots/DataGridSlot.js";
6
6
  function RowsCount() {
7
7
  const { rowsCount, size } = useDataGrid();
8
8
  const { getLabel } = useModuleDictionary();
@@ -4,7 +4,7 @@ import { useModuleDictionary, useEnvironment } from "@m4l/core";
4
4
  import DataGrid from "react-data-grid";
5
5
  import { I as IconButton } from "../../../../../../../mui_extended/IconButton/IconButton.js";
6
6
  import { p as pathIcons } from "../../../../../../icons.js";
7
- import { g as ColumnsConfigWrapperStyled, h as ColumnsConfigDataGridStyled, i as ColumnsConfigSelColumnsStyled, T as TableWrapperDataGridStyled, j as ColumnsConfigActiosStyled } from "../../../../../../slots/DataGridSlot.js";
7
+ import { h as ColumnsConfigWrapperStyled, i as ColumnsConfigDataGridStyled, j as ColumnsConfigSelColumnsStyled, T as TableWrapperDataGridStyled, k as ColumnsConfigActiosStyled } from "../../../../../../slots/DataGridSlot.js";
8
8
  import { D as DICTIONARY } from "../../../../../../dictionary.js";
9
9
  import { C as ColumnInteractiveCheckFormatter } from "../../../../../../formatters/ColumnInteractiveCheckFormatter/formatter.js";
10
10
  function getRowsFromColumnsConfig(columnsConfig, columns) {
@@ -62,7 +62,7 @@ const ColumnsConfig = forwardRef((props, ref) => {
62
62
  name: getLabel(DICTIONARY.SETTINGS_COLUMN_VISIBLE),
63
63
  width: 80,
64
64
  type: "boolean",
65
- formatter: ColumnInteractiveCheckFormatter,
65
+ renderCell: ColumnInteractiveCheckFormatter,
66
66
  ...getAlignClass("center")
67
67
  },
68
68
  {
@@ -70,7 +70,7 @@ const ColumnsConfig = forwardRef((props, ref) => {
70
70
  name: getLabel(DICTIONARY.SETTINGS_COLUMNS_FROZEN),
71
71
  width: 80,
72
72
  type: "boolean",
73
- formatter: ColumnInteractiveCheckFormatter,
73
+ renderCell: ColumnInteractiveCheckFormatter,
74
74
  ...getAlignClass("center")
75
75
  }
76
76
  ],
@@ -176,7 +176,7 @@ const ColumnsConfig = forwardRef((props, ref) => {
176
176
  const onInternalRowsChange = (newRows) => {
177
177
  setRows(newRows);
178
178
  };
179
- const onRowClick = (row) => {
179
+ const onCellClick = ({ row }) => {
180
180
  if (selRows.has(row.key)) {
181
181
  return;
182
182
  }
@@ -196,9 +196,8 @@ const ColumnsConfig = forwardRef((props, ref) => {
196
196
  onRowsChange: onInternalRowsChange,
197
197
  selectedRows: selRows,
198
198
  onSelectedRowsChange: onInternalSelectedRowsChange,
199
- onRowClick,
199
+ onCellClick,
200
200
  rowKeyGetter: (row) => row.key,
201
- cellNavigationMode: "CHANGE_ROW",
202
201
  defaultColumnOptions: { resizable: true, sortable: true }
203
202
  }
204
203
  ) })
@@ -5,7 +5,7 @@ import { useRef, useCallback } from "react";
5
5
  import { u as useDataGrid } from "../../../../../hooks/useDataGrid.js";
6
6
  import { u as useModal } from "../../../../../../../hooks/useModal/index.js";
7
7
  import { C as ColumnsConfig } from "../../Settings/subcomponents/ColumnsConfig/index.js";
8
- import { k as ContentModalSettingStyled, D as DataGridRootStyled } from "../../../../../slots/DataGridSlot.js";
8
+ import { l as ContentModalSettingStyled, D as DataGridRootStyled } from "../../../../../slots/DataGridSlot.js";
9
9
  import { p as pathIcons } from "../../../../../icons.js";
10
10
  import { A as ActionsContainer } from "../../../../../../CommonActions/components/ActionsContainer/ActionsContainer.js";
11
11
  import { W as WindowBase } from "../../../../../../WindowBase/WindowBase.js";
@@ -1,9 +1,9 @@
1
1
  import { FunctionComponent } from 'react';
2
- import { HeaderRendererProps } from 'react-data-grid';
2
+ import { RenderHeaderCellProps } from 'react-data-grid';
3
3
  /**
4
4
  * Función encargada de retornar el componente de renderizado de cabecera con la capacidad de arrastrar columnas
5
5
  * @param handleColumnsReorder - Función que se ejecuta al reordenar columnas
6
6
  */
7
7
  export declare const getDragHeaderRenderer: <TRow, TSummaryRow>(handleColumnsReorder: (sourceKey: string, targetKey: string) => void, options?: {
8
8
  openPopover?: (anchorEl: HTMLElement, columnKey: string) => void;
9
- }) => FunctionComponent<HeaderRendererProps<TRow, TSummaryRow>>;
9
+ }) => FunctionComponent<RenderHeaderCellProps<TRow, TSummaryRow>>;
@@ -1,6 +1,6 @@
1
- import { Column } from 'react-data-grid';
1
+ import { Column, SortColumn } from 'react-data-grid';
2
2
  import { MenuAction } from '../subcomponents/HeaderRenderClick/types';
3
3
  /**
4
4
  * Función que retorna las acciones del menu del header de la columna
5
5
  */
6
- export declare function useHeaderMenuActions<Trow, TSummaryRow>(columnKey: string | null, finalColumns: readonly Column<Trow, TSummaryRow>[], defaultSortable: boolean): MenuAction[];
6
+ export declare function useHeaderMenuActions<Trow, TSummaryRow>(columnKey: string | null, finalColumns: readonly Column<Trow, TSummaryRow>[], defaultSortable: boolean, handleSortFromPopover?: (newSortColumns: SortColumn[]) => void): MenuAction[];
@@ -3,7 +3,7 @@ import { u as useDataGrid } from "../../../hooks/useDataGrid.js";
3
3
  import { useEnvironment, useModuleDictionary } from "@m4l/core";
4
4
  import { D as DICTIONARY } from "../../../dictionary.js";
5
5
  import { p as pathIcons } from "../../../icons.js";
6
- function useHeaderMenuActions(columnKey, finalColumns, defaultSortable) {
6
+ function useHeaderMenuActions(columnKey, finalColumns, defaultSortable, handleSortFromPopover) {
7
7
  const {
8
8
  columnsConfig,
9
9
  onChangeColumnsConfig,
@@ -14,6 +14,13 @@ function useHeaderMenuActions(columnKey, finalColumns, defaultSortable) {
14
14
  } = useDataGrid();
15
15
  const { host_static_assets, environment_assets } = useEnvironment();
16
16
  const { getLabel } = useModuleDictionary();
17
+ const executeSortChange = (newSortColumns) => {
18
+ if (handleSortFromPopover) {
19
+ handleSortFromPopover(newSortColumns);
20
+ } else {
21
+ setSortColumns(newSortColumns);
22
+ }
23
+ };
17
24
  const column = useMemo(() => {
18
25
  return finalColumns.find((c) => c.key === columnKey);
19
26
  }, [columnKey, finalColumns]);
@@ -66,8 +73,9 @@ function useHeaderMenuActions(columnKey, finalColumns, defaultSortable) {
66
73
  if (!columnKey) {
67
74
  return;
68
75
  }
69
- setSortColumns((prev) => prev.filter((s) => s.columnKey !== columnKey));
70
- }, [columnKey, setSortColumns]);
76
+ const newSortColumns = sortColumns.filter((s) => s.columnKey !== columnKey);
77
+ executeSortChange(newSortColumns);
78
+ }, [columnKey, sortColumns, executeSortChange]);
71
79
  const hasAnySortApplied = useMemo(() => {
72
80
  return Boolean(currentSort);
73
81
  }, [currentSort]);
@@ -97,7 +105,8 @@ function useHeaderMenuActions(columnKey, finalColumns, defaultSortable) {
97
105
  externalSortSettings?.onChange({
98
106
  action: "add",
99
107
  columnKey,
100
- direction
108
+ direction,
109
+ label: column.name
101
110
  });
102
111
  },
103
112
  [columnKey, column, externalSortSettings]
@@ -152,7 +161,7 @@ function useHeaderMenuActions(columnKey, finalColumns, defaultSortable) {
152
161
  if (externalSortSettings) {
153
162
  addExternalSort("asc");
154
163
  } else {
155
- setSortColumns([
164
+ executeSortChange([
156
165
  {
157
166
  columnKey,
158
167
  direction: "ASC"
@@ -174,7 +183,7 @@ function useHeaderMenuActions(columnKey, finalColumns, defaultSortable) {
174
183
  if (externalSortSettings) {
175
184
  addExternalSort("desc");
176
185
  } else {
177
- setSortColumns([
186
+ executeSortChange([
178
187
  {
179
188
  columnKey,
180
189
  direction: "DESC"
@@ -254,7 +263,8 @@ function useHeaderMenuActions(columnKey, finalColumns, defaultSortable) {
254
263
  host_static_assets,
255
264
  environment_assets,
256
265
  getLabel,
257
- isAddFilterDisabled
266
+ isAddFilterDisabled,
267
+ executeSortChange
258
268
  ]);
259
269
  }
260
270
  export {
@@ -17,7 +17,6 @@ function getComparator(columns, sortColumn) {
17
17
  return column.customSort;
18
18
  }
19
19
  switch (typeOrder) {
20
- //Si el tipo de dato de la columna es un numerico, retorna una función de ordenamiento numérica
21
20
  case "number":
22
21
  return (a, b) => {
23
22
  try {
@@ -26,7 +25,6 @@ function getComparator(columns, sortColumn) {
26
25
  return -1;
27
26
  }
28
27
  };
29
- //Por defecto retorna una función de ordenamiento de string
30
28
  default:
31
29
  return (a, b) => {
32
30
  try {
@@ -139,16 +137,20 @@ const useSortColumnsRows = (sourceColumns, sourceRows, popoverHandlers) => {
139
137
  return newColumn;
140
138
  }
141
139
  if (isSkeleton) {
142
- newColumn.headerRenderer = SkeletonFormatter;
143
- newColumn.formatter = SkeletonFormatter;
140
+ newColumn.renderHeaderCell = SkeletonFormatter;
141
+ newColumn.renderCell = SkeletonFormatter;
142
+ } else {
143
+ if (newColumn.formatter && !newColumn.renderCell) {
144
+ newColumn.renderCell = newColumn.formatter;
145
+ }
144
146
  }
145
- if (newColumn.headerRenderer) {
146
- newColumn.withinHeaderRenderer = newColumn.headerRenderer;
147
+ if (newColumn.renderHeaderCell) {
148
+ newColumn.withinHeaderRenderer = newColumn.renderHeaderCell;
147
149
  }
148
150
  if ((newColumn?.withFilter === void 0 || newColumn.withFilter === true) && activeFilters) {
149
151
  newColumn.headerCellClass = `${newColumn.headerCellClass} ${filterColumnClassName}`.trim();
150
152
  }
151
- newColumn.headerRenderer = DragAndDropHeaderRenderer;
153
+ newColumn.renderHeaderCell = DragAndDropHeaderRenderer;
152
154
  return newColumn;
153
155
  });
154
156
  }, [
@@ -1,5 +1,7 @@
1
+ import { DataGridProps } from 'react-data-grid';
1
2
  import { GridProps, RowKey } from '../../types';
2
3
  /**
3
4
  * Componente que renderiza la tabla con las filas y columnas
5
+ * Acepta todos los props de DataGrid y prioriza las configuraciones personalizadas
4
6
  */
5
- export declare function Table<TRow, TSummaryRow, TKey extends RowKey = RowKey>(props: GridProps<TRow, TSummaryRow, TKey>): import("react/jsx-runtime").JSX.Element;
7
+ export declare function Table<TRow, TSummaryRow, TKey extends RowKey = RowKey>(props: GridProps<TRow, TSummaryRow, TKey> & Omit<DataGridProps<TRow, TSummaryRow>, keyof GridProps<TRow, TSummaryRow, TKey>>): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useMemo, useState, useRef, useEffect } from "react";
3
3
  import DataGrid from "react-data-grid";
4
+ import "react-data-grid/lib/styles.css";
4
5
  import { DndProvider } from "react-dnd";
5
6
  import { HTML5Backend } from "react-dnd-html5-backend";
6
7
  import { C as CheckboxFormatter } from "./subcomponents/CheckboxFormatter.js";
@@ -8,7 +9,7 @@ import { a as filterHeight } from "./subcomponents/SelectColumn.js";
8
9
  import { u as useSortColumnsRows } from "./hooks/useSortColumnsRows.js";
9
10
  import { u as useFilters } from "../../hooks/useFilters.js";
10
11
  import { u as useDataGrid } from "../../hooks/useDataGrid.js";
11
- import { l as TableContainerStyled, T as TableWrapperDataGridStyled } from "../../slots/DataGridSlot.js";
12
+ import { m as TableContainerStyled, T as TableWrapperDataGridStyled } from "../../slots/DataGridSlot.js";
12
13
  import { u as useHeaderMenuActions } from "./hooks/useHeaderMenuActions.js";
13
14
  import { H as HeaderRenderClick } from "./subcomponents/HeaderRenderClick/HeaderRenderClick.js";
14
15
  function Table(props) {
@@ -18,8 +19,19 @@ function Table(props) {
18
19
  onRowsChange,
19
20
  rowKeyGetter,
20
21
  selectedRows,
21
- onSelectedRowsChange
22
+ onSelectedRowsChange,
23
+ defaultColumnOptions: defaultColumnOptionsProp,
24
+ ...restProps
22
25
  } = props;
26
+ const renderCheckbox = (formatterProps) => {
27
+ return /* @__PURE__ */ jsx(
28
+ CheckboxFormatter,
29
+ {
30
+ ...formatterProps,
31
+ tabIndex: formatterProps.tabIndex
32
+ }
33
+ );
34
+ };
23
35
  const { finalColumns, finalRows } = useSortColumnsRows(
24
36
  columns,
25
37
  rows,
@@ -55,7 +67,18 @@ function Table(props) {
55
67
  anchorEl: null,
56
68
  columnKey: null
57
69
  });
58
- const onRowClick = (row) => {
70
+ const [allowSortChange, setAllowSortChange] = useState(false);
71
+ const handleSortColumnsChange = (newSortColumns) => {
72
+ if (allowSortChange) {
73
+ setSortColumns(newSortColumns);
74
+ setAllowSortChange(false);
75
+ }
76
+ };
77
+ const handleSortFromPopover = (newSortColumns) => {
78
+ setAllowSortChange(true);
79
+ setSortColumns(newSortColumns);
80
+ };
81
+ const onCellClick = ({ row }) => {
59
82
  if (selectedRows && onSelectedRowsChange) {
60
83
  if (selectedRows.entries().next().value) {
61
84
  if (selectedRows.entries().next().value?.[1] === rowKeyGetter(row)) {
@@ -90,11 +113,16 @@ function Table(props) {
90
113
  const onColumnResize = (idx, width) => {
91
114
  onChangeColumnWidth(finalColumns[idx].key, width);
92
115
  };
93
- const defaultColumnOptions = { resizable: true, sortable: true };
116
+ const defaultColumnOptions = {
117
+ resizable: true,
118
+ sortable: true,
119
+ ...defaultColumnOptionsProp || {}
120
+ };
94
121
  const menuActions = useHeaderMenuActions(
95
122
  popoverState.columnKey,
96
123
  finalColumns,
97
- defaultColumnOptions.sortable
124
+ Boolean(defaultColumnOptions.sortable),
125
+ handleSortFromPopover
98
126
  );
99
127
  return /* @__PURE__ */ jsx(TableContainerStyled, { id: "WrapperTable", children: /* @__PURE__ */ jsxs(TableWrapperDataGridStyled, { ownerState: { size }, children: [
100
128
  /* @__PURE__ */ jsx(DndProvider, { backend: HTML5Backend, context: window, children: /* @__PURE__ */ jsx(
@@ -105,18 +133,20 @@ function Table(props) {
105
133
  headerRowHeight: activeFilters ? currentRowHeaderHeight + filterHeight : currentRowHeaderHeight,
106
134
  columns: finalColumns,
107
135
  sortColumns,
108
- onSortColumnsChange: setSortColumns,
136
+ onSortColumnsChange: handleSortColumnsChange,
109
137
  onColumnResize,
110
138
  rows: finalRows,
111
139
  onRowsChange,
112
140
  selectedRows,
113
141
  onSelectedRowsChange,
114
- onRowClick,
142
+ onCellClick,
115
143
  rowHeight: currentRowHeight,
116
144
  rowKeyGetter,
117
- cellNavigationMode: "LOOP_OVER_ROW",
118
- components: { checkboxFormatter: CheckboxFormatter },
119
- defaultColumnOptions
145
+ renderers: {
146
+ renderCheckbox
147
+ },
148
+ defaultColumnOptions,
149
+ ...restProps
120
150
  }
121
151
  ) }),
122
152
  popoverState.columnKey && popoverState.anchorEl instanceof HTMLDivElement && /* @__PURE__ */ jsx(
@@ -35,7 +35,7 @@ const ActionsColumn = {
35
35
  sortable: false,
36
36
  frozen: true,
37
37
  type: "custom",
38
- formatter: ActionsFormatter
38
+ renderCell: ActionsFormatter
39
39
  };
40
40
  function getActionLabel() {
41
41
  return "";
@@ -1,2 +1,2 @@
1
- import { CheckboxFormatterProps } from 'react-data-grid';
2
- export declare const CheckboxFormatter: import('react').ForwardRefExoticComponent<CheckboxFormatterProps & import('react').RefAttributes<HTMLInputElement>>;
1
+ import { RenderCheckboxProps } from 'react-data-grid';
2
+ export declare const CheckboxFormatter: import('react').ForwardRefExoticComponent<RenderCheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -1,5 +1,5 @@
1
- import { HeaderRendererProps } from 'react-data-grid';
2
- interface DraggableHeaderRendererProps<TRow> extends HeaderRendererProps<TRow> {
1
+ import { RenderHeaderCellProps } from 'react-data-grid';
2
+ interface DraggableHeaderRendererProps<TRow> extends RenderHeaderCellProps<TRow> {
3
3
  onColumnsReorder: (sourceKey: string, targetKey: string) => void;
4
4
  openPopover?: (anchorEl: HTMLElement, columnKey: string) => void;
5
5
  }
@@ -2,10 +2,10 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from "react";
3
3
  import { useModuleDictionary, useEnvironment } from "@m4l/core";
4
4
  import { useDrag, useDrop } from "react-dnd";
5
- import { HeaderRenderer } from "react-data-grid";
5
+ import { renderHeaderCell } from "react-data-grid";
6
6
  import { u as useFocusRef } from "../hooks/useFocusRef.js";
7
7
  import { u as useFilters } from "../../../hooks/useFilters.js";
8
- import { N as NameColumnIconStyled, m as NameColumnStyled, I as IconColumnStyled, n as DraggableHeaderRootStyled, B as ButtonHeaderActionsStyled, o as DraggableWrapperInputBaseStyled, p as IconSearchStyled, H as HeaderInputBaseStyled } from "../../../slots/DataGridSlot.js";
8
+ import { N as NameColumnIconStyled, n as NameColumnStyled, I as IconColumnStyled, o as DraggableHeaderRootStyled, B as ButtonHeaderActionsStyled, p as DraggableWrapperInputBaseStyled, q as IconSearchStyled, H as HeaderInputBaseStyled } from "../../../slots/DataGridSlot.js";
9
9
  import { p as pathIcons } from "../../../icons.js";
10
10
  import { u as useDataGrid } from "../../../hooks/useDataGrid.js";
11
11
  import { I as Icon } from "../../../../Icon/Icon.js";
@@ -13,12 +13,13 @@ function DraggableHeaderRenderer(props) {
13
13
  const {
14
14
  onColumnsReorder,
15
15
  column,
16
- isCellSelected,
16
+ tabIndex: headerTabIndex,
17
17
  openPopover,
18
- onSort,
19
18
  ...others
20
19
  } = props;
21
- const { ref, tabIndex } = useFocusRef(isCellSelected);
20
+ const { ref, tabIndex } = useFocusRef(
21
+ headerTabIndex !== void 0 && headerTabIndex >= 0
22
+ );
22
23
  const { getLabel } = useModuleDictionary();
23
24
  const { size, classes, externalSortSettings, externalFilterSettings } = useDataGrid();
24
25
  const { host_static_assets, environment_assets } = useEnvironment();
@@ -103,7 +104,19 @@ function DraggableHeaderRenderer(props) {
103
104
  if (!newColumn.withinHeaderRenderer) {
104
105
  const columnIcons = getColumnIcons();
105
106
  if (columnIcons) {
106
- newColumn.name = /* @__PURE__ */ jsxs(NameColumnIconStyled, { children: [
107
+ const getJustifyContent = () => {
108
+ switch (column.align) {
109
+ case "left":
110
+ return "flex-start";
111
+ case "center":
112
+ return "center";
113
+ case "right":
114
+ return "flex-end";
115
+ default:
116
+ return "flex-start";
117
+ }
118
+ };
119
+ newColumn.name = /* @__PURE__ */ jsxs(NameColumnIconStyled, { style: { justifyContent: getJustifyContent() }, children: [
107
120
  /* @__PURE__ */ jsx(NameColumnStyled, { children: newColumn.name }),
108
121
  /* @__PURE__ */ jsx(IconColumnStyled, { children: columnIcons })
109
122
  ] });
@@ -121,6 +134,9 @@ function DraggableHeaderRenderer(props) {
121
134
  opacity: isDragging ? 0.5 : 1,
122
135
  backgroundColor: isOver ? "#ececec" : void 0
123
136
  },
137
+ onClick: (e) => {
138
+ e.stopPropagation();
139
+ },
124
140
  children: [
125
141
  /* @__PURE__ */ jsx(
126
142
  ButtonHeaderActionsStyled,
@@ -131,12 +147,10 @@ function DraggableHeaderRenderer(props) {
131
147
  openPopover?.(e.currentTarget, column.key);
132
148
  },
133
149
  children: /* @__PURE__ */ jsx(
134
- HeaderRenderer,
150
+ renderHeaderCell,
135
151
  {
136
152
  column: newColumn,
137
- isCellSelected,
138
- onSort: () => {
139
- },
153
+ tabIndex: headerTabIndex,
140
154
  ...others
141
155
  }
142
156
  )