ods-component-lib 1.18.143 → 1.18.145

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.
@@ -3,7 +3,7 @@ import { IInlineEditDataGridProps } from "./types";
3
3
  import * as InlineEditDataGridTypes from "./types";
4
4
  /**
5
5
  * OdsInlineEditDataGrid component.
6
- * @param {IVirtualDataGridProps} props - The component props.
6
+ * @param {IInlineEditDataGridProps} props - The component props.
7
7
  * @returns {React.FC} - The rendered component.
8
8
  */
9
9
  declare const OdsInlineEditDataGrid: React.FC<IInlineEditDataGridProps>;
@@ -1,14 +1,18 @@
1
+ import { MutableRefObject } from "react";
1
2
  import { ContentReadyEvent } from "devextreme/ui/data_grid";
2
3
  import { IColumnOptions } from "../types";
3
4
  /**
4
5
  * Custom hook to handle content ready events for the data grid.
5
- * @param {React.MutableRefObject<any>} lastPageIndexRef - Reference to the last page index.
6
- * @param {boolean} contentReady - Boolean indicating if the content is ready.
7
- * @param {Function} setRowCount - Function to set the row count state
8
- * @param {Function} setContentReady - Function to set the content ready state.
9
- * @param {Function} setCurrentPage - Function to set the current page state.
10
- * @param {Function} setCurrentPageSize - Function to set the current page size state.
6
+ * @param {IColumnOptions[]} columns - The column options for the data grid.
7
+ * @param {MutableRefObject<any>} lastPageIndexRef - Reference to the last page index.
8
+ * @param {boolean} filterApplied - Boolean indicating if a filter is applied.
9
+ * @param {MutableRefObject<number>} totalFilteredCount - Reference to the total filtered count.
10
+ * @param {MutableRefObject<number>} totalUnfilteredCount - Reference to the total unfiltered count.
11
+ * @param {Function} setUpdateTrigger - Function to set the update trigger.
12
+ * @param {Function} setCurrentPage - Function to set the current page.
13
+ * @param {Function} setCurrentPageSize - Function to set the current page size.
14
+ * @param {Function} setHeaderFilterData - Function to set the header filter data.
11
15
  * @param {Function} [callback] - Optional callback function.
12
16
  * @returns {(e: ContentReadyEvent<any, any>) => void} handleContentReady - Handler for content ready event.
13
17
  */
14
- export declare const useOnContentReadyHandler: (lastPageIndexRef: React.MutableRefObject<any>, contentReady: boolean, columns: IColumnOptions[], setRowCount: Function, setContentReady: Function, setCurrentPage: Function, setCurrentPageSize: Function, setHeaderFilterData: Function, callback?: Function) => (e: ContentReadyEvent<any, any>) => void;
18
+ export declare const useOnContentReadyHandler: (columns: IColumnOptions[], lastPageIndexRef: MutableRefObject<number>, filterApplied: boolean, totalFilteredCount: MutableRefObject<number>, totalUnfilteredCount: MutableRefObject<number>, setUpdateTrigger: Function, setCurrentPage: Function, setCurrentPageSize: Function, setHeaderFilterData: Function, callback: Function) => (e: ContentReadyEvent<any, any>) => void;
@@ -4,7 +4,7 @@ import { IExportOptions } from "../types";
4
4
  *
5
5
  * @param {IExportOptions} exportProps - The export options for the data grid.
6
6
  * @param {Function} callback - The callback function to be executed after exporting.
7
- * @param {() => string} getSummary - The callback function to get the summary.
7
+ * @param {() => string} getSummary - The callback function to get the summary info.
8
8
  * @returns {Function} - The onExporting event handler function.
9
9
  */
10
10
  export declare const useOnExportingHandler: (exportProps: IExportOptions, getSummary: () => string, callback: Function) => (e: any) => void;
