@progress/kendo-react-data-tools 9.3.1 → 9.4.0-develop.10

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 (111) hide show
  1. package/clipboard/clipboard.service.js +1 -1
  2. package/clipboard/clipboard.service.mjs +0 -1
  3. package/clipboard/common.js +5 -5
  4. package/clipboard/common.mjs +0 -1
  5. package/columnmenu/ColumnMenu.js +2 -1
  6. package/columnmenu/ColumnMenuFilterForm.js +2 -1
  7. package/columnmenu/ColumnMenuFilterLogic.js +2 -1
  8. package/columnmenu/ColumnMenuFilterLogic.mjs +4 -4
  9. package/columnmenu/ColumnMenuFilters.js +2 -1
  10. package/columnmenu/ColumnMenuItem.js +2 -1
  11. package/columnmenu/ColumnMenuItem.mjs +4 -4
  12. package/columnmenu/ColumnMenuOperators.js +1 -1
  13. package/columnmenu/ColumnMenuOperators.mjs +0 -1
  14. package/detail-expansion/expandReducer.js +8 -0
  15. package/detail-expansion/expandReducer.mjs +26 -0
  16. package/detail-expansion/utils.js +8 -0
  17. package/detail-expansion/utils.mjs +17 -0
  18. package/dist/cdn/js/kendo-react-datatools.js +8 -1
  19. package/drag/ColumnDraggable.js +2 -1
  20. package/drag/ColumnResize.js +1 -1
  21. package/drag/ColumnResize.mjs +2 -3
  22. package/drag/ColumnResizer.js +2 -1
  23. package/drag/CommonDragLogic.js +1 -1
  24. package/drag/CommonDragLogic.mjs +0 -1
  25. package/drag/DragClue.js +2 -1
  26. package/drag/DragClue.mjs +4 -4
  27. package/drag/DropClue.js +2 -1
  28. package/drag/DropClue.mjs +3 -3
  29. package/editing/editReducer.js +8 -0
  30. package/editing/editReducer.mjs +43 -0
  31. package/editing/utils.js +8 -0
  32. package/editing/utils.mjs +17 -0
  33. package/filter/Expression.js +2 -1
  34. package/filter/Filter.js +2 -1
  35. package/filter/Filter.mjs +11 -11
  36. package/filter/Group.js +2 -1
  37. package/filter/filters/BooleanFilter.js +2 -1
  38. package/filter/filters/DateFilter.js +2 -1
  39. package/filter/filters/DateFilter.mjs +4 -4
  40. package/filter/filters/EnumFilter.js +2 -1
  41. package/filter/filters/NumericFilter.js +2 -1
  42. package/filter/filters/NumericFilter.mjs +4 -4
  43. package/filter/filters/TextFilter.js +2 -1
  44. package/filter/operators.js +1 -1
  45. package/filter/operators.mjs +0 -1
  46. package/filteringCells/BooleanFilter.js +2 -1
  47. package/filteringCells/BooleanFilter.mjs +4 -4
  48. package/filteringCells/DateFilter.js +2 -1
  49. package/filteringCells/DateFilter.mjs +5 -5
  50. package/filteringCells/FilterComponent.js +2 -1
  51. package/filteringCells/FilterComponent.mjs +7 -7
  52. package/filteringCells/NumericFilter.js +2 -1
  53. package/filteringCells/TextFilter.js +2 -1
  54. package/group-expansion/groupExpandReducer.js +8 -0
  55. package/group-expansion/groupExpandReducer.mjs +107 -0
  56. package/header/ColumnProps.js +1 -1
  57. package/header/ColumnProps.mjs +0 -1
  58. package/header/FilterRow.js +2 -1
  59. package/header/FilterRow.mjs +2 -2
  60. package/header/Header.js +2 -1
  61. package/header/HeaderCell.js +2 -1
  62. package/header/HeaderRow.js +2 -1
  63. package/header/HeaderRow.mjs +5 -5
  64. package/header/HeaderSelectionCell.js +2 -1
  65. package/header/HeaderTdElement.js +2 -1
  66. package/header/HeaderTdElement.mjs +6 -6
  67. package/header/HeaderThElement.js +2 -1
  68. package/header/HeaderThElement.mjs +6 -6
  69. package/header/SortSettings.js +1 -1
  70. package/header/SortSettings.mjs +2 -3
  71. package/header/utils/index.js +1 -1
  72. package/header/utils/index.mjs +5 -6
  73. package/index.d.mts +214 -12
  74. package/index.d.ts +214 -12
  75. package/index.js +1 -1
  76. package/index.mjs +156 -137
  77. package/messages/index.js +1 -1
  78. package/messages/index.mjs +0 -1
  79. package/navigation/NavigatableSettings.js +1 -1
  80. package/navigation/NavigatableSettings.mjs +2 -3
  81. package/navigation/TableKeyboardNavigation.js +2 -1
  82. package/navigation/TableKeyboardNavigationContext.js +2 -1
  83. package/navigation/TableKeyboardNavigationContext.mjs +4 -4
  84. package/navigation/constants.js +1 -1
  85. package/navigation/constants.mjs +8 -9
  86. package/navigation/hooks.js +2 -1
  87. package/navigation/hooks.mjs +5 -5
  88. package/navigation/utils.js +1 -1
  89. package/navigation/utils.mjs +0 -1
  90. package/package-metadata.js +1 -1
  91. package/package-metadata.mjs +2 -3
  92. package/package.json +10 -10
  93. package/pager/Pager.js +2 -1
  94. package/pager/PagerInput.js +2 -1
  95. package/pager/PagerNumericButtons.js +2 -1
  96. package/pager/PagerNumericButtons.mjs +9 -9
  97. package/pager/PagerPageSizes.js +2 -1
  98. package/pager/PagerPageSizes.mjs +3 -3
  99. package/pager/utils.js +1 -1
  100. package/pager/utils.mjs +2 -3
  101. package/selection/TableSelection.js +2 -1
  102. package/selection/constants.js +1 -1
  103. package/selection/constants.mjs +0 -1
  104. package/selection/utils.js +1 -1
  105. package/selection/utils.mjs +63 -63
  106. package/utils/data-operations.js +1 -1
  107. package/utils/data-operations.mjs +82 -67
  108. package/utils/group-operations.js +1 -1
  109. package/utils/group-operations.mjs +7 -8
  110. package/virtualization/columns.js +1 -1
  111. package/virtualization/columns.mjs +19 -15
