@m4l/components 9.4.6-BE20260109-beta.2 → 9.4.6-BE20260120

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 (230) hide show
  1. package/@types/types.d.ts +17 -18
  2. package/components/AccountPopover/slots/AccountPopoverSlots.d.ts +3 -3
  3. package/components/ActionsGroup/slots/ActionsGroupSlots.d.ts +1 -1
  4. package/components/CheckableList/CheckableList.js +46 -23
  5. package/components/CheckableList/CheckableList.test.d.ts +1 -0
  6. package/components/CheckableList/dictionary.d.ts +1 -0
  7. package/components/CheckableList/hooks/useCheckableListHandlers.test.d.ts +1 -0
  8. package/components/CheckableList/hooks/useCheckableListItems.js +8 -6
  9. package/components/CheckableList/hooks/useCheckableListItems.test.d.ts +1 -0
  10. package/components/CheckableList/hooks/useCheckableListRender.js +44 -29
  11. package/components/CheckableList/hooks/useCheckableListRender.test.d.ts +1 -0
  12. package/components/CheckableList/hooks/useCheckableListSelection.test.d.ts +1 -0
  13. package/components/CheckableList/hooks/useCheckableListState.test.d.ts +1 -0
  14. package/components/CheckableList/hooks/useCheckableListVirtualization.test.d.ts +1 -0
  15. package/components/CheckableList/slots/styled.d.ts +4 -4
  16. package/components/Chip/slots/ChipSlots.d.ts +1 -1
  17. package/components/CommonActions/components/ActionFormSubmitProgrammatic/ActionFormSubmitProgrammatic.d.ts +34 -0
  18. package/components/CommonActions/components/ActionFormSubmitProgrammatic/ActionFormSubmitProgrammatic.js +46 -0
  19. package/components/CommonActions/components/ActionFormSubmitProgrammatic/ActionFormSubmitProgrammatic.styles.d.ts +2 -0
  20. package/components/CommonActions/components/ActionFormSubmitProgrammatic/ActionFormSubmitProgrammatic.styles.js +7 -0
  21. package/components/CommonActions/components/ActionFormSubmitProgrammatic/constanst.d.ts +6 -0
  22. package/components/CommonActions/components/ActionFormSubmitProgrammatic/constanst.js +7 -0
  23. package/components/CommonActions/components/ActionFormSubmitProgrammatic/index.d.ts +2 -0
  24. package/components/CommonActions/components/ActionFormSubmitProgrammatic/slots/ActionFormSubmitProgrammaticEnum.d.ts +3 -0
  25. package/components/CommonActions/components/ActionFormSubmitProgrammatic/slots/ActionFormSubmitProgrammaticEnum.js +7 -0
  26. package/components/CommonActions/components/ActionFormSubmitProgrammatic/slots/ActionFormSubmitProgrammaticSlots.d.ts +1 -0
  27. package/components/CommonActions/components/ActionFormSubmitProgrammatic/slots/ActionFormSubmitProgrammaticSlots.js +12 -0
  28. package/components/CommonActions/components/ActionFormSubmitProgrammatic/slots/index.d.ts +2 -0
  29. package/components/CommonActions/components/ActionFormSubmitProgrammatic/slots/index.js +1 -0
  30. package/components/CommonActions/components/ActionFormSubmitProgrammatic/types.d.ts +36 -0
  31. package/components/CommonActions/index.d.ts +1 -0
  32. package/components/DynamicFilter/subcomponents/PopoverFilter/PopoverFilter.js +7 -27
  33. package/components/DynamicFilter/subcomponents/PopoverMenuFields/PopoverMenuFields.js +3 -5
  34. package/components/DynamicSort/subcomponents/PopoverMenuFields/PopoverMenuFields.js +3 -5
  35. package/components/DynamicSort/subcomponents/PopoverSort/PopoverSort.js +7 -31
  36. package/components/EditLabel/slots/EditLabelSlots.d.ts +1 -1
  37. package/components/HelperError/slots/HelperErrorSlots.d.ts +1 -1
  38. package/components/ImageText/slots/ImageTextSlots.d.ts +2 -2
  39. package/components/Label/slots/LabelSlots.d.ts +2 -2
  40. package/components/LoadingError/slots/LoadingErrorSlots.d.ts +1 -1
  41. package/components/MFIsolationApp/slots/MFIsolationAppSlots.d.ts +2 -2
  42. package/components/ObjectLogs/slots/ObjectLogsSlots.d.ts +1 -1
  43. package/components/Pager/slots/PagerSlots.d.ts +3 -3
  44. package/components/PaperForm/slots/PaperFormSlots.d.ts +1 -1
  45. package/components/SettingsLayout/SettingsLayout.js +4 -3
  46. package/components/SettingsLayout/constants.d.ts +1 -0
  47. package/components/SettingsLayout/constants.js +5 -3
  48. package/components/SettingsLayout/slots/SettingsLayoutSlots.d.ts +1 -1
  49. package/components/SettingsLayout/slots/SettingsLayoutSlots.js +1 -1
  50. package/components/SettingsLayout/subcomponents/SettingsLayoutBase/SettingsLayoutBase.js +1 -1
  51. package/components/SettingsLayout/types.d.ts +4 -0
  52. package/components/SideBar/subcomponents/ContentComponent/style.js +15 -2
  53. package/components/Stepper/slots/StepperSlot.d.ts +4 -4
  54. package/components/TabsNavigator/slots/TabsNavigatorSlots.d.ts +2 -2
  55. package/components/ToastContainer/slots/toastContainerSlots.d.ts +2 -2
  56. package/components/WindowBase/slots/WindowBaseSlots.d.ts +2 -2
  57. package/components/areas/components/AreasAdmin/slots/AreasAdminSlots.d.ts +1 -1
  58. package/components/areas/contexts/AreasContext/store.js +1 -1
  59. package/components/datagrids/Datagrid.styles.js +24 -0
  60. package/components/datagrids/components/BaseDataGrid/BaseDataGrid.d.ts +12 -0
  61. package/components/datagrids/components/BaseDataGrid/BaseDataGrid.js +131 -0
  62. package/components/datagrids/components/BaseDataGrid/index.d.ts +1 -0
  63. package/components/datagrids/components/BaseDataGrid/index.js +1 -0
  64. package/components/datagrids/components/DataGridMain/DataGridMain.js +22 -134
  65. package/components/datagrids/components/TreeDataGrid/TreeDataGrid.d.ts +22 -0
  66. package/components/datagrids/components/TreeDataGrid/TreeDataGrid.js +50 -0
  67. package/components/datagrids/components/TreeDataGrid/TreeDataGrid.test.d.ts +1 -0
  68. package/components/datagrids/components/TreeDataGrid/index.d.ts +1 -0
  69. package/components/datagrids/components/TreeDataGrid/index.js +1 -0
  70. package/components/datagrids/constants.js +3 -5
  71. package/components/datagrids/contexts/DataGridContext/DataGridContext.js +8 -4
  72. package/components/datagrids/contexts/DataGridContext/types.d.ts +19 -3
  73. package/components/datagrids/dictionary.d.ts +3 -0
  74. package/components/datagrids/dictionary.js +4 -0
  75. package/components/datagrids/formatters/ColumnBooleanFormatter/ColumnBooleanGroupFormatter.d.ts +15 -0
  76. package/components/datagrids/formatters/ColumnBooleanFormatter/ColumnBooleanGroupFormatter.js +32 -0
  77. package/components/datagrids/formatters/ColumnBooleanFormatter/index.d.ts +1 -0
  78. package/components/datagrids/formatters/ColumnBooleanFormatter/useColumnBoolean.d.ts +1 -0
  79. package/components/datagrids/formatters/ColumnBooleanFormatter/useColumnBoolean.js +2 -0
  80. package/components/datagrids/formatters/ColumnChipStatusFormatter/ColumnChipStatusGroupFormatter.d.ts +16 -0
  81. package/components/datagrids/formatters/ColumnChipStatusFormatter/ColumnChipStatusGroupFormatter.js +37 -0
  82. package/components/datagrids/formatters/ColumnChipStatusFormatter/index.d.ts +1 -0
  83. package/components/datagrids/formatters/ColumnChipStatusFormatter/useColumnChipStatus.d.ts +1 -0
  84. package/components/datagrids/formatters/ColumnChipStatusFormatter/useColumnChipStatus.js +2 -0
  85. package/components/datagrids/formatters/ColumnColorFormatter/ColumnColorGroupFormatter.d.ts +14 -0
  86. package/components/datagrids/formatters/ColumnColorFormatter/ColumnColorGroupFormatter.js +24 -0
  87. package/components/datagrids/formatters/ColumnColorFormatter/index.d.ts +1 -0
  88. package/components/datagrids/formatters/ColumnColorFormatter/useColumnColor.d.ts +1 -0
  89. package/components/datagrids/formatters/ColumnColorFormatter/useColumnColor.js +3 -1
  90. package/components/datagrids/formatters/ColumnConcatenatedValuesFormatter/ColumnConcatenatedValuesGroupFormatter.d.ts +15 -0
  91. package/components/datagrids/formatters/ColumnConcatenatedValuesFormatter/ColumnConcatenatedValuesGroupFormatter.js +35 -0
  92. package/components/datagrids/formatters/ColumnConcatenatedValuesFormatter/index.d.ts +1 -0
  93. package/components/datagrids/formatters/ColumnConcatenatedValuesFormatter/useColumnConcatenatedValues.d.ts +1 -0
  94. package/components/datagrids/formatters/ColumnConcatenatedValuesFormatter/useColumnConcatenatedValues.js +2 -0
  95. package/components/datagrids/formatters/ColumnDateFormatter/ColumnDateGroupFormatter.d.ts +9 -0
  96. package/components/datagrids/formatters/ColumnDateFormatter/ColumnDateGroupFormatter.js +35 -0
  97. package/components/datagrids/formatters/ColumnDateFormatter/index.d.ts +1 -0
  98. package/components/datagrids/formatters/ColumnDateFormatter/useColumnDate.d.ts +1 -0
  99. package/components/datagrids/formatters/ColumnDateFormatter/useColumnDate.js +2 -0
  100. package/components/datagrids/formatters/ColumnIconFormatter/ColumnIconGroupFormatter.d.ts +13 -0
  101. package/components/datagrids/formatters/ColumnIconFormatter/ColumnIconGroupFormatter.js +17 -0
  102. package/components/datagrids/formatters/ColumnIconFormatter/index.d.ts +1 -0
  103. package/components/datagrids/formatters/ColumnIconFormatter/useColumnIcon.d.ts +1 -0
  104. package/components/datagrids/formatters/ColumnIconFormatter/useColumnIcon.js +3 -1
  105. package/components/datagrids/formatters/ColumnImageFormatter/ColumnImageGroupFormatter.d.ts +15 -0
  106. package/components/datagrids/formatters/ColumnImageFormatter/ColumnImageGroupFormatter.js +33 -0
  107. package/components/datagrids/formatters/ColumnImageFormatter/index.d.ts +1 -0
  108. package/components/datagrids/formatters/ColumnImageFormatter/useColumnImage.d.ts +1 -0
  109. package/components/datagrids/formatters/ColumnImageFormatter/useColumnImage.js +3 -1
  110. package/components/datagrids/formatters/ColumnInteractiveCheckFormatter/formatter.d.ts +12 -1
  111. package/components/datagrids/formatters/ColumnInteractiveCheckFormatter/formatter.js +6 -0
  112. package/components/datagrids/formatters/ColumnNestedValueFormatter/ColumnNestedValueGroupFormatter.d.ts +14 -0
  113. package/components/datagrids/formatters/ColumnNestedValueFormatter/ColumnNestedValueGroupFormatter.js +22 -0
  114. package/components/datagrids/formatters/ColumnNestedValueFormatter/formatter.d.ts +33 -1
  115. package/components/datagrids/formatters/ColumnNestedValueFormatter/formatter.js +3 -2
  116. package/components/datagrids/formatters/ColumnNestedValueFormatter/index.d.ts +1 -0
  117. package/components/datagrids/formatters/ColumnNestedValueFormatter/types.d.ts +19 -1
  118. package/components/datagrids/formatters/ColumnNestedValueFormatter/useColumnNestedValue.d.ts +35 -2
  119. package/components/datagrids/formatters/ColumnNestedValueFormatter/useColumnNestedValue.js +24 -8
  120. package/components/datagrids/formatters/ColumnPointsFormatter/ColumnPointsGroupFormatter.d.ts +15 -0
  121. package/components/datagrids/formatters/ColumnPointsFormatter/ColumnPointsGroupFormatter.js +28 -0
  122. package/components/datagrids/formatters/ColumnPointsFormatter/index.d.ts +1 -0
  123. package/components/datagrids/formatters/ColumnPointsFormatter/useColumnPoints.d.ts +1 -0
  124. package/components/datagrids/formatters/ColumnPointsFormatter/useColumnPoints.js +2 -0
  125. package/components/datagrids/formatters/ColumnPriceFormatter/ColumnPriceGroupFormatter.d.ts +14 -0
  126. package/components/datagrids/formatters/ColumnPriceFormatter/ColumnPriceGroupFormatter.js +26 -0
  127. package/components/datagrids/formatters/ColumnPriceFormatter/index.d.ts +1 -0
  128. package/components/datagrids/formatters/ColumnPriceFormatter/useColumnPrice.d.ts +1 -0
  129. package/components/datagrids/formatters/ColumnPriceFormatter/useColumnPrice.js +2 -0
  130. package/components/datagrids/formatters/ColumnTagsFormatter/ColumnTagsGroupFormatter.d.ts +13 -0
  131. package/components/datagrids/formatters/ColumnTagsFormatter/ColumnTagsGroupFormatter.js +21 -0
  132. package/components/datagrids/formatters/ColumnTagsFormatter/index.d.ts +1 -0
  133. package/components/datagrids/formatters/ColumnTagsFormatter/useColumnTags.d.ts +1 -0
  134. package/components/datagrids/formatters/ColumnTagsFormatter/useColumnTags.js +2 -0
  135. package/components/datagrids/formatters/ColumnUncertaintyFormatter/ColumnUncertaintyGroupFormatter.d.ts +15 -0
  136. package/components/datagrids/formatters/ColumnUncertaintyFormatter/ColumnUncertaintyGroupFormatter.js +27 -0
  137. package/components/datagrids/formatters/ColumnUncertaintyFormatter/index.d.ts +1 -0
  138. package/components/datagrids/formatters/ColumnUncertaintyFormatter/useColumnUncertainty.d.ts +1 -0
  139. package/components/datagrids/formatters/ColumnUncertaintyFormatter/useColumnUncertainty.js +2 -0
  140. package/components/datagrids/helpers/shared/getInitialColumnsConfig/getInitialColumnsConfig.js +8 -0
  141. package/components/datagrids/helpers/shared/getViewSpecificConfig/getViewSpecificConfig.js +10 -3
  142. package/components/datagrids/hooks/useChangeColumnsOrder/useChangeColumnsOrder.d.ts +1 -0
  143. package/components/datagrids/hooks/useChangeColumnsOrder/useChangeColumnsOrder.js +12 -4
  144. package/components/datagrids/icons.d.ts +5 -0
  145. package/components/datagrids/icons.js +5 -1
  146. package/components/datagrids/index.d.ts +2 -1
  147. package/components/datagrids/slots/DataGridEnum.d.ts +3 -1
  148. package/components/datagrids/slots/DataGridEnum.js +2 -0
  149. package/components/datagrids/slots/DataGridSlot.d.ts +2 -0
  150. package/components/datagrids/slots/DataGridSlot.js +12 -2
  151. package/components/datagrids/tests/helpers/types.d.ts +10 -0
  152. package/components/datagrids/types.d.ts +52 -0
  153. package/components/datagrids/views/CardsView/hooks/useProcessedColumns/useProcessedColumns.d.ts +2 -0
  154. package/components/datagrids/views/CardsView/hooks/useProcessedColumns/useProcessedColumns.js +3 -2
  155. package/components/datagrids/views/TableView/TableView.d.ts +4 -4
  156. package/components/datagrids/views/TableView/TableView.js +41 -3
  157. package/components/datagrids/views/TableView/helpers/defaultRowGrouper/defaultRowGrouper.d.ts +28 -0
  158. package/components/datagrids/views/TableView/helpers/defaultRowGrouper/defaultRowGrouper.js +15 -0
  159. package/components/datagrids/views/TableView/helpers/defaultRowGrouper/defaultRowGrouper.test.d.ts +1 -0
  160. package/components/datagrids/views/TableView/helpers/defaultRowGrouper/index.d.ts +1 -0
  161. package/components/datagrids/views/TableView/helpers/defaultRowGrouper/index.js +1 -0
  162. package/components/datagrids/views/TableView/helpers/getGroupBy/getGroupBy.d.ts +20 -0
  163. package/components/datagrids/views/TableView/helpers/getGroupBy/getGroupBy.js +13 -0
  164. package/components/datagrids/views/TableView/helpers/getGroupBy/getGroupBy.test.d.ts +1 -0
  165. package/components/datagrids/views/TableView/helpers/getGroupBy/index.d.ts +1 -0
  166. package/components/datagrids/views/TableView/helpers/getGroupBy/index.js +1 -0
  167. package/components/datagrids/views/TableView/helpers/index.d.ts +2 -0
  168. package/components/datagrids/views/TableView/hooks/useHeaderMenuActions/useHeaderMenuActions.js +62 -1
  169. package/components/datagrids/views/TableView/hooks/useSortColumnsRows/useSortColumnsRows.js +39 -11
  170. package/components/datagrids/views/TableView/subcomponents/ActionsColumn/ActionsColumn.js +1 -1
  171. package/components/datagrids/views/TableView/subcomponents/HeaderRenderClick/HeaderRenderClick.js +1 -1
  172. package/components/datagrids/views/TableView/subcomponents/RadioSelectColumn/RadioSelectColumn.js +2 -2
  173. package/components/datagrids/views/TableView/subcomponents/RenderGroupCell/RenderGroupCell.d.ts +10 -0
  174. package/components/datagrids/views/TableView/subcomponents/RenderGroupCell/RenderGroupCell.js +35 -0
  175. package/components/datagrids/views/TableView/subcomponents/RenderGroupCell/RenderGroupCell.test.d.ts +1 -0
  176. package/components/datagrids/views/TableView/subcomponents/RenderGroupCell/index.d.ts +2 -0
  177. package/components/datagrids/views/TableView/subcomponents/RenderGroupCell/index.js +1 -0
  178. package/components/datagrids/views/TableView/subcomponents/RenderGroupCell/types.d.ts +12 -0
  179. package/components/datagrids/views/TableView/subcomponents/SelectColumn/SelectColumn.js +46 -14
  180. package/components/datagrids/views/TableView/subcomponents/Settings/hooks/useModalSettings/useModalSettings.js +13 -2
  181. package/components/datagrids/views/TableView/subcomponents/Settings/subcomponents/ColumnsConfig/ColumnsConfig.js +47 -13
  182. package/components/datagrids/views/TableView/subcomponents/Settings/subcomponents/ColumnsConfig/types.d.ts +22 -0
  183. package/components/datagrids/views/adapters/CheckboxCellAdapter/CheckboxCellAdapter.js +1 -1
  184. package/components/formatters/BooleanFormatter/slots/BooleanFormatterSlots.d.ts +1 -1
  185. package/components/formatters/ConcatenatedFormatter/slots/ConcatenatedFormatterSlots.d.ts +1 -1
  186. package/components/formatters/DateFormatter/slots/DateFormatterSlots.d.ts +1 -1
  187. package/components/formatters/DistanceToNowFormatter/slots/DistanceToNowFormatterSlots.d.ts +1 -1
  188. package/components/formatters/ImageFormatter/slots/ImageFormatterSlots.d.ts +1 -1
  189. package/components/formatters/PeriodFormatter/slots/PeriodFormatterSlots.d.ts +1 -1
  190. package/components/formatters/PointsFormatter/slots/ointsFormatterSlots.d.ts +1 -1
  191. package/components/formatters/PriceFormatter/slots/PriceFormatterSlots.d.ts +1 -1
  192. package/components/formatters/UncertaintyFormatter/slots/UncertaintyFormatterSlots.d.ts +1 -1
  193. package/components/hook-form/RHFUpload/RHFUploadImage/slots/RHFUploadImageSlots.d.ts +1 -1
  194. package/components/hook-form/RHFUpload/RHFUploadSingleFile/slots/RHFUploadSingleFileSlots.d.ts +5 -5
  195. package/components/mui_extended/Accordion/slots/AccordionSlots.d.ts +1 -1
  196. package/components/mui_extended/Autocomplete/Autocomplete.js +7 -3
  197. package/components/mui_extended/Autocomplete/Autocomplete.styles.js +76 -45
  198. package/components/mui_extended/Autocomplete/constants.d.ts +23 -0
  199. package/components/mui_extended/Autocomplete/constants.js +9 -1
  200. package/components/mui_extended/Autocomplete/hooks/useAutocomplete/useAutocomplete.js +9 -4
  201. package/components/mui_extended/Autocomplete/hooks/useEndAdornments.d.ts +5 -1
  202. package/components/mui_extended/Autocomplete/hooks/useEndAdornments.js +42 -10
  203. package/components/mui_extended/Autocomplete/hooks/useMultipleChips.js +25 -6
  204. package/components/mui_extended/Autocomplete/slots/AutocompleteEnum.d.ts +6 -1
  205. package/components/mui_extended/Autocomplete/slots/AutocompleteEnum.js +8 -1
  206. package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.d.ts +5 -2
  207. package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.js +9 -4
  208. package/components/mui_extended/Autocomplete/subcomponents/renderOptions/index.js +4 -3
  209. package/components/mui_extended/Autocomplete/types.d.ts +9 -2
  210. package/components/mui_extended/Button/slots/ButtonSlots.d.ts +1 -1
  211. package/components/mui_extended/CheckBox/slots/CheckBoxSlots.d.ts +1 -1
  212. package/components/mui_extended/MenuItem/MenuItem.js +13 -15
  213. package/components/mui_extended/MenuItem/MenuItem.styles.js +33 -46
  214. package/components/mui_extended/MenuItem/constants.d.ts +1 -1
  215. package/components/mui_extended/MenuItem/slots/MenuItemEnum.d.ts +0 -1
  216. package/components/mui_extended/MenuItem/slots/MenuItemEnum.js +0 -1
  217. package/components/mui_extended/MenuItem/slots/MenuItemSlots.d.ts +2 -5
  218. package/components/mui_extended/MenuItem/slots/MenuItemSlots.js +1 -6
  219. package/components/mui_extended/NavLink/slots/NavLinkSlots.d.ts +1 -1
  220. package/components/mui_extended/Radio/slots/styled.d.ts +1 -1
  221. package/components/mui_extended/Select/Select.js +1 -1
  222. package/components/mui_extended/Select/slots/SelectSlots.d.ts +3 -3
  223. package/components/mui_extended/Tab/Slots/TabSlots.d.ts +1 -1
  224. package/components/mui_extended/TextField/slots/TextFieldSlots.d.ts +3 -3
  225. package/components/mui_extended/Typography/slots/typographySlots.d.ts +1 -1
  226. package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortSlots.d.ts +3 -3
  227. package/hooks/usePopoverContainer/usePopoverContainer.d.ts +1 -1
  228. package/hooks/usePopoverContainer/usePopoverContainer.js +10 -10
  229. package/index.js +116 -88
  230. package/package.json +1 -1