@@ -1,7 +1,12 @@
1
+ import { MutableRefObject } from "react";
1
2
  /**
2
3
  * Custom hook to handle option change events for the data grid.
3
- * @param {React.RefObject} dataGridRef - The ref object for the data grid.
4
+ * @param {MutableRefObject<any>} dataGridRef - The ref object for the data grid.
5
+ * @param {MutableRefObject<number>} totalFilteredCount - The ref object for the total filtered count.
6
+ * @param {any} sortingProps - The sorting properties.
4
7
  * @param {Function} setFilterApplied - Function to set the filter applied state.
8
+ * @param {Function} setUpdateTrigger - Function to set the update trigger state.
9
+ * @param {Function} callback - The callback function to be called.
5
10
  * @returns {Function} - Handler function for option changed event.
6
11
  */
7
- export declare const useOnOptionChangedHandler: (dataGridRef: any, setFilterApplied: any, callback: any) => (e: any) => void;
12
+ export declare const useOnOptionChangedHandler: (dataGridRef: MutableRefObject<any>, totalFilteredCount: MutableRefObject<number>, sortingProps: any, setFilterApplied: Function, setUpdateTrigger: Function, callback: Function) => (e: any) => void;
@@ -1,13 +1,16 @@
1
+ import { MutableRefObject } from "react";
1
2
  import type { ISummaryRowOptions } from "../types";
3
+ /**
4
+ * Props interface for the useOnSummaryHandler hook.
5
+ */
2
6
  interface IUseSummaryHandlersProps {
3
7
  customSummary?: ISummaryRowOptions;
4
8
  totalRecordCount: number;
5
9
  currentPageSize: number;
6
10
  currentPage: number;
7
11
  filterApplied: boolean;
8
- rowCount: number;
9
- filteredRowCount: number;
10
- isServerSide?: boolean;
12
+ totalFilteredCount: MutableRefObject<number>;
13
+ totalUnfilteredCount: MutableRefObject<number>;
11
14
  }
12
15
  /**
13
16
  * Custom hook that provides summary handler for a data grid.
@@ -15,7 +18,7 @@ interface IUseSummaryHandlersProps {
15
18
  * @param {IUseSummaryHandlersProps} props - The props object containing necessary parameters.
16
19
  * @returns {Object} - An object containing the renderTotal function.
17
20
  */