package/index.d.mts CHANGED
@@ -17,7 +17,6 @@ import { JSX as JSX_2 } from 'react/jsx-runtime';
17
17
  import * as React_2 from 'react';
18
18
  import { SortDescriptor } from '@progress/kendo-data-query';
19
19
  import { SVGIcon } from '@progress/kendo-react-common';
20
- import { TableSelectableMode as TableSelectableMode_2 } from './TableSelectableSettings';
21
20
 
22
21
  /**
23
22
  * Represents the base object of the `onPageChange` event. It is usually used
@@ -109,6 +108,8 @@ export declare interface CellProps {
109
108
  * Indicates if the cell is selected.
110
109
  */
111
110
  isSelected: boolean;
111
+ /** @hidden */
112
+ isInEdit?: boolean;
112
113
  /**
113
114
  * Indicates if the cell is sorted.
114
115
  */
@@ -651,6 +652,9 @@ export declare interface ColumnSortSettings {
651
652
  allowUnsort?: boolean;
652
653
  }
653
654
 
655
+ /** @hidden */
656
+ export declare const combineFilters: (first?: CompositeFilterDescriptor, second?: CompositeFilterDescriptor) => CompositeFilterDescriptor | undefined;
657
+
654
658
  /**
655
659
  * @hidden
656
660
  */
@@ -742,6 +746,32 @@ declare const DateFilterCell_base: React_2.ComponentClass<FilterComponentProps_2
742
746
  export declare interface DateFilterProps extends TextFilterProps {
743
747
  }
744
748
 
749
+ /** @hidden */
750
+ export declare enum DETAIL_EXPAND_ACTION {
751
+ DETAIL_EXPAND = "DETAIL_EXPAND_DETAIL_EXPAND",
752
+ COLLAPSE = "DETAIL_EXPAND_COLLAPSE",
753
+ TOGGLE = "DETAIL_EXPAND_TOGGLE",
754
+ SET = "DETAIL_EXPAND_SET"
755
+ }
756
+
757
+ /** @hidden */
758
+ export declare type DetailExpandAction = {
759
+ type: DETAIL_EXPAND_ACTION.TOGGLE | DETAIL_EXPAND_ACTION.DETAIL_EXPAND | DETAIL_EXPAND_ACTION.COLLAPSE;
760
+ id: string;
761
+ } | {
762
+ type: DETAIL_EXPAND_ACTION.SET;
763
+ id: string;
764
+ payload: boolean;
765
+ };
766
+
767
+ /** @hidden */
768
+ export declare type DetailExpandDescriptor = {
769
+ [id: string]: boolean;
770
+ };
771
+
772
+ /** @hidden */
773
+ export declare const detailExpandReducer: (state: DetailExpandDescriptor, action: DetailExpandAction) => DetailExpandDescriptor;
774
+
745
775
  /**
746
776
  * @hidden
747
777
  */
@@ -785,6 +815,67 @@ declare interface DropClueState {
785
815
  height: number;
786
816
  }
787
817
 
