ods-component-lib 1.18.145 → 1.18.147

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 (34) hide show
  1. package/dist/components/antd/form/OdsBasicForm.d.ts +18 -0
  2. package/dist/components/antd/icon/OdsIcon.d.ts +10 -0
  3. package/dist/components/antd/modal/OdsAdvanceModal.d.ts +7 -0
  4. package/dist/components/antd/select/OdsCustomMultiSelect.d.ts +7 -0
  5. package/dist/components/antd/select/OdsMultiSelect.d.ts +9 -0
  6. package/dist/components/custom/OdsLogin.d.ts +8 -0
  7. package/dist/components/devextreme/DxDataPopupForm.d.ts +3 -0
  8. package/dist/components/devextreme/DynamicIcon.d.ts +5 -0
  9. package/dist/components/devextreme/OdsDataGridNew.d.ts +56 -0
  10. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/ContentHandlers.d.ts +14 -0
  11. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/EditorPreparedHandlers.d.ts +7 -0
  12. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OnContentReadyHandler.d.ts +1 -2
  13. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OnExportingHandlers.d.ts +19 -0
  14. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OptionHandlers.d.ts +7 -0
  15. package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/SummaryHandlers.d.ts +21 -0
  16. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/ActionCellRender.d.ts +15 -0
  17. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/EditingPartial.d.ts +9 -0
  18. package/dist/components/devextreme/OdsInlineEditDataGrid/partials/PageTitle.d.ts +8 -0
  19. package/dist/components/devextreme/OdsInlineEditDataGrid/utils.d.ts +19 -0
  20. package/dist/components/devextreme/OdsProfDataGrid.d.ts +3 -0
  21. package/dist/components/devextreme/treeview/DxTreeView.d.ts +3 -0
  22. package/dist/index.js +40 -105
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.modern.js +40 -105
  25. package/dist/index.modern.js.map +1 -1
  26. package/dist/stories/OdsAdvanceModal/OdsAdvanceModal.stories.d.ts +42 -0
  27. package/dist/stories/OdsAdvanceModal/Samples/BasicOdsAdvanceModal.sample.d.ts +8 -0
  28. package/dist/stories/OdsCustomMultiSelect/OdsCustomMultiSelect.stories.d.ts +9 -0
  29. package/dist/stories/OdsCustomMultiSelect/Samples/Basic.Sample.d.ts +1 -0
  30. package/dist/stories/OdsCustomMultiSelect/Samples/ModeMultiple.Sample.d.ts +1 -0
  31. package/dist/stories/OdsModal/Samples/OdsModal.Sample.d.ts +1 -0
  32. package/dist/stories/OdsTimePicker/Samples/TimeRangePicker.d.ts +2 -0
  33. package/dist/utils/DynamicIcon.d.ts +5 -0
  34. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { FormProps, ButtonProps } from 'antd';