18
- export declare const useOnSummaryHandler: ({ customSummary, totalRecordCount, currentPageSize, currentPage, filterApplied, rowCount, filteredRowCount, }: IUseSummaryHandlersProps) => {
21
+ export declare const useOnSummaryHandler: ({ customSummary, totalRecordCount, currentPageSize, currentPage, filterApplied, totalFilteredCount, totalUnfilteredCount, }: IUseSummaryHandlersProps) => {
19
22
  renderTotal: () => string | null;
20
23
  };
21
24
  export {};
@@ -26,6 +26,8 @@ export interface IExportOptions extends Partial<IExportProps> {
26
26
  allowExportSelectedData?: boolean;
27
27
  fileName?: string;
28
28
  selectedText?: string;
29
+ activeText?: string;
30
+ passiveText?: string;
29
31
  }
30
32
  /**
31
33
  * Represents the configuration for a toolbar button.
package/dist/index.js CHANGED
@@ -33748,8 +33748,8 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33748
33748
  };
33749
33749
  var actionButtons = React.useMemo(function () {
33750
33750
  if (props.actionButtonGroup) {
33751
- if (props.actionButtonGroup.length >= 3 && !props.edit) {
33752
- return props.actionButtonGroup.slice(0, 3);
33751
+ if (props.actionButtonGroup.length > 3 && !props.edit) {
33752
+ return props.actionButtonGroup.slice(0, 2);
33753
33753
  } else {
33754
33754
  return props.actionButtonGroup;
33755
33755
  }
@@ -33830,7 +33830,7 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33830
33830
  return result;
33831
33831
  }, [data, filteredRowCount, constants.loadedPageCount, props.pageSize, constants.totalRecordCount, filterApplied.current]);
33832
33832
  function actionCellRender(cellData, props) {
33833
- var kebabMenuButtons = props.actionButtonGroup && props.actionButtonGroup.length >= 3 && !props.edit ? props.actionButtonGroup.slice(3).map(function (button) {
33833
+ var kebabMenuButtons = props.actionButtonGroup && props.actionButtonGroup.length > 3 && !props.edit ? props.actionButtonGroup.slice(2).map(function (button) {
33834
33834
  return {
33835
33835
  icon: button.icon,
33836
33836
  onClick: function onClick(event) {
@@ -35154,8 +35154,8 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35154
35154
  }, []);
35155
35155
  var actionButtons = React.useMemo(function () {
35156
35156
  if (props.actionButtonGroup) {
35157
- if (props.actionButtonGroup.length >= 3 && !props.edit) {
35158
- return props.actionButtonGroup.slice(0, 3);
35157
+ if (props.actionButtonGroup.length > 3 && !props.edit) {
35158
+ return props.actionButtonGroup.slice(0, 2);
35159
35159
  } else {
35160
35160
  return props.actionButtonGroup;
35161
35161
  }
@@ -35179,7 +35179,7 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35179
35179
  }
35180
35180
  }, []);
35181
35181
  function actionCellRender(cellData, props) {
35182
- var kebabMenuButtons = props.actionButtonGroup && props.actionButtonGroup.length >= 3 && !props.edit ? props.actionButtonGroup.slice(3).map(function (button) {
35182
+ var kebabMenuButtons = props.actionButtonGroup && props.actionButtonGroup.length > 3 && !props.edit ? props.actionButtonGroup.slice(2).map(function (button) {
35183
35183
  return {
35184
35184
  icon: button.icon,
35185
35185
  onClick: function onClick(event) {
@@ -35511,13 +35511,12 @@ var useOnActionCellRenderHandler = function useOnActionCellRenderHandler(visible
35511
35511
  return onActionCellRender;
35512
35512
  };
35513
35513
 
35514
- var useOnContentReadyHandler = function useOnContentReadyHandler(lastPageIndexRef, contentReady, columns, setRowCount, setContentReady, setCurrentPage, setCurrentPageSize, setHeaderFilterData, callback) {
35514
+ var useOnContentReadyHandler = function useOnContentReadyHandler(columns, lastPageIndexRef, filterApplied, totalFilteredCount, totalUnfilteredCount, setUpdateTrigger, setCurrentPage, setCurrentPageSize, setHeaderFilterData, callback) {
35515
35515
  var onContentReady = React.useCallback(function (e) {
35516
35516
  var _dataGridInstance$get;
35517
35517
  var dataGridInstance = e.component;
35518
35518
  var currentPageIndex = dataGridInstance.pageIndex();
35519
35519
  var currentTotalCount = dataGridInstance.totalCount();
35520
- var currentPageSizeValue = dataGridInstance.pageSize();
35521
35520
  var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
35522
35521
  if (lastPageIndexRef.current !== currentPageIndex && newData && newData.length > 0) {
35523
35522
  setHeaderFilterData(function (prevData) {
@@ -35546,18 +35545,25 @@ var useOnContentReadyHandler = function useOnContentReadyHandler(lastPageIndexRe
35546
35545
  });
35547
35546
  return [].concat(prevData, newItems);
35548
35547
  });
35548
+ setCurrentPage(currentPageIndex);
35549
+ setCurrentPageSize(dataGridInstance.pageSize());
35550
+ if (filterApplied) {
35551
+ totalFilteredCount.current = currentTotalCount;
35552
+ } else {
35553
+ totalUnfilteredCount.current = currentTotalCount;
35554
+ }
35555
+ if (!filterApplied && totalFilteredCount.current === 0) {
35556
+ totalFilteredCount.current = totalUnfilteredCount.current;
35557
+ }
35558
+ setUpdateTrigger(function (prev) {
35559
+ return !prev;
35560
+ });
35549
35561
  lastPageIndexRef.current = currentPageIndex;
35550
- if (!contentReady) setContentReady(true);
35551
- }
35552
- setCurrentPage(currentPageIndex);
35553
- setCurrentPageSize(currentPageSizeValue);
35554
- if (currentTotalCount > -1) {
35555
- setRowCount(currentTotalCount);
35556
35562
  }
35557
35563
  if (callback) {
35558
35564
  callback(e);
35559
35565
  }
35560
- }, []);
35566
+ }, [columns, filterApplied]);
35561
35567
  return onContentReady;
35562
35568
  };
35563
35569
 
@@ -35586,33 +35592,51 @@ var useOnEditorPreparedHandler = function useOnEditorPreparedHandler(callback) {
35586
35592
  var useOnExportingHandler = function useOnExportingHandler(exportProps, getSummary, callback) {
35587
35593
  var onExporting = React.useCallback(function (e) {
35588
35594
  if (exportProps) {
35589
- var _exportProps$fileName;
35595
+ var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
35590
35596
  ExportDataGridToExcel({
35591
35597
  gridComponent: e.component,
35592
35598
  baseFileName: (_exportProps$fileName = exportProps.fileName) != null ? _exportProps$fileName : "DataGrid",
35593
35599
  selectedText: exportProps.selectedText,
35594
35600
  getSummary: getSummary,
35595
- selectedRowsOnly: e.selectedRowsOnly
35601
+ selectedRowsOnly: e.selectedRowsOnly,
35602
+ activeText: (_exportProps$activeTe = exportProps.activeText) != null ? _exportProps$activeTe : "Active",
35603
+ passiveText: (_exportProps$passiveT = exportProps.passiveText) != null ? _exportProps$passiveT : "Passive"
35596
35604
  });
35597
35605
  }
35598
35606
  if (callback) {
35599
35607
  callback(e);
35600
35608
  }
35601
- }, []);
35609
+ }, [getSummary]);
35602
35610
  return onExporting;
35603
35611
  };
35604
35612
 
35605
- var useOnOptionChangedHandler = function useOnOptionChangedHandler(dataGridRef, setFilterApplied, callback) {
35613
+ var useOnOptionChangedHandler = function useOnOptionChangedHandler(dataGridRef, totalFilteredCount, sortingProps, setFilterApplied, setUpdateTrigger, callback) {
35606
35614
  var onOptionChanged = React.useCallback(function (e) {
35615
+ var dataGrid = dataGridRef.current.instance;
35616
+ var updateFilterStatus = function updateFilterStatus() {
35617
+ var filters = dataGrid.getCombinedFilter(true);
35618
+ var active = filters && filters.length > 0;
35619
+ setFilterApplied(active);
35620
+ return active;
35621
+ };
35607
35622
  if (e.fullName.includes("sortOrder")) {
35608
- dataGridRef.current.instance.getScrollable().scrollTo(0);
35623
+ dataGrid.getScrollable().scrollTo(0);
35609
35624
  }
35610
- if (e.name === "filterValue") {
35611
- setFilterApplied(!!(e.value && e.value.length > 0));
35612
- } else if (e.name === "columns" && e.fullName.includes("filterValue")) {
35613
- setFilterApplied(!!e.value);
35614
- } else if (e.name === "filterPanel" && e.fullName === "filterPanel.filterEnabled") {
35615
- setFilterApplied(e.value);
35625
+ if (e.fullName.includes("filterValue") || e.fullName.includes("filter") || e.fullName === "searchPanel.text") {
35626
+ var active = updateFilterStatus();
35627
+ if (active) {
35628
+ setTimeout(function () {
35629
+ dataGrid.refresh().done(function () {
35630
+ totalFilteredCount.current = dataGrid.totalCount();
35631
+ setUpdateTrigger(function (prev) {
35632
+ return !prev;
35633
+ });
35634
+ });
35635
+ }, 0);
35636
+ }
35637
+ }
35638
+ if (sortingProps !== null && sortingProps !== void 0 && sortingProps.onOptionChanged) {
35639
+ sortingProps.onOptionChanged(e);
35616
35640
  }
35617
35641
  if (callback) {
35618
35642
  callback(e);
@@ -35627,26 +35651,24 @@ var useOnSummaryHandler = function useOnSummaryHandler(_ref) {
35627
35651
  currentPageSize = _ref.currentPageSize,
35628
35652
  currentPage = _ref.currentPage,
35629
35653
  filterApplied = _ref.filterApplied,
35630
- rowCount = _ref.rowCount,
35631
- filteredRowCount = _ref.filteredRowCount;
35654
+ totalFilteredCount = _ref.totalFilteredCount,
35655
+ totalUnfilteredCount = _ref.totalUnfilteredCount;
35632
35656
  var renderTotal = React.useCallback(function () {
35633
35657
  if (!customSummary) return null;
35634
- var totalLoaded = rowCount;
35658
+ var totalLoaded = filterApplied ? totalFilteredCount.current : totalUnfilteredCount.current;
35635
35659
  var loadedPage = currentPage + 1;
35636
35660
  var totalRecords = totalRecordCount;
35637
- var totalPageCount = currentPageSize > 0 ? Math.ceil(totalRecords / currentPageSize) : 1;
35638
- var result = totalRecords + " " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summaryTotalDataLabel);
35639
- if (filterApplied) {
35640
- result = totalLoaded + " " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summaryFilteredDataLabel) + " - " + result;
35641
- }
35642
- if (customSummary !== null && customSummary !== void 0 && customSummary.showSumInSummary) {
35643
- result += " - " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summarySumLabel) + " " + rowCount;
35644
- }
35645
- if (totalPageCount > 1) {
35646
- result += " - " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summaryTotalPageCountLabel) + " " + loadedPage + " / " + totalPageCount;
35661
+ var totalPageCount = Math.ceil(totalRecords / currentPageSize);
35662
+ if (totalLoaded === 0 || totalLoaded === -1) {
35663
+ return "";
35647
35664
  }
35665
+ var filteredDisplayText = filterApplied ? totalLoaded + " " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summaryFilteredDataLabel) + " - " : "";
35666
+ var loadedDisplayText = totalUnfilteredCount.current < totalRecords ? totalUnfilteredCount.current + " " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summaryLoadedDataLabel) + " - " : "";
35667
+ var totalRecordsDisplayText = totalRecords + " " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summaryTotalDataLabel);
35668
+ var paginationDisplayText = loadedPage < totalPageCount ? " - " + (customSummary === null || customSummary === void 0 ? void 0 : customSummary.summaryTotalPageCountLabel) + " " + loadedPage + " / " + totalPageCount : "";
35669
+ var result = "" + filteredDisplayText + loadedDisplayText + totalRecordsDisplayText + paginationDisplayText;
35648
35670
  return result;
35649
- }, [totalRecordCount, currentPageSize, customSummary, currentPage, rowCount, filteredRowCount, filterApplied]);
35671
+ }, [currentPage, currentPageSize, filterApplied, customSummary, totalRecordCount, totalUnfilteredCount]);
35650
35672
  return {
35651
35673
  renderTotal: renderTotal
35652
35674
  };
@@ -35703,6 +35725,8 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35703
35725
  pageTitleFromProps = props.pageTitle,
35704
35726
  pagerPropsFromProps = props.pagerProps,
35705
35727
  pageSizeFromProps = props.pageSize,
35728
+ scrollingPropsFromProps = props.scrollingProps,
35729
+ sortingPropsFromProps = props.sortingProps,
35706
35730
  toolbarButtonGroupFromProps = props.toolbarButtonGroup,
35707
35731
  totalRecordCountFromProps = props.totalRecordCount,
35708
35732
  heightFromProps = props.height,
@@ -35715,66 +35739,39 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35715
35739
  var _useStyles = useStyles$2(),
35716
35740
  gridStyle = _useStyles.styles;
35717
35741
  var _useState = React.useState(0),
35718
- rowCount = _useState[0],
35719
- setRowCount = _useState[1];
35720
- var _useState2 = React.useState(0),
35721
- filteredRowCount = _useState2[0];
35722
- var lastPageIndexRef = React.useRef(null);
35723
- var _useState3 = React.useState(pageSizeFromProps != null ? pageSizeFromProps : 0),
35724
- currentPageSize = _useState3[0],
35725
- setCurrentPageSize = _useState3[1];
35726
- var _useState4 = React.useState(0),
35727
- currentPage = _useState4[0],
35728
- setCurrentPage = _useState4[1];
35729
- var _useState5 = React.useState(false),
35730
- contentReady = _useState5[0],
35731
- setContentReady = _useState5[1];
35742
+ currentPage = _useState[0],
35743
+ setCurrentPage = _useState[1];
35744
+ var _useState2 = React.useState(pageSizeFromProps != null ? pageSizeFromProps : 50),
35745
+ currentPageSize = _useState2[0],
35746
+ setCurrentPageSize = _useState2[1];
35747
+ var _useState3 = React.useState({}),
35748
+ filterOptions = _useState3[0],
35749
+ setFilterOptions = _useState3[1];
35750
+ var _useState4 = React.useState(false),
35751
+ filterApplied = _useState4[0],
35752
+ setFilterApplied = _useState4[1];
35753
+ var _useState5 = React.useState([]),
35754
+ headerFilterData = _useState5[0],
35755
+ setHeaderFilterData = _useState5[1];
35732
35756
  var _useState6 = React.useState(false),
35733
- filterApplied = _useState6[0],
35734
- setFilterApplied = _useState6[1];
35735
- var _useState7 = React.useState([]),
35736
- headerFilterData = _useState7[0],
35737
- setHeaderFilterData = _useState7[1];
35738
- var handleContentReady = useOnContentReadyHandler(lastPageIndexRef, contentReady, gridColumnsFromProps, setRowCount, setContentReady, setCurrentPage, setCurrentPageSize, setHeaderFilterData, onContentReadyFromProps);
35739
- var handleEditorPrepared = useOnEditorPreparedHandler(onEditorPreparedFromProps);
35757
+ updateTrigger = _useState6[0],
35758
+ setUpdateTrigger = _useState6[1];
35759
+ var lastPageIndexRef = React.useRef(null);
35760
+ var totalUnfilteredCount = React.useRef(0);
35761
+ var totalFilteredCount = React.useRef(0);
35762
+ var handleContentReady = useOnContentReadyHandler(gridColumnsFromProps, lastPageIndexRef, filterApplied, totalFilteredCount, totalUnfilteredCount, setUpdateTrigger, setCurrentPage, setCurrentPageSize, setHeaderFilterData, onContentReadyFromProps);
35740
35763
  var _useOnSummaryHandler = useOnSummaryHandler({
35741
35764
  customSummary: customSummaryFromProps,
35742
35765
  totalRecordCount: totalRecordCountFromProps,
35743
35766
  currentPageSize: currentPageSize,
35744
35767
  currentPage: currentPage,
35745
35768
  filterApplied: filterApplied,
35746
- rowCount: rowCount,
35747
- filteredRowCount: filteredRowCount
35769
+ totalFilteredCount: totalFilteredCount,
35770
+ totalUnfilteredCount: totalUnfilteredCount
35748
35771
  }),
35749
35772
  renderTotal = _useOnSummaryHandler.renderTotal;
35750
- var handleExporting = useOnExportingHandler(exportPropsFromProps, renderTotal, onExportingFromProps);
35751
- var handleOptionChanged = useOnOptionChangedHandler(dataGridRefFromProps, setFilterApplied, onOptionChangedFromProps);
35752
- var handleCellClick = React.useCallback(function (e) {
35753
- if (e.rowType != "header") {
35754
- e.cellElement.style.backgroundColor = "transparent";
35755
- }
35756
- if (onCellClickFromProps) {
35757
- onCellClickFromProps(e);
35758
- }
35759
- }, []);
35760
- var getVisibleActionButtons = React.useMemo(function () {
35761
- if (actionButtonGroupFromProps) {
35762
- if (actionButtonGroupFromProps.length >= 2 && !editPropsFromProps) {
35763
- return actionButtonGroupFromProps.slice(0, 2);
35764
- }
35765
- return actionButtonGroupFromProps;
35766
- }
35767
- return [];
35768
- }, []);
35769
- var ActionCellRenderPartial = useOnActionCellRenderHandler(getVisibleActionButtons, actionButtonGroupFromProps, editPropsFromProps);
35770
- var DataGridOptionsFromProps = React.useMemo(function () {
35771
- return _extends({}, AllGridOptions, DefaultDataGridOptions, {
35772
- columnResizingMode: columnResizingModeFromProps != null ? columnResizingModeFromProps : "nextColumn"
35773
- });
35774
- }, []);
35775
- var MemoizedDataGridHeight = React.useMemo(function () {
35776
- return heightFromProps != null ? heightFromProps : window.innerHeight > 164 ? window.innerHeight - 164 : window.innerHeight;
35777
- }, []);
35773
+ var handleOptionChanged = useOnOptionChangedHandler(dataGridRefFromProps, totalFilteredCount, sortingPropsFromProps, setFilterApplied, setUpdateTrigger, onOptionChangedFromProps);
35774
+ React.useEffect(function () {}, [updateTrigger]);
35778
35775
  React.useEffect(function () {
35779
35776
  var loadFilterData = function loadFilterData() {
35780
35777
  try {
@@ -35803,39 +35800,58 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35803
35800
  for (var _iterator = _createForOfIteratorHelperLoose(gridColumnsFromProps), _step; !(_step = _iterator()).done;) {
35804
35801
  _loop();
35805
35802
  }
35803
+ setFilterOptions(newFilterOptions);
35806
35804
  return Promise.resolve();
35807
35805
  } catch (e) {
35808
35806
  return Promise.reject(e);
35809
35807
  }
35810
35808
  };
35811
35809
  loadFilterData();
35812
- }, [headerFilterData]);
35813
- var _useState8 = React.useState(gridColumnsFromProps),
35814
- gridColumns = _useState8[0],
35815
- setGridColumns = _useState8[1];
35810
+ }, [headerFilterData, gridColumnsFromProps]);
35816
35811
  React.useEffect(function () {
35817
- if (gridColumnsFromProps !== undefined && gridColumnsFromProps.length > 0) {
35818
- setGridColumns([].concat(gridColumnsFromProps));
35812
+ setHeaderFilterData([]);
35813
+ }, []);
35814
+ var handleEditorPrepared = useOnEditorPreparedHandler(onEditorPreparedFromProps);
35815
+ var handleExporting = useOnExportingHandler(exportPropsFromProps, renderTotal, onExportingFromProps);
35816
+ var handleCellClick = React.useCallback(function (e) {
35817
+ if (e.rowType != "header") {
35818
+ e.cellElement.style.backgroundColor = "transparent";
35819
35819
  }
35820
- }, [gridColumnsFromProps]);
35820
+ if (onCellClickFromProps) {
35821
+ onCellClickFromProps(e);
35822
+ }
35823
+ }, []);
35824
+ var visibleActionButtons = React.useMemo(function () {
35825
+ if (actionButtonGroupFromProps) {
35826
+ if (actionButtonGroupFromProps.length >= 2 && !editPropsFromProps) {
35827
+ return actionButtonGroupFromProps.slice(0, 2);
35828
+ }
35829
+ return actionButtonGroupFromProps;
35830
+ }
35831
+ return [];
35832
+ }, []);
35833
+ var ActionCellRenderPartial = useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroupFromProps, editPropsFromProps);
35834
+ var DataGridOptionsFromProps = React.useMemo(function () {
35835
+ return _extends({}, AllGridOptions, DefaultDataGridOptions, {
35836
+ columnResizingMode: columnResizingModeFromProps != null ? columnResizingModeFromProps : "nextColumn"
35837
+ });
35838
+ }, []);
35839
+ var MemoizedDataGridHeight = React.useMemo(function () {
35840
+ return heightFromProps != null ? heightFromProps : window.innerHeight > 164 ? window.innerHeight - 164 : window.innerHeight;
35841
+ }, []);
35821
35842
  var rederedGridColumns = React.useMemo(function () {
35822
- return gridColumns.map(function (col) {
35823
- var _col$multiLevelColumn;
35843
+ return gridColumnsFromProps.map(function (col) {
35844
+ var _col$headerFilter, _col$multiLevelColumn;
35824
35845
  return React__default.createElement(DataGrid.Column, Object.assign({
35825
35846
  key: col.dataField
35826
35847
  }, col, {
35827
35848
  minWidth: 10
35828
- }), col.lookup && React__default.createElement(DataGrid.Lookup, Object.assign({}, col.lookup)), col.dataField === "IsActive" && React__default.createElement(DataGrid.HeaderFilter, {
35829
- dataSource: [{
35830
- text: "Active",
35831
- value: true
35832
- }, {
35833
- text: "Passive",
35834
- value: false
35835
- }]
35836
- }), col.headerFilter && React__default.createElement(DataGrid.HeaderFilter, {
35849
+ }), col.lookup && React__default.createElement(DataGrid.Lookup, Object.assign({}, col.lookup)), ((_col$headerFilter = col.headerFilter) === null || _col$headerFilter === void 0 ? void 0 : _col$headerFilter.dataSource) && React__default.createElement(DataGrid.HeaderFilter, {
35837
35850
  dataSource: col.headerFilter.dataSource,
35838
35851
  visible: true
35852
+ }), col.headerFilter && !col.headerFilter.dataSource && React__default.createElement(DataGrid.HeaderFilter, {
35853
+ allowSearch: true,
35854
+ dataSource: [].concat(filterOptions[col.dataField] || [])
35839
35855
  }), (_col$multiLevelColumn = col.multiLevelColumns) === null || _col$multiLevelColumn === void 0 ? void 0 : _col$multiLevelColumn.map(function (multiLevelColItem) {
35840
35856
  return React__default.createElement(DataGrid.Column, {
35841
35857
  key: multiLevelColItem.dataField,
@@ -35845,7 +35861,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35845
35861
  });
35846
35862
  }));
35847
35863
  });
35848
- }, [gridColumns]);
35864
+ }, [gridColumnsFromProps]);
35849
35865
  return React__default.createElement("div", null, pageTitleFromProps && React__default.createElement(MemoizedPageTitleAndToolbar, {
35850
35866
  pageTitle: pageTitleFromProps,
35851
35867
  toolbarButtonGroup: toolbarButtonGroupFromProps
@@ -35904,13 +35920,8 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35904
35920
  infoText: (_pagerPropsFromProps$5 = pagerPropsFromProps.infoText) != null ? _pagerPropsFromProps$5 : "Loaded {0} of {1} items"
35905
35921
  }), React__default.createElement(DataGrid.SearchPanel, {
35906
35922
  visible: true
35907
- }), React__default.createElement(DataGrid.Scrolling, {
35908
- showScrollbar: "always",
35909
- scrollByContent: true,
35910
- scrollByThumb: true,
35911
- mode: "standard",
35912
- rowRenderingMode: "standard",
35913
- useNative: true
35923
+ }), scrollingPropsFromProps ? React__default.createElement(DataGrid.Scrolling, Object.assign({}, scrollingPropsFromProps)) : React__default.createElement(DataGrid.Scrolling, {
35924
+ mode: "infinite"
35914
35925
  }), React__default.createElement(DataGrid.Toolbar, null, React__default.createElement(DataGrid.Item, {
35915
35926
  name: "searchPanel"
35916
35927
  }), React__default.createElement(DataGrid.Item, {