@@ -1,6 +1,38 @@
1
1
  import { ColumnNestedValueFormatterProps } from './types';
2
2
  import { RenderCellProps } from 'react-data-grid';
3
3
  /**
4
- * Function to format a nested value in a column of a DataGrid
4
+ * Formatter para mostrar valores de propiedades anidadas en columnas del DataGrid.
5
+ *
6
+ * Este formatter permite acceder a propiedades dentro de objetos anidados usando
7
+ * "dot notation" (notación de punto). Es útil cuando los datos tienen estructuras
8
+ * complejas y necesitas mostrar un valor específico dentro de un objeto.
9
+ * @param props - Configuración del formatter
10
+ * @param props.fieldValue - Ruta a la propiedad usando dot notation (ej: 'user.profile.name')
11
+ * @param props.Component - Componente opcional para envolver el valor (default: React.Fragment)
12
+ * @param props.defaultValue - Valor a mostrar si es null/undefined (default: '-')
13
+ * @returns Función formatter compatible con react-data-grid
14
+ * @example
15
+ * // Filas de ejemplo:
16
+ * // { id: 1, user: { profile: { name: 'Juan' } } }
17
+ * // { id: 2, user: { profile: { name: null } } }
18
+ *
19
+ * // Uso recomendado con hook:
20
+ * const nestedColumn = useColumnNestedValue<MyRow>({
21
+ * fieldValue: 'user.profile.name',
22
+ * defaultValue: 'Sin nombre',
23
+ * });
24
+ *
25
+ * const columns = [
26
+ * {
27
+ * key: 'userName',
28
+ * name: 'Nombre',
29
+ * type: 'custom',
30
+ * ...nestedColumn, // Incluye formatter, customFilter y customSort
31
+ * }
32
+ * ];
33
+ *
34
+ * // Resultado en DataGrid:
35
+ * // Fila 1: "Juan"
36
+ * // Fila 2: "Sin nombre" (porque el valor es null)
5
37
  */