818
+ /**
819
+ * @hidden
820
+ */
821
+ export declare enum EDIT_ACTION {
822
+ ENTER_EDIT = "EDITING_ENTER_EDIT",
823
+ ENTER_FIELD_EDIT = "EDITING_ENTER_FIELD_EDIT",
824
+ ADD_EDIT = "EDITING_ADD_EDIT",
825
+ ADD_FIELD_EDIT = "EDITING_ADD_FIELD_EDIT",
826
+ EXIT_EDIT = "EDITING_EXIT_EDIT",
827
+ EXIT_FIELD_EDIT = "EDITING_EXIT_FIELD_EDIT",
828
+ TOGGLE_EDIT = "EDITING_TOGGLE_EDIT",
829
+ TOGGLE_FIELD_EDIT = "EDITING_TOGGLE_FIELD_EDIT"
830
+ }
831
+
832
+ /**
833
+ * @hidden
834
+ */
835
+ export declare type EditAction = {
836
+ type: EDIT_ACTION.ENTER_EDIT | EDIT_ACTION.ADD_EDIT | EDIT_ACTION.EXIT_EDIT | EDIT_ACTION.TOGGLE_EDIT;
837
+ payload: {
838
+ id: string;
839
+ };
840
+ } | {
841
+ type: EDIT_ACTION.ENTER_FIELD_EDIT | EDIT_ACTION.ADD_FIELD_EDIT | EDIT_ACTION.EXIT_FIELD_EDIT | EDIT_ACTION.TOGGLE_FIELD_EDIT;
842
+ payload: {
843
+ id: string;
844
+ field: string;
845
+ };
846
+ };
847
+
848
+ /**
849
+ * The `edit` descriptor used to identify which data-items are in edit mode.
850
+ * TODO: uncomment
851
+ *
852
+ * @hidden
853
+ * @example
854
+ * ```ts
855
+ * const data = [
856
+ * { id: 0, name: 'Jane Doe' },
857
+ * { id: 1, name: 'John Doe' }
858
+ * ]
859
+ *
860
+ * const edit = {
861
+ * 1: true
862
+ * }
863
+ * ```
864
+ */
865
+ export declare type EditDescriptor = {
866
+ /**
867
+ * The data-item id is in edit mode.
868
+ * If the value is `true` if the whole item (row) is in edit mode.
869
+ * If the value is an array of strings if only specific fields (cells) are in edit mode.
870
+ */
871
+ [id: string]: boolean | string[];
872
+ };
873
+
874
+ /**
875
+ * @hidden
876
+ */
877
+ export declare const editReducer: (state: EditDescriptor | undefined, action: EditAction) => EditDescriptor;
878
+
788
879
  /**
789
880
  * The EnumFilter component used for editing the value of FilterDescriptor object.
790
881
  * It renders a DropDownList and allows you to choose a value from the predefined list.
@@ -1135,14 +1226,31 @@ export declare interface FilterRowProps {
1135
1226
  ariaRowIndex?: number;
1136
1227
  }
1137
1228
 
1229
+ /** @hidden */
1230
+ export declare const findGroupExpand: (groupExpand: GroupExpandDescriptor[], group: GroupState) => GroupExpandDescriptor | undefined;
1231
+
1138
1232
  /**
1139
1233
  * @hidden
1140
1234
  */
1141
1235
  export declare function flatData(data: any[], getChildren: (dataItem: any) => any[], itemMap: (item: any) => any): DataItemWrapper[];
1142
1236
 
1237
+ /** @hidden */
1238
+ export declare const flatToTree: (flat: GroupState[]) => GroupExpandDescriptor[];
1239
+
1143
1240
  /** @hidden */
1144
1241
  export declare const getColumnIndex: (element: HTMLTableCellElement) => number | undefined;
1145
1242
 
1243
+ /** @hidden */
1244
+ export declare const getDetailExpandableOptions: (expandable?: boolean | TableExpandableSettings) => TableExpandableSettings;
1245
+
1246
+ /**
1247
+ * @hidden
1248
+ */
1249
+ export declare const getEditableOptions: (editable?: boolean | TableEditableSettings) => Required<TableEditableSettings>;
1250
+
1251
+ /** @hidden */
1252
+ export declare const getGroupExpandableOptions: (groupExpandable?: boolean | TableGroupExpandableSettings) => TableGroupExpandableSettings;
1253
+
1146
1254
  /**
1147
1255
  * Get all group ids from the data.
1148
1256
  *
@@ -1174,6 +1282,9 @@ export declare const getOffset: (offsetParent: any) => any;
1174
1282
  /** @hidden */
1175
1283
  export declare const getRowIndex: (element: HTMLTableRowElement) => number | undefined;
1176
1284
 