3
+ export interface IFormItemRuleProps {
4
+ required?: boolean;
5
+ message?: string;
6
+ }
7
+ export interface IFormItemProps {
8
+ label?: string;
9
+ name?: string;
10
+ formItemType: string;
11
+ rules?: IFormItemRuleProps[];
12
+ }
13
+ export interface IFormProps extends FormProps {
14
+ formItems: IFormItemProps[];
15
+ formButtons: ButtonProps[];
16
+ }
17
+ declare function OdsBasicForm(props: IFormProps): React.JSX.Element;
18
+ export default OdsBasicForm;
@@ -0,0 +1,10 @@
1
+ import { IconBaseProps } from "@ant-design/icons/lib/components/Icon";
2
+ import React from "react";
3
+ export interface IconProps extends IconBaseProps {
4
+ type: string;
5
+ twoToneColor?: string;
6
+ iconComponent?: string;
7
+ iconSVCName?: string;
8
+ }
9
+ declare function OdsIcon(props: IconProps): React.JSX.Element;
10
+ export default OdsIcon;
@@ -0,0 +1,7 @@
1
+ import { ModalProps } from "antd";
2
+ import React from "react";
3
+ export interface ICustomModalProps extends ModalProps {
4
+ content: React.ReactNode;
5
+ }
6
+ declare const OdsAdvanceModal: React.FC<ICustomModalProps>;
7
+ export default OdsAdvanceModal;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { SelectProps } from "antd";
3
+ export interface ISelectProps extends SelectProps {
4
+ buttonLabel: string;
5
+ }
6
+ declare function OdsCustomMultiSelect(props: ISelectProps): React.JSX.Element;
7
+ export default OdsCustomMultiSelect;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { SelectProps } from "antd";
3
+ import { IOdsSelectOption } from "./OdsSelect.styled";
4
+ export interface OdsMultiSelectProps extends SelectProps {
5
+ selectAllText?: string | undefined;
6
+ dataSource: IOdsSelectOption[];
7
+ }
8
+ declare const OdsMultiSelect: (props: OdsMultiSelectProps) => React.JSX.Element;
9
+ export default OdsMultiSelect;
@@ -0,0 +1,8 @@
1
+ import { FormProps } from "antd";
2
+ import React from "react";
3
+ export interface IFormProps extends FormProps {
4
+ items: any[];
5
+ loading: boolean;
6
+ }
7
+ declare function OdsLogin(props: IFormProps): React.JSX.Element;
8
+ export default OdsLogin;
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare const _default: React.MemoExoticComponent<(props: any) => React.JSX.Element>;
3
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ declare const DynamicIcon: ({ iconName }: {
3
+ iconName: any;
4
+ }) => React.JSX.Element;
5
+ export default DynamicIcon;
@@ -0,0 +1,56 @@
1
+ import React from "react";
2
+ import { IDataGridOptions, IEditingProps, ISelectionProps, IButtonProps } from 'devextreme-react/data-grid';
3
+ import { ButtonType } from "antd/es/button/buttonHelpers";
4
+ interface IButtonGroup extends IButtonProps {
5
+ type?: ButtonType;
6
+ label?: string;
7
+ onclick?: React.MouseEventHandler<HTMLElement>;
8
+ actionPermission?: boolean;
9
+ }
10
+ interface IEditingoptions extends IEditingProps {
11
+ formItems?: any[];
12
+ title?: string;
13
+ }
14
+ interface ISelectOptions extends ISelectionProps {
15
+ selectEnable: boolean;
16
+ }
17
+ interface IOdsDataGridProps extends IDataGridOptions {
18
+ actionButtonGroup?: IButtonGroup[];
19
+ toolbarButtonGroup?: IButtonGroup[];
20
+ exportFileName?: string;
21
+ summaryTotalColumnName?: string;
22
+ storeState?: boolean;
23
+ summaryTotalDataCount?: number;
24
+ summaryTotalDataDisplayLabel?: string;
25
+ summaryTotalPagesize?: number;
26
+ editHintLabel?: string;
27
+ editButtonClick?: any;
28
+ deleteButtonClick?: any;
29
+ pageTitle?: string;
30
+ pageSize?: number;
31
+ pagingEnable?: boolean;
32
+ searchEnable?: boolean;
33
+ filterEnable?: boolean;
34
+ headerFilterEnable?: boolean;
35
+ columnChooserPositionDisabled?: boolean;
36
+ editEnable?: boolean;
37
+ popupTitle?: string;
38
+ scroll?: any;
39
+ exportEnable?: boolean;
40
+ customPopup?: boolean;
41
+ onExportingCustom?: any;
42
+ filterEnabledShow?: boolean;
43
+ scrolUseNative?: boolean;
44
+ formItems?: any[];
45
+ hintForDeleteButton?: string;
46
+ hintForEditButton?: string;
47
+ exportFormats?: string[];
48
+ actionPermission?: boolean;
49
+ columns: any[];
50
+ actionColumnEnable?: boolean;
51
+ edit?: IEditingoptions;
52
+ selectOptions?: ISelectOptions;
53
+ actionColumnCaption?: string;
54
+ }
55
+ declare function OdsDataGridNew(props: IOdsDataGridProps): React.JSX.Element;
56
+ export default OdsDataGridNew;
@@ -0,0 +1,14 @@
1
+ import { ContentReadyEvent } from "devextreme/ui/data_grid";
2
+ import { IColumnConfig } from "../types";
3
+ /**
4
+ * 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.
11
+ * @param {Function} [callback] - Optional callback function.
12
+ * @returns {(e: ContentReadyEvent<any, any>) => void} handleContentReady - Handler for content ready event.
13
+ */
14
+ export declare const useContentHandlers: (lastPageIndexRef: React.MutableRefObject<any>, contentReady: boolean, columns: IColumnConfig[], setRowCount: Function, setContentReady: Function, setCurrentPage: Function, setCurrentPageSize: Function, setHeaderFilterData: Function, callback?: Function) => (e: ContentReadyEvent<any, any>) => void;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Custom hook that returns a callback function to handle the "editorPrepared" event of a DevExtreme component.
3
+ * This callback function is responsible for customizing the editor's behavior based on specific conditions.
4
+ *
5
+ * @returns {Function} The callback function to handle the "editorPrepared" event.
6
+ */
7
+ export declare const useEditorPreparedHandlers: () => (e: any) => void;
@@ -11,8 +11,7 @@ import { IColumnOptions } from "../types";
11
11
  * @param {Function} setUpdateTrigger - Function to set the update trigger.