6
38
  export declare function ColumnNestedValueFormatter<TRow>(props: ColumnNestedValueFormatterProps<TRow>): (formatterProps: RenderCellProps<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -3,10 +3,11 @@ import { getPropertyByString } from "@m4l/core";
3
3
  import React from "react";
4
4
  import { g as getNullGuard } from "../../../../utils/getNullGuard.js";
5
5
  function ColumnNestedValueFormatter(props) {
6
- const { fieldValue, Component = React.Fragment } = props;
6
+ const { fieldValue, Component = React.Fragment, defaultValue = "-" } = props;
7
7
  return (formatterProps) => {
8
8
  const property = getNullGuard(
9
- getPropertyByString(formatterProps.row, fieldValue)
9
+ getPropertyByString(formatterProps.row, fieldValue),
10
+ defaultValue
10
11
  );
11
12
  const value = typeof property === "object" ? JSON.stringify(property) : property;
12
13
  return /* @__PURE__ */ jsx(Component, { children: value });
@@ -1,3 +1,4 @@
1
1
  export { ColumnNestedValueFormatter } from './formatter';
2
+ export { ColumnNestedValueGroupFormatter } from './ColumnNestedValueGroupFormatter';
2
3
  export type { ColumnNestedValueFormatterProps } from './types';
3
4
  export { useColumnNestedValue } from './useColumnNestedValue';
@@ -1,5 +1,23 @@
1
1
  import { DeepKeyOf } from '../../../../utils/types';
2
2
  export interface ColumnNestedValueFormatterProps<TRow> {
3
- Component?: React.ElementType;
3
+ /**
4
+ * Ruta a la propiedad anidada usando dot notation.
5
+ * Permite acceder a valores dentro de objetos anidados.
6
+ * @example
7
+ * // Para acceder a { user: { profile: { name: 'Juan' } } }
8
+ * fieldValue: 'user.profile.name' // Retorna 'Juan'
9
+ */
4
10
  fieldValue: DeepKeyOf<TRow>;
11
+ /**
12
+ * Componente opcional para envolver el valor renderizado.
13
+ * Por defecto usa React.Fragment.
14
+ * @example
15
+ * Component: Typography // Envuelve el valor en <Typography>{valor}</Typography>
16
+ */
17
+ Component?: React.ElementType;
18
+ /**
19
+ * Valor a mostrar cuando la propiedad es null o undefined.
20
+ * Por defecto es '-'.
21
+ */
22
+ defaultValue?: string;
5
23
  }
@@ -1,10 +1,43 @@
1
1
  import { ColumnNestedValueFormatterProps } from './types';
2
2
  /**
3
- * Function that return the formatter, customFilter and customSort
4
- * of the column for ColumnNestedValueFormatter.
3
+ * Hook para crear una columna que muestra valores de propiedades anidadas.
4
+ * @param props - Configuración del formatter
5
+ * @param props.fieldValue - Ruta a la propiedad usando dot notation (ej: 'user.profile.name')
6
+ * @param props.Component - Componente opcional para envolver el valor (default: React.Fragment)
7
+ * @param props.defaultValue - Valor a mostrar si es null/undefined (default: '-')
8
+ * @returns Objeto con { formatter, customFilter, customSort } para usar en la columna
9
+ * @example
10
+ * // Datos de ejemplo en el DataGrid:
11
+ * // [
12
+ * // { id: 1, nestedValue: { value: 'Activo' } },
13
+ * // { id: 2, nestedValue: { value: null } },
14
+ * // { id: 3, nestedValue: { value: 'Pendiente' } },
15
+ * // ]
16
+ *
17
+ * // Crear la columna con el hook
18
+ * const nestedColumn = useColumnNestedValue<RowType>({
19
+ * fieldValue: 'nestedValue.value',
20
+ * defaultValue: 'N/A', // Opcional, por defecto es '-'
21
+ * });
22
+ *
23
+ * // Usar en la definición de columnas
24
+ * const columns = [
25
+ * {
26
+ * key: 'nestedValue',
27
+ * name: 'Estado',
28
+ * type: 'custom',
29
+ * ...nestedColumn, // Spread incluye formatter, customFilter y customSort
30
+ * }
31
+ * ];
32
+ *
33
+ * // Resultado en el DataGrid:
34
+ * // Fila 1: "Activo"
35
+ * // Fila 2: "N/A" (porque el valor es null)
36
+ * // Fila 3: "Pendiente"
5
37
  */
6
38
  export declare const useColumnNestedValue: <TRow>(props: ColumnNestedValueFormatterProps<TRow>) => {
7
39
  formatter: (formatterProps: import('react-data-grid').RenderCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
40
+ renderGroupCell: (groupProps: import('react-data-grid').RenderGroupCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
41
  customFilter: (row: TRow, value: string) => any;
9
42
  customSort: (a: TRow, b: TRow) => 0 | 1 | -1;
10
43
  };
@@ -1,12 +1,17 @@
1
1
  import { getPropertyByString } from "@m4l/core";
2
+ import { C as ColumnNestedValueGroupFormatter } from "./ColumnNestedValueGroupFormatter.js";
2
3
  import { useState, useRef, useEffect, useMemo } from "react";
3
4
  import { deepEqual } from "fast-equals";
4
5
  import { g as getNullGuard } from "../../../../utils/getNullGuard.js";
5
6
  import { C as ColumnNestedValueFormatter } from "./formatter.js";
6
7
  import { g as getColumnKey } from "../../helpers/shared/getColumnKey/getColumnKey.js";
7
8
  const getCustomNestedValueFilter = (props) => {
9
+ const { defaultValue = "-" } = props;
8
10
  return (row, value) => {
9
- const property = getNullGuard(getPropertyByString(row, props.fieldValue));
11
+ const property = getNullGuard(
12
+ getPropertyByString(row, props.fieldValue),
13
+ defaultValue
14
+ );
10
15
  if (typeof property === "object") {
11
16
  return Object.values(property).includes(value);
12
17
  }
@@ -14,10 +19,17 @@ const getCustomNestedValueFilter = (props) => {
14
19
  };
15
20
  };
16
21
  const getCustomNestedValueSort = (props) => {
22
+ const { defaultValue = "-" } = props;
17
23
  return (a, b) => {
18
24
  const keyWiouthRow = getColumnKey(props.fieldValue);
19
- const valueA = getNullGuard(getPropertyByString(a, keyWiouthRow));
20
- const valueB = getNullGuard(getPropertyByString(b, keyWiouthRow));
25
+ const valueA = getNullGuard(
26
+ getPropertyByString(a, keyWiouthRow),
27
+ defaultValue
28
+ );
29
+ const valueB = getNullGuard(
30
+ getPropertyByString(b, keyWiouthRow),
31
+ defaultValue
32
+ );
21
33
  if (typeof valueA === "object" || typeof valueB === "object" || valueA === void 0 || valueB === void 0) {
22
34
  return 0;
23
35
  }
@@ -39,11 +51,15 @@ const useColumnNestedValue = (props) => {
39
51
  setStateProps(props);
40
52
  }
41
53
  }, [props]);
42
- return useMemo(() => ({
43
- formatter: ColumnNestedValueFormatter(stateProps),
44
- customFilter: getCustomNestedValueFilter(stateProps),
45
- customSort: getCustomNestedValueSort(stateProps)
46
- }), [stateProps]);
54
+ return useMemo(
55
+ () => ({
56
+ formatter: ColumnNestedValueFormatter(stateProps),
57
+ renderGroupCell: ColumnNestedValueGroupFormatter(stateProps),
58
+ customFilter: getCustomNestedValueFilter(stateProps),
59
+ customSort: getCustomNestedValueSort(stateProps)
60
+ }),
61
+ [stateProps]
62
+ );
47
63
  };
48
64
  export {
49
65
  useColumnNestedValue as u
@@ -0,0 +1,15 @@
1
+ import { ColumnPointsFormatterProps } from './types';
2
+ import { RenderGroupCellProps } from 'react-data-grid';
3
+ /**
4
+ * Formatter para mostrar puntos de calibración en filas de grupo (TreeDataGrid).
5
+ *
6
+ * Esta función es utilizada cuando el TreeDataGrid agrupa filas y necesita
7
+ * mostrar puntos en el encabezado del grupo. Usa la primera fila
8
+ * del grupo (childRows[0]) como fuente de datos representativa.
9
+ * @param props - Propiedades del formatter que incluyen:
10
+ * - fieldValue: Campo que contiene el valor de los puntos
11
+ * - fieldUnit: Campo que contiene la unidad de los puntos
12
+ * - Component: Componente wrapper opcional
13
+ * @returns Función que recibe RenderGroupCellProps y retorna el PointsFormatter
14
+ */
15
+ export declare const ColumnPointsGroupFormatter: <TRow>(props: ColumnPointsFormatterProps<TRow>) => (groupProps: RenderGroupCellProps<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { P as PointsFormatter } from "../../../formatters/PointsFormatter/PointsFormatter.js";
4
+ const ColumnPointsGroupFormatter = (props) => {
5
+ const { Component = React.Fragment } = props;
6
+ const fieldValue = props.fieldValue;
7
+ const fieldUnit = props.fieldUnit;
8
+ return (groupProps) => {
9
+ const { childRows } = groupProps;
10
+ if (childRows.length === 0) {
11
+ return /* @__PURE__ */ jsx(Fragment, { children: "-" });
12
+ }
13
+ const representativeRow = childRows[0];
14
+ return /* @__PURE__ */ jsx(
15
+ PointsFormatter,
16
+ {
17
+ obProps: representativeRow,
18
+ ...props,
19
+ fieldValue,
20
+ fieldUnit,
21
+ Component
22
+ }
23
+ );
24
+ };
25
+ };
26
+ export {
27
+ ColumnPointsGroupFormatter as C
28
+ };
@@ -1,3 +1,4 @@
1
1
  export { ColumnPointsFormatter } from './formatter';
2
+ export { ColumnPointsGroupFormatter } from './ColumnPointsGroupFormatter';
2
3
  export type { ColumnPointsFormatterProps } from './types';
3
4
  export { useColumnPoints } from './useColumnPoints';
@@ -5,6 +5,7 @@ import { ColumnPointsFormatterProps } from './types';
5
5
  */
6
6
  export declare const useColumnPoints: <TRow>(props: ColumnPointsFormatterProps<TRow>) => {
7
7
  formatter: (formatterProps: import('react-data-grid').RenderCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
+ renderGroupCell: (groupProps: import('react-data-grid').RenderGroupCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
9
  customFilter: (row: TRow, value: string) => boolean;
9
10
  customSort: (a: TRow, b: TRow) => 0 | 1 | -1;
10
11
  };
@@ -1,6 +1,7 @@
1
1
  import { useState, useRef, useEffect, useMemo } from "react";
2
2
  import { deepEqual } from "fast-equals";
3
3
  import { C as ColumnPointsFormatter } from "./formatter.js";
4
+ import { C as ColumnPointsGroupFormatter } from "./ColumnPointsGroupFormatter.js";
4
5
  import { g as getFormatPoints } from "../../../formatters/PointsFormatter/PointsFormatter.js";
5
6
  import { g as getColumnKey } from "../../helpers/shared/getColumnKey/getColumnKey.js";
6
7
  const getCustomPointsFilter = (props) => {
@@ -36,6 +37,7 @@ const useColumnPoints = (props) => {
36
37
  }, [props]);
37
38
  return useMemo(() => ({
38
39
  formatter: ColumnPointsFormatter(stateProps),
40
+ renderGroupCell: ColumnPointsGroupFormatter(stateProps),
39
41
  customFilter: getCustomPointsFilter(stateProps),
40
42
  customSort: getCustomPointsSort(stateProps)
41
43
  }), [stateProps]);
@@ -0,0 +1,14 @@
1
+ import { ColumnPriceFormatterProps } from './types';
2
+ import { RenderGroupCellProps } from 'react-data-grid';
3
+ /**
4
+ * Formatter para mostrar un precio en filas de grupo (TreeDataGrid).
5
+ *
6
+ * Esta función es utilizada cuando el TreeDataGrid agrupa filas y necesita
7
+ * mostrar un precio en el encabezado del grupo. Usa la primera fila
8
+ * del grupo (childRows[0]) como fuente de datos representativa.
9
+ * @param props - Propiedades del formatter que incluyen:
10
+ * - fieldValue: Campo que contiene el valor del precio
11
+ * - Component: Componente wrapper opcional
12
+ * @returns Función que recibe RenderGroupCellProps y retorna el PriceFormatter
13
+ */
14
+ export declare const ColumnPriceGroupFormatter: <TRow>(props: ColumnPriceFormatterProps<TRow>) => (groupProps: RenderGroupCellProps<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,26 @@
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { P as PriceFormatter } from "../../../formatters/PriceFormatter/PriceFormatter.js";
4
+ const ColumnPriceGroupFormatter = (props) => {
5
+ const { Component = React.Fragment } = props;
6
+ const fieldValue = props.fieldValue;
7
+ return (groupProps) => {
8
+ const { childRows } = groupProps;
9
+ if (childRows.length === 0) {
10
+ return /* @__PURE__ */ jsx(Fragment, { children: "-" });
11
+ }
12
+ const representativeRow = childRows[0];
13
+ return /* @__PURE__ */ jsx(
14
+ PriceFormatter,
15
+ {
16
+ obProps: representativeRow,
17
+ ...props,
18
+ fieldValue,
19
+ Component
20
+ }
21
+ );
22
+ };
23
+ };
24
+ export {
25
+ ColumnPriceGroupFormatter as C
26
+ };
@@ -1,3 +1,4 @@
1
1
  export { ColumnPriceFormatter } from './formatter';
2
+ export { ColumnPriceGroupFormatter } from './ColumnPriceGroupFormatter';
2
3
  export type { ColumnPriceFormatterProps } from './types';
3
4
  export { useColumnPrice } from './useColumnPrice';
@@ -5,6 +5,7 @@ import { ColumnPriceFormatterProps } from './types';
5
5
  */
6
6
  export declare const useColumnPrice: <TRow>(props: ColumnPriceFormatterProps<TRow>) => {
7
7
  formatter: (formatterProps: import('react-data-grid').RenderCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
+ renderGroupCell: (groupProps: import('react-data-grid').RenderGroupCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
9
  customFilter: (row: TRow, value: string) => boolean;
9
10
  customSort: (a: TRow, b: TRow) => 0 | 1 | -1;
10
11
  };
@@ -3,6 +3,7 @@ import { useFormatter } from "@m4l/graphics";
3
3
  import { getPropertyByString } from "@m4l/core";
4
4
  import { deepEqual } from "fast-equals";
5
5
  import { g as getFormatPrice } from "../../../formatters/PriceFormatter/PriceFormatter.js";
6
+ import { C as ColumnPriceGroupFormatter } from "./ColumnPriceGroupFormatter.js";
6
7
  import { C as ColumnPriceFormatter } from "./formatter.js";
7
8
  import { g as getColumnKey } from "../../helpers/shared/getColumnKey/getColumnKey.js";
8
9
  const getCustomPriceFilter = (props) => {
@@ -51,6 +52,7 @@ const useColumnPrice = (props) => {
51
52
  }, [props]);
52
53
  return useMemo(() => ({
53
54
  formatter: ColumnPriceFormatter(stateProps),
55
+ renderGroupCell: ColumnPriceGroupFormatter(stateProps),
54
56
  customFilter,
55
57
  customSort: getCustomPriceSort(stateProps)
56
58
  }), [stateProps, customFilter]);
@@ -0,0 +1,13 @@
1
+ import { ColumnTagsFormatterProps } from './types';
2
+ import { RenderGroupCellProps } from 'react-data-grid';
3
+ /**
4
+ * Formatter para mostrar tags en filas de grupo (TreeDataGrid).
5
+ *
6
+ * Esta función es utilizada cuando el TreeDataGrid agrupa filas y necesita
7
+ * mostrar tags en el encabezado del grupo. Usa la primera fila
8
+ * del grupo (childRows[0]) como fuente de datos representativa.
9
+ * @param props - Propiedades del formatter que incluyen:
10
+ * - fieldValue: Campo que contiene los tags
11
+ * @returns Función que recibe RenderGroupCellProps y retorna el TagsFormatter
12
+ */
13
+ export declare const ColumnTagsGroupFormatter: <TRow>(props: ColumnTagsFormatterProps<TRow>) => (groupProps: RenderGroupCellProps<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import { getPropertyByString } from "@m4l/core";
3
+ import { T as TagsFormatter } from "../../../formatters/TagsFormatter/TagsFormatter.js";
4
+ const ColumnTagsGroupFormatter = (props) => {
5
+ const { fieldValue } = props;
6
+ return (groupProps) => {
7
+ const { childRows } = groupProps;
8
+ if (childRows.length === 0) {
9
+ return /* @__PURE__ */ jsx(Fragment, { children: "-" });
10
+ }
11
+ const representativeRow = childRows[0];
12
+ const tags = getPropertyByString(
13
+ representativeRow,
14
+ fieldValue.toString()
15
+ );
16
+ return /* @__PURE__ */ jsx(TagsFormatter, { tags });
17
+ };
18
+ };
19
+ export {
20
+ ColumnTagsGroupFormatter as C
21
+ };
@@ -1,3 +1,4 @@
1
1
  export { ColumnTagsFormatter } from './formatter';
2
+ export { ColumnTagsGroupFormatter } from './ColumnTagsGroupFormatter';
2
3
  export type { ColumnTagsFormatterProps } from './types';
3
4
  export { useColumnTags } from './useColumnTags';
@@ -4,6 +4,7 @@ import { ColumnTagsFormatterProps } from './types';
4
4
  */
5
5
  export declare const useColumnTags: <TRow>(props: ColumnTagsFormatterProps<TRow>) => {
6
6
  formatter: (renderProps: import('react-data-grid').RenderCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
7
+ renderGroupCell: (groupProps: import('react-data-grid').RenderGroupCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
7
8
  customFilter: (row: TRow, value: string) => boolean;
8
9
  customSort: (a: TRow, b: TRow) => 0 | 1 | -1;
9
10
  };
@@ -1,5 +1,6 @@
1
1
  import { getPropertyByString } from "@m4l/core";
2
2
  import { C as ColumnTagsFormatter } from "./formatter.js";
3
+ import { C as ColumnTagsGroupFormatter } from "./ColumnTagsGroupFormatter.js";
3
4
  import { deepEqual } from "fast-equals";
4
5
  import { useState, useRef, useEffect, useMemo } from "react";
5
6
  import { g as getColumnKey } from "../../helpers/shared/getColumnKey/getColumnKey.js";
@@ -49,6 +50,7 @@ const useColumnTags = (props) => {
49
50
  return useMemo(
50
51
  () => ({
51
52
  formatter: ColumnTagsFormatter(stateProps),
53
+ renderGroupCell: ColumnTagsGroupFormatter(stateProps),
52
54
  customFilter: getCustomTagFilter(stateProps),
53
55
  customSort: getCustomTagSort(stateProps)
54
56
  }),
@@ -0,0 +1,15 @@
1
+ import { ColumnUncertaintyFormatterProps } from './types';
2
+ import { RenderGroupCellProps } from 'react-data-grid';
3
+ /**
4
+ * Formatter para mostrar valores de incertidumbre en filas de grupo (TreeDataGrid).
5
+ *
6
+ * Esta función es utilizada cuando el TreeDataGrid agrupa filas y necesita
7
+ * mostrar el valor de incertidumbre en el encabezado del grupo. Usa la primera fila
8
+ * del grupo (childRows[0]) como fuente de datos representativa.
9
+ * @param props - Propiedades del formatter que incluyen:
10
+ * - fieldValue: Campo con los rangos de incertidumbre
11
+ * - fieldSymbol: Campo con el símbolo
12
+ * - fieldUnit: Campo con la unidad
13
+ * @returns Función que recibe RenderGroupCellProps y retorna el UncertaintyFormatter
14
+ */
15
+ export declare const ColumnUncertaintyGroupFormatter: <TRow>(props: ColumnUncertaintyFormatterProps<TRow>) => (groupProps: RenderGroupCellProps<TRow>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { U as UncertaintyFormatter } from "../../../formatters/UncertaintyFormatter/UncertaintyFormatter.js";
4
+ const ColumnUncertaintyGroupFormatter = (props) => {
5
+ const { Component = React.Fragment, fieldValue, fieldSymbol, fieldUnit } = props;
6
+ return (groupProps) => {
7
+ const { childRows } = groupProps;
8
+ if (childRows.length === 0) {
9
+ return /* @__PURE__ */ jsx(Fragment, { children: "-" });
10
+ }
11
+ const representativeRow = childRows[0];
12
+ return /* @__PURE__ */ jsx(
13
+ UncertaintyFormatter,
14
+ {
15
+ obProps: representativeRow,
16
+ ...props,
17
+ fieldValue: fieldValue.toString(),
18
+ fieldSymbol: fieldSymbol.toString(),
19
+ fieldUnit: fieldUnit.toString(),
20
+ Component
21
+ }
22
+ );
23
+ };
24
+ };
25
+ export {
26
+ ColumnUncertaintyGroupFormatter as C
27
+ };
@@ -1,3 +1,4 @@
1
1
  export { ColumnUncertaintyFormatter } from './formatter';
2
+ export { ColumnUncertaintyGroupFormatter } from './ColumnUncertaintyGroupFormatter';
2
3
  export type { ColumnUncertaintyFormatterProps } from './types';
3
4
  export { useColumnUncertanity } from './useColumnUncertainty';
@@ -5,6 +5,7 @@ import { ColumnUncertaintyFormatterProps } from './types';
5
5
  */
6
6
  export declare const useColumnUncertanity: <TRow>(props: ColumnUncertaintyFormatterProps<TRow>) => {
7
7
  formatter: (formatterProps: import('react-data-grid').RenderCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
+ renderGroupCell: (groupProps: import('react-data-grid').RenderGroupCellProps<TRow, unknown>) => import("react/jsx-runtime").JSX.Element;
8
9
  customFilter: (row: TRow, value: string) => boolean;
9
10
  customSort: (a: TRow, b: TRow) => 0 | 1 | -1;
10
11
  };
@@ -1,6 +1,7 @@
1
1
  import { useState, useRef, useEffect, useMemo } from "react";
2
2
  import { deepEqual } from "fast-equals";
3
3
  import { g as getUncertaintyFormat } from "../../../formatters/UncertaintyFormatter/UncertaintyFormatter.js";
4
+ import { C as ColumnUncertaintyGroupFormatter } from "./ColumnUncertaintyGroupFormatter.js";
4
5
  import { C as ColumnUncertaintyFormatter } from "./formatter.js";
5
6
  import { g as getColumnKey } from "../../helpers/shared/getColumnKey/getColumnKey.js";
6
7
  const getCustomUncertaintyFilter = (props) => {
@@ -44,6 +45,7 @@ const useColumnUncertanity = (props) => {
44
45
  }, [props]);
45
46
  return useMemo(() => ({
46
47
  formatter: ColumnUncertaintyFormatter(stateProps),
48
+ renderGroupCell: ColumnUncertaintyGroupFormatter(stateProps),
47
49
  customFilter: getCustomUncertaintyFilter(stateProps),
48
50
  customSort: getCustomUncertaintySort(stateProps)
49
51
  }), [stateProps]);
@@ -13,6 +13,7 @@ const getInitialColumnsConfig = (id, columns, viewMode, defaultConfig, viewSpeci
13
13
  return columns.map((column, index) => {
14
14
  const existingConfig = columnsConfig.find((c) => c.key === column.key);
15
15
  const columnConfigIndex = existingConfig ? columnsConfig.indexOf(existingConfig) : -1;
16
+ const groupedColumnsCount = columns.slice(0, index).filter((c) => c.grouped === true).length;
16
17
  const baseConfig = {
17
18
  key: column.key,
18
19
  name: typeof column.name === "string" ? column.name : String(column.name),
@@ -22,10 +23,17 @@ const getInitialColumnsConfig = (id, columns, viewMode, defaultConfig, viewSpeci
22
23
  originalIndex: index,
23
24
  originalVisible: column.visible === void 0 ? true : column.visible
24
25
  };
26
+ const groupingConfig = viewMode === "table" ? {
27
+ grouped: existingConfig?.grouped ?? column.grouped ?? false,
28
+ groupOrder: existingConfig?.groupOrder ?? (column.grouped ? groupedColumnsCount : index),
29
+ originalGrouped: column.grouped ?? false,
30
+ originalGroupOrder: column.grouped ? groupedColumnsCount : index
31
+ } : {};
25
32
  return {
26
33
  ...baseConfig,
27
34
  ...viewSpecificDefaults,
28
35
  ...originalViewSpecificDefaults,
36
+ ...groupingConfig,
29
37
  ...existingConfig || {}
30
38
  };
31
39
  }).sort((a, b) => a.index - b.index);
@@ -1,10 +1,17 @@
1
1
  const getViewSpecificConfig = (viewMode) => {
2
2
  const configs = {
3
3
  table: {
4
- defaults: { frozen: false },
5
- originalDefaults: { originalFrozen: false },
4
+ defaults: { frozen: false, grouped: false, groupOrder: 0 },
5
+ originalDefaults: { originalFrozen: false, originalGrouped: false, originalGroupOrder: 0 },
6
+ /**
7
+ * Extrae las propiedades originales de frozen, grouped y groupOrder de un item.
8
+ * @param item - Item del cual extraer las propiedades
9
+ * @returns Objeto con las propiedades originales
10
+ */
6
11
  dynamicOriginalProperty: (item) => ({
7
- originalFrozen: item?.frozen ?? false
12
+ originalFrozen: item?.frozen ?? false,
13
+ originalGrouped: item?.grouped ?? false,
14
+ originalGroupOrder: item?.groupOrder ?? 0
8
15
  })
9
16
  },
10
17
  cards: {
@@ -3,6 +3,7 @@ import { UseChangeColumnsOrderParams, UseChangeColumnsOrderReturn } from './type
3
3
  * Hook para manejar el cambio de orden de columnas.
4
4
  *
5
5
  * Reordena las columnas y llama a onChangeColumnsConfig para persistir.
6
+ * También recalcula groupOrder si las columnas están agrupadas.
6
7
  * @param getConfigColumns Función para obtener la configuración de columnas
7
8
  * @param onChangeColumnsConfig Función para cambiar la configuración de columnas
8
9
  * @returns Función para cambiar el orden de columnas
@@ -21,10 +21,18 @@ const useChangeColumnsOrder = ({
21
21
  0,
22
22
  reorderedConfig.splice(sourceColumnIndex, 1)[0]
23
23
  );
24
- const configWithUpdatedIndexes = reorderedConfig.map((col, idx) => ({
25
- ...col,
26
- index: idx
27
- }));
24
+ let groupOrderCounter = 0;
25
+ const configWithUpdatedIndexes = reorderedConfig.map((col, idx) => {
26
+ const updatedCol = {
27
+ ...col,
28
+ index: idx
29
+ };
30
+ if (col.grouped) {
31
+ updatedCol.groupOrder = groupOrderCounter;
32
+ groupOrderCounter++;
33
+ }
34
+ return updatedCol;
35
+ });
28
36
  onChangeColumnsConfig(viewModeParam, configWithUpdatedIndexes);
29
37
  },
30
38
  [getConfigColumns, onChangeColumnsConfig]
@@ -20,6 +20,7 @@ export declare const pathIcons: {
20
20
  freezeColumn: string;
21
21
  unfreezeColumn: string;
22
22
  hideColumn: string;
23
+ groupColumn: string;
23
24
  viewTable: string;
24
25
  viewCards: string;
25
26
  info: string;
@@ -28,4 +29,8 @@ export declare const pathIcons: {
28
29
  smartphone: string;
29
30
  internet: string;
30
31
  edit: string;
32
+ group: string;
33
+ removeGroup: string;
34
+ groupUp: string;
35
+ groupDown: string;
31
36
  };
@@ -24,7 +24,11 @@ const pathIcons = {
24
24
  viewCards: "frontend/components/data_grid/assets/icons/card.svg",
25
25
  info: "frontend/components/data_grid/assets/icons/info.svg",
26
26
  expanded: "frontend/components/data_grid/assets/icons/expanded.svg",
27
- edit: "frontend/components/EditLabel/assets/icons/pencil.svg"
27
+ edit: "frontend/components/EditLabel/assets/icons/pencil.svg",
28
+ group: "frontend/components/data_grid/assets/icons/group.svg",
29
+ removeGroup: "frontend/components/data_grid/assets/icons/remove_group.svg",
30
+ groupUp: "frontend/components/data_grid/assets/icons/group_up.svg",
31
+ groupDown: "frontend/components/data_grid/assets/icons/group_down.svg"
28
32
  };
29
33
  export {
30
34
  pathIcons as p
@@ -1,7 +1,8 @@
1
1
  export { DataGrid } from './components/DataGridMain';
2
+ export { TreeDataGrid } from './components/TreeDataGrid';
2
3
  export * from './formatters';
3
4
  export type { Column, RenderEditCellProps, RenderCellProps, } from 'react-data-grid';
4
- export type { RowKey, ChangeConfig, ChangeUserColumn, RowActionsGetter, RowKeyGetter, } from './types';
5
+ export type { RowKey, ChangeConfig, ChangeUserColumn, RowActionsGetter, RowKeyGetter, TreeProps, TreeDataGridProps, } from './types';
5
6
  export type { IGridConfigExtended, BaseConfigColumn, } from './contexts/DataGridContext/types';
6
7
  export type { IGridConfig } from './helpers/persistence/getColumnsWidth/types';
7
8
  export { getDataGridComponentsDictionary } from './dictionary';
@@ -53,7 +53,9 @@ export declare enum TableSlots {
53
53
  editorCellWrapper = "editorCellWrapper",
54
54
  editablePlaceholder = "editablePlaceholder",
55
55
  editLabel = "editLabel",
56
- iconButtonEdit = "iconButtonEdit"
56
+ iconButtonEdit = "iconButtonEdit",
57
+ defaultRenderGroupCellRoot = "defaultRenderGroupCellRoot",
58
+ defaultRenderGroupCellText = "defaultRenderGroupCellText"
57
59
  }
58
60
  export declare enum TextEditorSlots {
59
61
  inputTexEditor = "inputTexEditor"
@@ -57,6 +57,8 @@ var TableSlots = /* @__PURE__ */ ((TableSlots2) => {
57
57
  TableSlots2["editablePlaceholder"] = "editablePlaceholder";
58
58
  TableSlots2["editLabel"] = "editLabel";
59
59
  TableSlots2["iconButtonEdit"] = "iconButtonEdit";
60
+ TableSlots2["defaultRenderGroupCellRoot"] = "defaultRenderGroupCellRoot";
61
+ TableSlots2["defaultRenderGroupCellText"] = "defaultRenderGroupCellText";
60
62
  return TableSlots2;
61
63
  })(TableSlots || {});
62
64
  var TextEditorSlots = /* @__PURE__ */ ((TextEditorSlots2) => {