1285
+ /** @hidden */
1286
+ export declare const getSearchFromString: (search: CompositeFilterDescriptor, value: string) => CompositeFilterDescriptor;
1287
+
1177
1288
  /**
1178
1289
  * Get selected state from the component selection event.
1179
1290
  *
@@ -1207,12 +1318,10 @@ export declare const getSelectedStateFromKeyDown: (options: {
1207
1318
  };
1208
1319
 
1209
1320
  /** @hidden */
1210
- export declare const getSelectionOptions: (selectable?: TableSelectableSettings) => {
1211
- enabled: boolean;
1212
- drag: boolean;
1213
- mode: TableSelectableMode_2;
1214
- cell: boolean;
1215
- };
1321
+ export declare const getSelectionOptions: (selectable?: boolean | TableSelectableSettings) => Required<TableSelectableSettings>;
1322
+
1323
+ /** @hidden */
1324
+ export declare const getStringFromSearch: (search: CompositeFilterDescriptor | undefined) => string;
1216
1325
 
1217
1326
  /**
1218
1327
  * @hidden
@@ -1239,6 +1348,14 @@ export declare class Group extends React_2.Component<GroupProps> {
1239
1348
  private onRemove;
1240
1349
  }
1241
1350
 
1351
+ /** @hidden */
1352
+ export declare enum GROUP_EXPAND_ACTION {
1353
+ TOGGLE = "GROUP-EXPAND_TOGGLE",
1354
+ EXPAND = "GROUP-EXPAND_EXPAND",
1355
+ COLLAPSE = "GROUP-EXPAND_COLLAPSE",
1356
+ RESET = "GROUP-EXPAND_RESET"
1357
+ }
1358
+
1242
1359
  /**
1243
1360
  * @hidden
1244
1361
  */
@@ -1247,6 +1364,23 @@ export declare interface GroupChangeEvent extends BaseEvent<Group> {
1247
1364
  nextFilter: CompositeFilterDescriptor;
1248
1365
  }
1249
1366
 
1367
+ /** @hidden */
1368
+ export declare type GroupExpandAction = {
1369
+ type: GROUP_EXPAND_ACTION;
1370
+ group: GroupState;
1371
+ };
1372
+
1373
+ /** @hidden */
1374
+ export declare type GroupExpandDescriptor = {
1375
+ value: any;
1376
+ field: string;
1377
+ expanded?: boolean;
1378
+ groups?: GroupExpandDescriptor[];
1379
+ };
1380
+
1381
+ /** @hidden */
1382
+ export declare const groupExpandReducer: (state: GroupExpandDescriptor[], action: GroupExpandAction, options?: TableGroupExpandableSettings) => GroupExpandDescriptor[];
1383
+
1250
1384
  /**
1251
1385
  * @hidden
1252
1386
  */
@@ -1267,6 +1401,14 @@ export declare interface GroupRemoveEvent extends BaseEvent<Group> {
1267
1401
  filter: CompositeFilterDescriptor;
1268
1402
  }
1269
1403
 
1404
+ /** @hidden */
1405
+ export declare type GroupState = {
1406
+ value: any;
1407
+ field: string;
1408
+ expanded?: boolean;
1409
+ parents?: GroupState[];
1410
+ };
1411
+
1270
1412
  /**
1271
1413
  * @hidden
1272
1414
  */
@@ -1425,6 +1567,9 @@ export declare interface HeaderThElementProps extends React_2.ThHTMLAttributes<H
1425
1567
  navigatable?: boolean;
1426
1568
  }
1427
1569
 
1570
+ /** @hidden */
1571
+ export declare const isExpanded: (groupExpand: GroupExpandDescriptor[], group: GroupState) => boolean;
1572
+
1428
1573
  /** @hidden */
1429
1574
  export declare const isInNonSelectable: (target: HTMLElement | null) => boolean;
1430
1575
 
@@ -1868,6 +2013,32 @@ export declare const relativeContextElement: (element: any) => any;
1868
2013
  */
1869
2014
  export declare const removeItems: (data: any[], subItemsField: string, condition: (item: any) => boolean) => any[];
1870
2015
 
2016
+ /**
2017
+ * Represents the SearchField that configures the way a data field is searched.
2018
+ */
2019
+ export declare interface SearchField {
2020
+ /**
2021
+ * The name of the searched field.
2022
+ */
2023
+ field: string;
2024
+ /**
2025
+ * The string operator that will be used for search.
2026
+ */
2027
+ operator?: string;
2028
+ /**
2029
+ * Defines if the search is case sensitive.
2030
+ */
2031
+ ignoreCase?: boolean;
2032
+ }
2033
+
2034
+ /**
2035
+ * @hidden
2036
+ * TODO: document
2037
+ */
2038
+ export declare type SelectDescriptor = {
2039
+ [id: string]: boolean | number[];
2040
+ };
2041
+
1871
2042
  /**
1872
2043
  * @hidden
1873
2044
  */