12
12
  * @param {Function} setCurrentPage - Function to set the current page.
13
13
  * @param {Function} setCurrentPageSize - Function to set the current page size.
14
- * @param {Function} setHeaderFilterData - Function to set the header filter data.
15
14
  * @param {Function} [callback] - Optional callback function.
16
15
  * @returns {(e: ContentReadyEvent<any, any>) => void} handleContentReady - Handler for content ready event.
17
16
  */
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;
17
+ export declare const useOnContentReadyHandler: (columns: IColumnOptions[], lastPageIndexRef: MutableRefObject<number>, filterApplied: boolean, totalFilteredCount: MutableRefObject<number>, totalUnfilteredCount: MutableRefObject<number>, setUpdateTrigger: Function, setCurrentPage: Function, setCurrentPageSize: Function, callback: Function) => (e: ContentReadyEvent<any, any>) => void;
@@ -0,0 +1,19 @@
1
+ interface IOnExportingProps {
2
+ gridComponent: any;
3
+ baseFileName?: string;
4
+ selectedText?: string;
5
+ getSummary: () => string;
6
+ selectedRowsOnly: boolean;
7
+ }
8
+ /**
9
+ * Handles the exporting of data from the grid component.
10
+ *
11
+ * @param {IOnExportingProps} params - The parameters for exporting the data.
12
+ * @param {React.RefObject<Grid>} params.gridComponent - The reference to the grid component.
13
+ * @param {string} params.baseFileName - The base file name for the exported file.
14
+ * @param {string} params.selectedText - The text to be displayed for selected rows.
15
+ * @param {Function} params.getSummary - The function to get the summary of the exported data.
16
+ * @param {boolean} params.selectedRowsOnly - Indicates whether to export only selected rows.
17
+ */
18
+ export declare const onExporting: ({ gridComponent, baseFileName, selectedText, getSummary, selectedRowsOnly, }: IOnExportingProps) => void;
19
+ export {};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Custom hook to handle option change events for the data grid.
3
+ * @param {Object} dataGridRef - The dataGridRef property passed to the hook.
4
+ * @param {Function} setFilterApplied - Function to set the filter applied state.
5
+ * @returns {Function} - Handler function for option changed event.
6
+ */
7
+ export declare const useOptionHandlers: (dataGridRef: any, setFilterApplied: any) => (e: any) => void;
@@ -0,0 +1,21 @@
1
+ import type { ISummaryRowOptions } from "../types";
2
+ interface IUseSummaryHandlersProps {
3
+ customSummary?: ISummaryRowOptions;
4
+ totalRecordCount: number;
5
+ currentPageSize: number;
6
+ currentPage: number;
7
+ filterApplied: boolean;
8
+ rowCount: number;
9
+ filteredRowCount: number;
10
+ isServerSide?: boolean;
11
+ }
12
+ /**
13
+ * Custom hook that provides summary handlers for a data grid.
14
+ *
15
+ * @param {IUseSummaryHandlersProps} props - The props object containing necessary parameters.
16
+ * @returns {Object} - An object containing the renderTotal function.
17
+ */
18
+ export declare const useSummaryHandlers: ({ customSummary, totalRecordCount, currentPageSize, currentPage, filterApplied, rowCount, filteredRowCount, }: IUseSummaryHandlersProps) => {
19
+ renderTotal: () => string | null;
20
+ };
21
+ export {};
@@ -0,0 +1,15 @@
1
+ import { FC } from "react";
2
+ import { IVirtualDataGridProps } from "../types";
3
+ interface ActionCellRenderProps {
4
+ cellData: any;
5
+ actionButtons: IVirtualDataGridProps["actionButtonGroup"];
6
+ edit?: IVirtualDataGridProps["edit"];
7
+ actionButtonGroup?: IVirtualDataGridProps["actionButtonGroup"];
8
+ }
9
+ /**
10
+ * Renders the action buttons for a cell in the OdsInlineEditDataGrid component.
11
+ * @param {ActionCellRenderProps} props - The props for the ActionCellRender component.
12
+ * @returns {ReactNode} - The rendered action buttons.
13
+ */
14
+ declare const ActionCellRender: FC<ActionCellRenderProps>;
15
+ export default ActionCellRender;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { IEditingOptions } from "../types";
3
+ /**
4
+ * Component that handles editing functionalities within the data grid.
5
+ * @param {IEditingOptions} props - The properties passed to the component.
6
+ * @returns {JSX.Element} - The JSX element representing the editing handlers.
7
+ */
8
+ declare const EditingPartial: React.FC<IEditingOptions>;
9
+ export default EditingPartial;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { IToolbarButton } from "../types";
3
+ interface PageTitleAndToolbarProps {
4
+ pageTitle?: string;
5
+ toolbarButtonGroup?: IToolbarButton[];
6
+ }
7
+ declare const MemoizedPageTitleAndToolbar: React.NamedExoticComponent<PageTitleAndToolbarProps>;
8
+ export default MemoizedPageTitleAndToolbar;
@@ -0,0 +1,19 @@
1
+ interface IConcatFilteredLabelProps {
2
+ result: string;
3
+ totalLoaded: number;
4
+ filteredRowCount: number;
5
+ filterApplied: boolean;
6
+ summaryFilteredDataLabel: string;
7
+ }
8
+ /**
9
+ * Concatenates the filtered label with the result string.
10
+ *
11
+ * @param {IConcatFilteredLabelProps} props - The object containing the necessary properties.
12
+ * @returns {string} - The concatenated result string.
13
+ */
14
+ export declare const concatFilteredLabel: ({ result, totalLoaded, filteredRowCount, filterApplied, summaryFilteredDataLabel, }: IConcatFilteredLabelProps) => string;
15
+ export {};
16
+ /**
17
+ * This file contains utility functions related to the OdsInlineEditDataGrid component.
18
+ * These utility functions are used for handling filtering and data manipulation.
19
+ */
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare function OdsProfDataGrid(props: any): React.JSX.Element;
3
+ export default OdsProfDataGrid;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const DxTreeView: (props: any) => React.JSX.Element;
3
+ export default DxTreeView;
package/dist/index.js CHANGED
@@ -35022,7 +35022,7 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35022
35022
  var renderTotal = React.useCallback(function () {
35023
35023
  var _props$customSummary, _props$customSummary2, _props$customSummary3, _props$customSummary4;
35024
35024
  var totalLoaded = filterApplied ? totalFilteredCount.current : totalUnfilteredCount.current;
35025
- var loadedPage = currentPage + 1;
35025
+ var loadedPage = currentPage;
35026
35026
  var totalRecords = props.totalRecordCount;
35027
35027
  var totalPageCount = Math.ceil(totalRecords / currentPageSize);
35028
35028
  if (totalLoaded === 0 || totalLoaded === -1) {
@@ -35033,12 +35033,12 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35033
35033
  var result = "" + filteredDisplayText + loadedDisplayText + totalRecords + " " + ((_props$customSummary3 = props.customSummary) === null || _props$customSummary3 === void 0 ? void 0 : _props$customSummary3.summaryTotalDataLabel);
35034
35034
  result += " - " + ((_props$customSummary4 = props.customSummary) === null || _props$customSummary4 === void 0 ? void 0 : _props$customSummary4.summaryTotalPageCountLabel) + " " + loadedPage + " / " + totalPageCount;
35035
35035
  return result;
35036
- }, [currentPage, currentPageSize, filterApplied, props.customSummary, props.totalRecordCount, totalUnfilteredCount]);
35036
+ }, [currentPage, currentPageSize, filterApplied, props.customSummary, props.totalRecordCount, totalUnfilteredCount, props.dataSource]);
35037
35037
  var handleContentReady = React.useCallback(function (e) {
35038
35038
  var _dataGridInstance$get;
35039
35039
  var dataGridInstance = e.component;
35040
- var currentPageIndex = dataGridInstance.pageIndex();
35041
- var currentTotalCount = dataGridInstance.totalCount();
35040
+ var currentPageIndex = dataGridInstance.pageCount();
35041
+ var currentTotalCount = currentPageIndex == 0 ? 50 : dataGridInstance.totalCount();
35042
35042
  var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
35043
35043
  if (lastPageIndexRef.current !== currentPageIndex && newData && newData.length > 0) {
35044
35044
  setHeaderFilterData(function (prevData) {
@@ -35070,6 +35070,12 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35070
35070
  setCurrentPage(currentPageIndex);
35071
35071
  setCurrentPageSize(dataGridInstance.pageSize());
35072
35072
  rowCount.current = currentTotalCount;
35073
+ setUpdateTrigger(function (prev) {
35074
+ return !prev;
35075
+ });
35076
+ lastPageIndexRef.current = currentPageIndex;
35077
+ }
35078
+ if (currentTotalCount > 0) {
35073
35079
  if (filterApplied) {
35074
35080
  totalFilteredCount.current = currentTotalCount;
35075
35081
  } else {
@@ -35078,10 +35084,6 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35078
35084
  if (!filterApplied && totalFilteredCount.current === 0) {
35079
35085
  totalFilteredCount.current = totalUnfilteredCount.current;
35080
35086
  }
35081
- setUpdateTrigger(function (prev) {
35082
- return !prev;
35083
- });
35084
- lastPageIndexRef.current = currentPageIndex;
35085
35087
  }
35086
35088
  }, [props.columns, filterApplied]);
35087
35089
  var handleOptionChanged = React.useCallback(function (e) {
@@ -35094,6 +35096,7 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35094
35096
  };
35095
35097
  if (e.fullName.includes("sortOrder")) {
35096
35098
  dataGrid.getScrollable().scrollTo(0);
35099
+ setHeaderFilterData([]);
35097
35100
  }
35098
35101
  if (e.fullName.includes("filterValue") || e.fullName.includes("filter") || e.fullName === "searchPanel.text") {
35099
35102
  var active = updateFilterStatus();
@@ -35343,7 +35346,8 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35343
35346
  onToolbarPreparing: props.onToolbarPreparing,
35344
35347
  ref: props.dataGridRef
35345
35348
  }), React__default.createElement(DataGrid.Scrolling, {
35346
- mode: "infinite"
35349
+ mode: "infinite",
35350
+ preloadEnabled: true
35347
35351
  }), React__default.createElement(DataGrid.Paging, {
35348
35352
  enabled: true,
35349
35353
  defaultPageSize: props.pageSize
@@ -35367,7 +35371,6 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
35367
35371
  value: false
35368
35372
  }]
35369
35373
  }), React__default.createElement(DataGrid.HeaderFilter, {
35370
- allowSearch: true,
35371
35374
  dataSource: [].concat(filterOptions[col.dataField] || [])
35372
35375
  }), col.multiLevelColumns && col.multiLevelColumns.map(function (multiLevelColItem) {
35373
35376
  return React__default.createElement(DataGrid.Column, {
@@ -35511,7 +35514,7 @@ var useOnActionCellRenderHandler = function useOnActionCellRenderHandler(visible
35511
35514
  return onActionCellRender;
35512
35515
  };
35513
35516
 
35514
- var useOnContentReadyHandler = function useOnContentReadyHandler(columns, lastPageIndexRef, filterApplied, totalFilteredCount, totalUnfilteredCount, setUpdateTrigger, setCurrentPage, setCurrentPageSize, setHeaderFilterData, callback) {
35517
+ var useOnContentReadyHandler = function useOnContentReadyHandler(columns, lastPageIndexRef, filterApplied, totalFilteredCount, totalUnfilteredCount, setUpdateTrigger, setCurrentPage, setCurrentPageSize, callback) {
35515
35518
  var onContentReady = React.useCallback(function (e) {
35516
35519
  var _dataGridInstance$get;
35517
35520
  var dataGridInstance = e.component;
@@ -35519,32 +35522,6 @@ var useOnContentReadyHandler = function useOnContentReadyHandler(columns, lastPa
35519
35522
  var currentTotalCount = dataGridInstance.totalCount();
35520
35523
  var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
35521
35524
  if (lastPageIndexRef.current !== currentPageIndex && newData && newData.length > 0) {
35522
- setHeaderFilterData(function (prevData) {
35523
- var uniqueValuesByColumn = {};
35524
- columns.forEach(function (col) {
35525
- uniqueValuesByColumn[col.dataField] = new Set(prevData.map(function (item) {
35526
- return item[col.dataField];
35527
- }).filter(function (val) {
35528
- return val !== null && val !== "";
35529
- }));
35530
- });
35531
- var newItems = [];
35532
- newData.forEach(function (item) {
35533
- var addItem = {};
35534
- columns.forEach(function (col) {
35535
- var _item$col$dataField;
35536
- var colValue = (_item$col$dataField = item[col.dataField]) === null || _item$col$dataField === void 0 ? void 0 : _item$col$dataField.toString();
35537
- if (colValue && !uniqueValuesByColumn[col.dataField].has(colValue)) {
35538
- uniqueValuesByColumn[col.dataField].add(colValue);
35539
- addItem[col.dataField] = colValue;
35540
- }
35541
- });
35542
- if (Object.keys(addItem).length > 0) {
35543
- newItems.push(addItem);
35544
- }
35545
- });
35546
- return [].concat(prevData, newItems);
35547
- });
35548
35525
  setCurrentPage(currentPageIndex);
35549
35526
  setCurrentPageSize(dataGridInstance.pageSize());
35550
35527
  if (filterApplied) {
@@ -35696,7 +35673,7 @@ var PageTitleAndToolbar = function PageTitleAndToolbar(_ref) {
35696
35673
  };
35697
35674
  var MemoizedPageTitleAndToolbar = React__default.memo(PageTitleAndToolbar);
35698
35675
 
35699
- var _excluded$5 = ["dataGridRef", "actionColumnEnable", "actionButtonGroup", "gridColumns", "columnResizingMode", "customSummary", "dataSource", "editProps", "exportProps", "isFilterPanel", "isFilterRow", "pageTitle", "pagerProps", "pageSize", "scrollingProps", "sortingProps", "toolbarButtonGroup", "totalRecordCount", "width", "height", "className", "onCellClick", "onContentReady", "onEditorPrepared", "onOptionChanged", "onExporting"];
35676
+ var _excluded$5 = ["dataGridRef", "actionColumnEnable", "actionButtonGroup", "gridColumns", "columnResizingMode", "customSummary", "dataSource", "editProps", "exportProps", "headerFilter", "isFilterPanel", "isFilterRow", "pageTitle", "pagerProps", "pageSize", "scrollingProps", "sortingProps", "toolbarButtonGroup", "totalRecordCount", "width", "height", "className", "onCellClick", "onContentReady", "onEditorPrepared", "onOptionChanged", "onExporting"];
35700
35677
  var DefaultDataGridOptions = {
35701
35678
  allowColumnReordering: true,
35702
35679
  allowColumnResizing: true,
@@ -35720,6 +35697,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35720
35697
  dataSourceFromProps = props.dataSource,
35721
35698
  editPropsFromProps = props.editProps,
35722
35699
  exportPropsFromProps = props.exportProps,
35700
+ headerFilterFromProps = props.headerFilter,
35723
35701
  isFilterPanelFromProps = props.isFilterPanel,
35724
35702
  isFilterRowFromProps = props.isFilterRow,
35725
35703
  pageTitleFromProps = props.pageTitle,
@@ -35744,22 +35722,16 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35744
35722
  var _useState2 = React.useState(pageSizeFromProps != null ? pageSizeFromProps : 50),
35745
35723
  currentPageSize = _useState2[0],
35746
35724
  setCurrentPageSize = _useState2[1];
35747
- var _useState3 = React.useState({}),
35748
- filterOptions = _useState3[0],
35749
- setFilterOptions = _useState3[1];
35725
+ var _useState3 = React.useState(false),
35726
+ filterApplied = _useState3[0],
35727
+ setFilterApplied = _useState3[1];
35750
35728
  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];
35756
- var _useState6 = React.useState(false),
35757
- updateTrigger = _useState6[0],
35758
- setUpdateTrigger = _useState6[1];
35729
+ updateTrigger = _useState4[0],
35730
+ setUpdateTrigger = _useState4[1];
35759
35731
  var lastPageIndexRef = React.useRef(null);
35760
35732
  var totalUnfilteredCount = React.useRef(0);
35761
35733
  var totalFilteredCount = React.useRef(0);
35762
- var handleContentReady = useOnContentReadyHandler(gridColumnsFromProps, lastPageIndexRef, filterApplied, totalFilteredCount, totalUnfilteredCount, setUpdateTrigger, setCurrentPage, setCurrentPageSize, setHeaderFilterData, onContentReadyFromProps);
35734
+ var handleContentReady = useOnContentReadyHandler(gridColumnsFromProps, lastPageIndexRef, filterApplied, totalFilteredCount, totalUnfilteredCount, setUpdateTrigger, setCurrentPage, setCurrentPageSize, onContentReadyFromProps);
35763
35735
  var _useOnSummaryHandler = useOnSummaryHandler({
35764
35736
  customSummary: customSummaryFromProps,
35765
35737
  totalRecordCount: totalRecordCountFromProps,
@@ -35772,45 +35744,6 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35772
35744
  renderTotal = _useOnSummaryHandler.renderTotal;
35773
35745
  var handleOptionChanged = useOnOptionChangedHandler(dataGridRefFromProps, totalFilteredCount, sortingPropsFromProps, setFilterApplied, setUpdateTrigger, onOptionChangedFromProps);
35774
35746
  React.useEffect(function () {}, [updateTrigger]);
35775
- React.useEffect(function () {
35776
- var loadFilterData = function loadFilterData() {
35777
- try {
35778
- var newFilterOptions = {};
35779
- var _loop = function _loop() {
35780
- var col = _step.value;
35781
- try {
35782
- if (headerFilterData.length > 0) {
35783
- var newData = headerFilterData.filter(function (item) {
35784
- return item[col.dataField] != null && item[col.dataField] !== "";
35785
- }).map(function (item) {
35786
- return item[col.dataField].toString();
35787
- });
35788
- var values = newData.map(function (group) {
35789
- return {
35790
- text: group,
35791
- value: group
35792
- };
35793
- });
35794
- newFilterOptions[col.dataField] = values;
35795
- }
35796
- } catch (error) {
35797
- console.error("Error loading data for header filter:", error);
35798
- }
35799
- };
35800
- for (var _iterator = _createForOfIteratorHelperLoose(gridColumnsFromProps), _step; !(_step = _iterator()).done;) {
35801
- _loop();
35802
- }
35803
- setFilterOptions(newFilterOptions);
35804
- return Promise.resolve();
35805
- } catch (e) {
35806
- return Promise.reject(e);
35807
- }
35808
- };
35809
- loadFilterData();
35810
- }, [headerFilterData, gridColumnsFromProps]);
35811
- React.useEffect(function () {
35812
- setHeaderFilterData([]);
35813
- }, []);
35814
35747
  var handleEditorPrepared = useOnEditorPreparedHandler(onEditorPreparedFromProps);
35815
35748
  var handleExporting = useOnExportingHandler(exportPropsFromProps, renderTotal, onExportingFromProps);
35816
35749
  var handleCellClick = React.useCallback(function (e) {
@@ -35821,7 +35754,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35821
35754
  onCellClickFromProps(e);
35822
35755
  }
35823
35756
  }, []);
35824
- var visibleActionButtons = React.useMemo(function () {
35757
+ var VisibleActionButtons = React.useMemo(function () {
35825
35758
  if (actionButtonGroupFromProps) {
35826
35759
  if (actionButtonGroupFromProps.length >= 2 && !editPropsFromProps) {
35827
35760
  return actionButtonGroupFromProps.slice(0, 2);
@@ -35830,29 +35763,26 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35830
35763
  }
35831
35764
  return [];
35832
35765
  }, []);
35833
- var ActionCellRenderPartial = useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroupFromProps, editPropsFromProps);
35766
+ var ActionCellRenderPartial = useOnActionCellRenderHandler(VisibleActionButtons, actionButtonGroupFromProps, editPropsFromProps);
35834
35767
  var DataGridOptionsFromProps = React.useMemo(function () {
35835
35768
  return _extends({}, AllGridOptions, DefaultDataGridOptions, {
35836
35769
  columnResizingMode: columnResizingModeFromProps != null ? columnResizingModeFromProps : "nextColumn"
35837
35770
  });
35838
35771
  }, []);
35839
- var MemoizedDataGridHeight = React.useMemo(function () {
35772
+ var DataGridHeight = React.useMemo(function () {
35840
35773
  return heightFromProps != null ? heightFromProps : window.innerHeight > 164 ? window.innerHeight - 164 : window.innerHeight;
35841
35774
  }, []);
35842
- var rederedGridColumns = React.useMemo(function () {
35775
+ var RederedGridColumns = React.useMemo(function () {
35843
35776
  return gridColumnsFromProps.map(function (col) {
35844
- var _col$headerFilter, _col$multiLevelColumn;
35777
+ var _col$multiLevelColumn;
35845
35778
  return React__default.createElement(DataGrid.Column, Object.assign({
35846
35779
  key: col.dataField
35847
35780
  }, col, {
35848
35781
  minWidth: 10
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, {
35850
- dataSource: col.headerFilter.dataSource,
35851
- visible: true
35852
- }), col.headerFilter && !col.headerFilter.dataSource && React__default.createElement(DataGrid.HeaderFilter, {
35853
- allowSearch: true,
35854
- dataSource: [].concat(filterOptions[col.dataField] || [])
35855
- }), (_col$multiLevelColumn = col.multiLevelColumns) === null || _col$multiLevelColumn === void 0 ? void 0 : _col$multiLevelColumn.map(function (multiLevelColItem) {
35782
+ }), col.lookup && React__default.createElement(DataGrid.Lookup, Object.assign({}, col.lookup)), col.headerFilter && React__default.createElement(DataGrid.HeaderFilter, Object.assign({}, col.headerFilter, {
35783
+ visible: true,
35784
+ allowSearch: true
35785
+ })), (_col$multiLevelColumn = col.multiLevelColumns) === null || _col$multiLevelColumn === void 0 ? void 0 : _col$multiLevelColumn.map(function (multiLevelColItem) {
35856
35786
  return React__default.createElement(DataGrid.Column, {
35857
35787
  key: multiLevelColItem.dataField,
35858
35788
  dataField: multiLevelColItem.dataField,
@@ -35862,6 +35792,11 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35862
35792
  }));
35863
35793
  });
35864
35794
  }, [gridColumnsFromProps]);
35795
+ var isHeaderFilterEnabledInAnyColumn = React.useMemo(function () {
35796
+ return gridColumnsFromProps.some(function (col) {
35797
+ return col.headerFilter;
35798
+ });
35799
+ }, [gridColumnsFromProps]);
35865
35800
  return React__default.createElement("div", null, pageTitleFromProps && React__default.createElement(MemoizedPageTitleAndToolbar, {
35866
35801
  pageTitle: pageTitleFromProps,
35867
35802
  toolbarButtonGroup: toolbarButtonGroupFromProps
@@ -35869,7 +35804,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35869
35804
  ref: dataGridRefFromProps,
35870
35805
  dataSource: dataSourceFromProps,
35871
35806
  width: "100%",
35872
- height: MemoizedDataGridHeight,
35807
+ height: DataGridHeight,
35873
35808
  className: gridStyle.grid
35874
35809
  }, DataGridOptionsFromProps, {
35875
35810
  onCellClick: handleCellClick,
@@ -35877,7 +35812,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35877
35812
  onEditorPrepared: handleEditorPrepared,
35878
35813
  onExporting: handleExporting,
35879
35814
  onOptionChanged: handleOptionChanged
35880
- }), rederedGridColumns, React__default.createElement(DataGrid.ColumnChooser, {
35815
+ }), RederedGridColumns, React__default.createElement(DataGrid.ColumnChooser, {
35881
35816
  enabled: true,
35882
35817
  mode: "select"
35883
35818
  }, !props.columnChooserPositionDisabled && React__default.createElement(DataGrid.Position, {
@@ -35897,9 +35832,9 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35897
35832
  useIcons: true
35898
35833
  })), (exportPropsFromProps === null || exportPropsFromProps === void 0 ? void 0 : exportPropsFromProps.enabled) && React__default.createElement(DataGrid.Export, Object.assign({}, exportPropsFromProps)), isFilterPanelFromProps && React__default.createElement(DataGrid.FilterPanel, {
35899
35834
  visible: isFilterPanelFromProps
35900
- }), React__default.createElement(DataGrid.HeaderFilter, {
35835
+ }), ((headerFilterFromProps === null || headerFilterFromProps === void 0 ? void 0 : headerFilterFromProps.visible) || isHeaderFilterEnabledInAnyColumn) && React__default.createElement(DataGrid.HeaderFilter, Object.assign({}, headerFilterFromProps, {
35901
35836
  visible: true
35902
- }), isFilterRowFromProps && React__default.createElement(DataGrid.FilterRow, {
35837
+ })), isFilterRowFromProps && React__default.createElement(DataGrid.FilterRow, {
35903
35838
  visible: isFilterRowFromProps
35904
35839
  }), actionColumnEnableFromProps && actionButtonGroupFromProps && React__default.createElement(DataGrid.Column, {
35905
35840
  dataField: "Actions",