@@ -1951,6 +2122,8 @@ export declare function tableColumnsVirtualization(args: {
1951
2122
  }[];
1952
2123
  tableViewPortWidth: number;
1953
2124
  scrollLeft: number;
2125
+ getColSpan?: any;
2126
+ dataItem?: any;
1954
2127
  }): {
1955
2128
  colSpans: number[];
1956
2129
  hiddenColumns: boolean[];
@@ -2008,6 +2181,37 @@ export declare interface TableDragSelectionReleaseEvent {
2008
2181
  isDrag: boolean;
2009
2182
  }
2010
2183
 
2184
+ /** @hidden */
2185
+ export declare interface TableEditableSettings {
2186
+ /**
2187
+ * Determines if the editing is enabled.
2188
+ *
2189
+ * @default false
2190
+ */
2191
+ enabled?: boolean;
2192
+ /**
2193
+ * Determines the editing mode.
2194
+ * The available values are:
2195
+ * * `inline`
2196
+ * * `incell`
2197
+ *
2198
+ * @default 'incell
2199
+ */
2200
+ mode?: 'inline' | 'incell';
2201
+ }
2202
+
2203
+ /** @hidden */
2204
+ export declare type TableExpandableSettings = {
2205
+ enabled?: boolean;
2206
+ column?: string;
2207
+ };
2208
+
2209
+ /** @hidden */
2210
+ export declare type TableGroupExpandableSettings = {
2211
+ enabled?: boolean;
2212
+ defaultExpand?: boolean;
2213
+ };
2214
+
2011
2215
  /**
2012
2216
  * @hidden
2013
2217
  */
@@ -2084,9 +2288,7 @@ export declare const tableKeyboardNavigation: {
2084
2288
  focusFirstDataElement: (options: {
2085
2289
  scope?: HTMLElement | undefined;
2086
2290
  contextStateRef: {
2087
- current?: TableKeyboardNavigationContextType | undefined; /**
2088
- * @hidden
2089
- */
2291
+ current?: TableKeyboardNavigationContextType | undefined;
2090
2292
  };
2091
2293
  navigationStateRef: {
2092
2294
  current?: TableKeyboardNavigationStateType | undefined;
@@ -2417,7 +2619,7 @@ export declare const unaryOperator: (operator: any) => boolean;
2417
2619
  */
2418
2620
  export declare function updateLeft(columnsMap: number[][], columns: Array<{
2419
2621
  parentIndex: number;
2420
- colSpan: number;
2622
+ colSpan?: number;
2421
2623
  rowSpan: number;
2422
2624
  depth: number;
2423
2625
  kFirst?: boolean;
@@ -2436,7 +2638,7 @@ export declare function updateLeft(columnsMap: number[][], columns: Array<{
2436
2638
  */
2437
2639
  export declare function updateRight(columnsMap: number[][], columns: Array<{
2438
2640
  parentIndex: number;
2439
- colSpan: number;
2641
+ colSpan?: number;
2440
2642
  rowSpan: number;
2441
2643
  depth: number;
2442
2644
  kFirst?: boolean;
package/index.d.ts CHANGED
@@ -17,7 +17,6 @@ import { JSX as JSX_2 } from 'react/jsx-runtime';
17
17
  import * as React_2 from 'react';
18
18
  import { SortDescriptor } from '@progress/kendo-data-query';
19
19
  import { SVGIcon } from '@progress/kendo-react-common';
20
- import { TableSelectableMode as TableSelectableMode_2 } from './TableSelectableSettings';
21
20
 
22
21
  /**
23
22
  * Represents the base object of the `onPageChange` event. It is usually used
@@ -109,6 +108,8 @@ export declare interface CellProps {
109
108
  * Indicates if the cell is selected.
110
109
  */
111
110
  isSelected: boolean;
111
+ /** @hidden */
112
+ isInEdit?: boolean;
112
113
  /**
113
114
  * Indicates if the cell is sorted.
114
115
  */
@@ -651,6 +652,9 @@ export declare interface ColumnSortSettings {
651
652
  allowUnsort?: boolean;
652
653
  }
653
654
 
655
+ /** @hidden */
656
+ export declare const combineFilters: (first?: CompositeFilterDescriptor, second?: CompositeFilterDescriptor) => CompositeFilterDescriptor | undefined;
657
+
654
658
  /**
655
659
  * @hidden
656
660
  */
@@ -742,6 +746,32 @@ declare const DateFilterCell_base: React_2.ComponentClass<FilterComponentProps_2
742
746
  export declare interface DateFilterProps extends TextFilterProps {
743
747
  }
744
748
 
749
+ /** @hidden */
750
+ export declare enum DETAIL_EXPAND_ACTION {
751
+ DETAIL_EXPAND = "DETAIL_EXPAND_DETAIL_EXPAND",
752
+ COLLAPSE = "DETAIL_EXPAND_COLLAPSE",
753
+ TOGGLE = "DETAIL_EXPAND_TOGGLE",
754
+ SET = "DETAIL_EXPAND_SET"
755
+ }
756
+
757
+ /** @hidden */
758
+ export declare type DetailExpandAction = {
759
+ type: DETAIL_EXPAND_ACTION.TOGGLE | DETAIL_EXPAND_ACTION.DETAIL_EXPAND | DETAIL_EXPAND_ACTION.COLLAPSE;
760
+ id: string;
761
+ } | {
762
+ type: DETAIL_EXPAND_ACTION.SET;
763
+ id: string;
764
+ payload: boolean;
765
+ };
766
+
767
+ /** @hidden */
768
+ export declare type DetailExpandDescriptor = {
769
+ [id: string]: boolean;
770
+ };
771
+
772
+ /** @hidden */
773
+ export declare const detailExpandReducer: (state: DetailExpandDescriptor, action: DetailExpandAction) => DetailExpandDescriptor;
774
+
745
775
  /**
746
776
  * @hidden
747
777
  */
@@ -785,6 +815,67 @@ declare interface DropClueState {
785
815
  height: number;
786
816
  }
787
817
 
818
+ /**
819
+ * @hidden
820
+ */
821
+ export declare enum EDIT_ACTION {
822
+ ENTER_EDIT = "EDITING_ENTER_EDIT",
823
+ ENTER_FIELD_EDIT = "EDITING_ENTER_FIELD_EDIT",
824
+ ADD_EDIT = "EDITING_ADD_EDIT",
825
+ ADD_FIELD_EDIT = "EDITING_ADD_FIELD_EDIT",
826
+ EXIT_EDIT = "EDITING_EXIT_EDIT",
827
+ EXIT_FIELD_EDIT = "EDITING_EXIT_FIELD_EDIT",
828
+ TOGGLE_EDIT = "EDITING_TOGGLE_EDIT",
829
+ TOGGLE_FIELD_EDIT = "EDITING_TOGGLE_FIELD_EDIT"
830
+ }
831
+
832
+ /**
833
+ * @hidden
834
+ */
835
+ export declare type EditAction = {
836
+ type: EDIT_ACTION.ENTER_EDIT | EDIT_ACTION.ADD_EDIT | EDIT_ACTION.EXIT_EDIT | EDIT_ACTION.TOGGLE_EDIT;
837
+ payload: {
838
+ id: string;
839
+ };
840
+ } | {
841
+ type: EDIT_ACTION.ENTER_FIELD_EDIT | EDIT_ACTION.ADD_FIELD_EDIT | EDIT_ACTION.EXIT_FIELD_EDIT | EDIT_ACTION.TOGGLE_FIELD_EDIT;
842
+ payload: {
843
+ id: string;
844
+ field: string;
845
+ };
846
+ };
847
+
848
+ /**
849
+ * The `edit` descriptor used to identify which data-items are in edit mode.
850
+ * TODO: uncomment
851
+ *
852
+ * @hidden
853
+ * @example
854
+ * ```ts
855
+ * const data = [
856
+ * { id: 0, name: 'Jane Doe' },
857
+ * { id: 1, name: 'John Doe' }
858
+ * ]
859
+ *
860
+ * const edit = {
861
+ * 1: true
862
+ * }
863
+ * ```
864
+ */
865
+ export declare type EditDescriptor = {
866
+ /**
867
+ * The data-item id is in edit mode.
868
+ * If the value is `true` if the whole item (row) is in edit mode.
869
+ * If the value is an array of strings if only specific fields (cells) are in edit mode.
870
+ */
871
+ [id: string]: boolean | string[];
872
+ };
873
+
874
+ /**
875
+ * @hidden
876
+ */
877
+ export declare const editReducer: (state: EditDescriptor | undefined, action: EditAction) => EditDescriptor;
878
+
788
879
  /**
789
880
  * The EnumFilter component used for editing the value of FilterDescriptor object.
790
881
  * It renders a DropDownList and allows you to choose a value from the predefined list.
@@ -1135,14 +1226,31 @@ export declare interface FilterRowProps {
1135
1226
  ariaRowIndex?: number;
1136
1227
  }
1137
1228
 
1229
+ /** @hidden */
1230
+ export declare const findGroupExpand: (groupExpand: GroupExpandDescriptor[], group: GroupState) => GroupExpandDescriptor | undefined;
1231
+
1138
1232
  /**
1139
1233
  * @hidden
1140
1234
  */
1141
1235
  export declare function flatData(data: any[], getChildren: (dataItem: any) => any[], itemMap: (item: any) => any): DataItemWrapper[];
1142
1236
 
1237
+ /** @hidden */
1238
+ export declare const flatToTree: (flat: GroupState[]) => GroupExpandDescriptor[];
1239
+
1143
1240
  /** @hidden */
1144
1241
  export declare const getColumnIndex: (element: HTMLTableCellElement) => number | undefined;
1145
1242
 
1243
+ /** @hidden */
1244
+ export declare const getDetailExpandableOptions: (expandable?: boolean | TableExpandableSettings) => TableExpandableSettings;
1245
+
1246
+ /**
1247
+ * @hidden
1248
+ */
1249
+ export declare const getEditableOptions: (editable?: boolean | TableEditableSettings) => Required<TableEditableSettings>;
1250
+
1251
+ /** @hidden */
1252
+ export declare const getGroupExpandableOptions: (groupExpandable?: boolean | TableGroupExpandableSettings) => TableGroupExpandableSettings;
1253
+
1146
1254
  /**
1147
1255
  * Get all group ids from the data.
1148
1256
  *
@@ -1174,6 +1282,9 @@ export declare const getOffset: (offsetParent: any) => any;
1174
1282
  /** @hidden */
1175
1283
  export declare const getRowIndex: (element: HTMLTableRowElement) => number | undefined;
1176
1284
 
1285
+ /** @hidden */
1286
+ export declare const getSearchFromString: (search: CompositeFilterDescriptor, value: string) => CompositeFilterDescriptor;
1287
+
1177
1288
  /**
1178
1289
  * Get selected state from the component selection event.
1179
1290
  *
@@ -1207,12 +1318,10 @@ export declare const getSelectedStateFromKeyDown: (options: {
1207
1318
  };
1208
1319
 
1209
1320
  /** @hidden */
1210
- export declare const getSelectionOptions: (selectable?: TableSelectableSettings) => {
1211
- enabled: boolean;
1212
- drag: boolean;
1213
- mode: TableSelectableMode_2;
1214
- cell: boolean;
1215
- };
1321
+ export declare const getSelectionOptions: (selectable?: boolean | TableSelectableSettings) => Required<TableSelectableSettings>;
1322
+
1323
+ /** @hidden */
1324
+ export declare const getStringFromSearch: (search: CompositeFilterDescriptor | undefined) => string;
1216
1325
 
1217
1326
  /**
1218
1327
  * @hidden
@@ -1239,6 +1348,14 @@ export declare class Group extends React_2.Component<GroupProps> {
1239
1348
  private onRemove;
1240
1349
  }
1241
1350
 
1351
+ /** @hidden */
1352
+ export declare enum GROUP_EXPAND_ACTION {
1353
+ TOGGLE = "GROUP-EXPAND_TOGGLE",
1354
+ EXPAND = "GROUP-EXPAND_EXPAND",
1355
+ COLLAPSE = "GROUP-EXPAND_COLLAPSE",
1356
+ RESET = "GROUP-EXPAND_RESET"
1357
+ }
1358
+
1242
1359
  /**
1243
1360
  * @hidden
1244
1361
  */
@@ -1247,6 +1364,23 @@ export declare interface GroupChangeEvent extends BaseEvent<Group> {
1247
1364
  nextFilter: CompositeFilterDescriptor;
1248
1365
  }
1249
1366
 
1367
+ /** @hidden */
1368
+ export declare type GroupExpandAction = {
1369
+ type: GROUP_EXPAND_ACTION;
1370
+ group: GroupState;
1371
+ };
1372
+
1373
+ /** @hidden */
1374
+ export declare type GroupExpandDescriptor = {
1375
+ value: any;
1376
+ field: string;
1377
+ expanded?: boolean;
1378
+ groups?: GroupExpandDescriptor[];
1379
+ };
1380
+
1381
+ /** @hidden */
1382
+ export declare const groupExpandReducer: (state: GroupExpandDescriptor[], action: GroupExpandAction, options?: TableGroupExpandableSettings) => GroupExpandDescriptor[];
1383
+
1250
1384
  /**
1251
1385
  * @hidden
1252
1386
  */
@@ -1267,6 +1401,14 @@ export declare interface GroupRemoveEvent extends BaseEvent<Group> {
1267
1401
  filter: CompositeFilterDescriptor;
1268
1402
  }
1269
1403
 
1404
+ /** @hidden */
1405
+ export declare type GroupState = {
1406
+ value: any;
1407
+ field: string;
1408
+ expanded?: boolean;
1409
+ parents?: GroupState[];
1410
+ };
1411
+
1270
1412
  /**
1271
1413
  * @hidden
1272
1414
  */
@@ -1425,6 +1567,9 @@ export declare interface HeaderThElementProps extends React_2.ThHTMLAttributes<H
1425
1567
  navigatable?: boolean;
1426
1568
  }
1427
1569
 
1570
+ /** @hidden */
1571
+ export declare const isExpanded: (groupExpand: GroupExpandDescriptor[], group: GroupState) => boolean;
1572
+
1428
1573
  /** @hidden */
1429
1574
  export declare const isInNonSelectable: (target: HTMLElement | null) => boolean;
1430
1575
 
@@ -1868,6 +2013,32 @@ export declare const relativeContextElement: (element: any) => any;
1868
2013
  */
1869
2014
  export declare const removeItems: (data: any[], subItemsField: string, condition: (item: any) => boolean) => any[];
1870
2015
 
2016
+ /**
2017
+ * Represents the SearchField that configures the way a data field is searched.
2018
+ */
2019
+ export declare interface SearchField {
2020
+ /**
2021
+ * The name of the searched field.
2022
+ */
2023
+ field: string;
2024
+ /**
2025
+ * The string operator that will be used for search.
2026
+ */
2027
+ operator?: string;
2028
+ /**
2029
+ * Defines if the search is case sensitive.
2030
+ */
2031
+ ignoreCase?: boolean;
2032
+ }
2033
+
2034
+ /**
2035
+ * @hidden
2036
+ * TODO: document
2037
+ */
2038
+ export declare type SelectDescriptor = {
2039
+ [id: string]: boolean | number[];
2040
+ };
2041
+
1871
2042
  /**
1872
2043
  * @hidden
1873
2044
  */
@@ -1951,6 +2122,8 @@ export declare function tableColumnsVirtualization(args: {
1951
2122
  }[];
1952
2123
  tableViewPortWidth: number;
1953
2124
  scrollLeft: number;
2125
+ getColSpan?: any;
2126
+ dataItem?: any;
1954
2127
  }): {
1955
2128
  colSpans: number[];
1956
2129
  hiddenColumns: boolean[];
@@ -2008,6 +2181,37 @@ export declare interface TableDragSelectionReleaseEvent {
2008
2181
  isDrag: boolean;
2009
2182
  }
2010
2183
 
2184
+ /** @hidden */
2185
+ export declare interface TableEditableSettings {
2186
+ /**
2187
+ * Determines if the editing is enabled.
2188
+ *
2189
+ * @default false
2190
+ */
2191
+ enabled?: boolean;
2192
+ /**
2193
+ * Determines the editing mode.
2194
+ * The available values are:
2195
+ * * `inline`
2196
+ * * `incell`
2197
+ *
2198
+ * @default 'incell
2199
+ */
2200
+ mode?: 'inline' | 'incell';
2201
+ }
2202
+
2203
+ /** @hidden */
2204
+ export declare type TableExpandableSettings = {
2205
+ enabled?: boolean;
2206
+ column?: string;
2207
+ };
2208
+
2209
+ /** @hidden */
2210
+ export declare type TableGroupExpandableSettings = {
2211
+ enabled?: boolean;
2212
+ defaultExpand?: boolean;
2213
+ };
2214
+
2011
2215
  /**
2012
2216
  * @hidden
2013
2217
  */
@@ -2084,9 +2288,7 @@ export declare const tableKeyboardNavigation: {
2084
2288
  focusFirstDataElement: (options: {
2085
2289
  scope?: HTMLElement | undefined;
2086
2290
  contextStateRef: {
2087
- current?: TableKeyboardNavigationContextType | undefined; /**
2088
- * @hidden
2089
- */
2291
+ current?: TableKeyboardNavigationContextType | undefined;
2090
2292
  };
2091
2293
  navigationStateRef: {
2092
2294
  current?: TableKeyboardNavigationStateType | undefined;
@@ -2417,7 +2619,7 @@ export declare const unaryOperator: (operator: any) => boolean;
2417
2619
  */
2418
2620
  export declare function updateLeft(columnsMap: number[][], columns: Array<{
2419
2621
  parentIndex: number;
2420
- colSpan: number;
2622
+ colSpan?: number;
2421
2623
  rowSpan: number;
2422
2624
  depth: number;
2423
2625
  kFirst?: boolean;
@@ -2436,7 +2638,7 @@ export declare function updateLeft(columnsMap: number[][], columns: Array<{
2436
2638
  */
2437
2639
  export declare function updateRight(columnsMap: number[][], columns: Array<{
2438
2640
  parentIndex: number;
2439
- colSpan: number;
2641
+ colSpan?: number;
2440
2642
  rowSpan: number;
2441
2643
  depth: number;
2442
2644
  kFirst?: boolean;