ods-component-lib 1.18.125 → 1.18.127
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.
- package/dist/components/antd/fileUpload/OdsFileUpload.d.ts +5 -0
- package/dist/components/antd/form/OdsBasicForm.d.ts +18 -0
- package/dist/components/antd/icon/OdsIcon.d.ts +10 -0
- package/dist/components/antd/modal/OdsAdvanceModal.d.ts +7 -0
- package/dist/components/antd/select/OdsCustomMultiSelect.d.ts +7 -0
- package/dist/components/antd/select/OdsMultiSelect.d.ts +9 -0
- package/dist/components/custom/OdsLogin.d.ts +8 -0
- package/dist/components/devextreme/DxDataPopupForm.d.ts +3 -0
- package/dist/components/devextreme/DynamicIcon.d.ts +5 -0
- package/dist/components/devextreme/OdsDataGridNew.d.ts +56 -0
- package/dist/components/devextreme/OdsProfDataGrid.d.ts +3 -0
- package/dist/components/devextreme/treeview/DxTreeView.d.ts +3 -0
- package/dist/index.js +130 -103
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +130 -103
- package/dist/index.modern.js.map +1 -1
- package/dist/stories/OdsAdvanceModal/OdsAdvanceModal.stories.d.ts +42 -0
- package/dist/stories/OdsAdvanceModal/Samples/BasicOdsAdvanceModal.sample.d.ts +8 -0
- package/dist/stories/OdsCustomMultiSelect/OdsCustomMultiSelect.stories.d.ts +9 -0
- package/dist/stories/OdsCustomMultiSelect/Samples/Basic.Sample.d.ts +1 -0
- package/dist/stories/OdsCustomMultiSelect/Samples/ModeMultiple.Sample.d.ts +1 -0
- package/dist/stories/OdsFileUpload/OdsFileUpload.stories.d.ts +3 -0
- package/dist/stories/OdsLink/OdsLink.stories.d.ts +59 -0
- package/dist/stories/OdsTimePicker/Samples/TimeRangePicker.d.ts +2 -0
- package/package.json +1 -1
- /package/dist/components/antd/datepicker/{OdsDateRangepicker.d.ts → OdsDateRangePicker.d.ts} +0 -0
|
@@ -6,6 +6,11 @@ declare type FileUploadProps = {
|
|
|
6
6
|
allowDocumentUpload?: boolean;
|
|
7
7
|
multipleDoc?: boolean;
|
|
8
8
|
removeFile?: (file: any) => void;
|
|
9
|
+
customValidationMessages: IValidationMessageOptions;
|
|
9
10
|
};
|
|
11
|
+
interface IValidationMessageOptions {
|
|
12
|
+
sizeValidationFailMessage?: string;
|
|
13
|
+
typeValidationFailMessage?: string;
|
|
14
|
+
}
|
|
10
15
|
declare function OdsFileUpload(props: FileUploadProps): React.JSX.Element;
|
|
11
16
|
export default OdsFileUpload;
|
|
@@ -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,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,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;
|
package/dist/index.js
CHANGED
|
@@ -1761,7 +1761,8 @@ function OdsFileUpload(props) {
|
|
|
1761
1761
|
_props$allowDocumentU = props.allowDocumentUpload,
|
|
1762
1762
|
allowDocumentUpload = _props$allowDocumentU === void 0 ? false : _props$allowDocumentU,
|
|
1763
1763
|
_props$multipleDoc = props.multipleDoc,
|
|
1764
|
-
multipleDoc = _props$multipleDoc === void 0 ? false : _props$multipleDoc
|
|
1764
|
+
multipleDoc = _props$multipleDoc === void 0 ? false : _props$multipleDoc,
|
|
1765
|
+
customValidationMessages = props.customValidationMessages;
|
|
1765
1766
|
var _useState = React.useState(false),
|
|
1766
1767
|
previewOpen = _useState[0],
|
|
1767
1768
|
setPreviewOpen = _useState[1];
|
|
@@ -1815,9 +1816,21 @@ function OdsFileUpload(props) {
|
|
|
1815
1816
|
var isFileSizeOk = file.size / (1024 * 1024) <= 1;
|
|
1816
1817
|
var checkType = fileType.includes(file.type);
|
|
1817
1818
|
if (!checkType) {
|
|
1819
|
+
OdsNotification({
|
|
1820
|
+
title: "",
|
|
1821
|
+
content: customValidationMessages.typeValidationFailMessage,
|
|
1822
|
+
type: "warning",
|
|
1823
|
+
placement: "bottom"
|
|
1824
|
+
});
|
|
1818
1825
|
return Promise.resolve(antd.Upload.LIST_IGNORE);
|
|
1819
1826
|
}
|
|
1820
1827
|
if (!isFileSizeOk) {
|
|
1828
|
+
OdsNotification({
|
|
1829
|
+
title: "",
|
|
1830
|
+
content: customValidationMessages.sizeValidationFailMessage,
|
|
1831
|
+
type: "warning",
|
|
1832
|
+
placement: "bottom"
|
|
1833
|
+
});
|
|
1821
1834
|
return Promise.resolve(antd.Upload.LIST_IGNORE);
|
|
1822
1835
|
}
|
|
1823
1836
|
return Promise.resolve(false);
|
|
@@ -33488,39 +33501,33 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
33488
33501
|
var _useState2 = React.useState(props.columns),
|
|
33489
33502
|
gridColumns = _useState2[0],
|
|
33490
33503
|
setGridColumns = _useState2[1];
|
|
33491
|
-
var _useState3 = React.useState(
|
|
33492
|
-
|
|
33493
|
-
|
|
33494
|
-
var _useState4 = React.useState(
|
|
33495
|
-
|
|
33496
|
-
|
|
33497
|
-
var _useState5 = React.useState(
|
|
33498
|
-
|
|
33499
|
-
|
|
33500
|
-
var _useState6 = React.useState(
|
|
33501
|
-
|
|
33502
|
-
|
|
33504
|
+
var _useState3 = React.useState([]),
|
|
33505
|
+
data = _useState3[0],
|
|
33506
|
+
setData = _useState3[1];
|
|
33507
|
+
var _useState4 = React.useState(0),
|
|
33508
|
+
filteredRowCount = _useState4[0],
|
|
33509
|
+
setFilteredRowCount = _useState4[1];
|
|
33510
|
+
var _useState5 = React.useState(false),
|
|
33511
|
+
isFastUpdateModalOpen = _useState5[0],
|
|
33512
|
+
setIsFastUpdateModalOpen = _useState5[1];
|
|
33513
|
+
var _useState6 = React.useState([]),
|
|
33514
|
+
selectedCells = _useState6[0],
|
|
33515
|
+
setSelectedCells = _useState6[1];
|
|
33503
33516
|
var _useState7 = React.useState([]),
|
|
33504
|
-
|
|
33505
|
-
|
|
33517
|
+
hoveredCells = _useState7[0],
|
|
33518
|
+
setHoveredCells = _useState7[1];
|
|
33506
33519
|
var _useState8 = React.useState([]),
|
|
33507
|
-
|
|
33508
|
-
|
|
33509
|
-
var _useState9 = React.useState(
|
|
33510
|
-
|
|
33511
|
-
|
|
33520
|
+
ctrlSelectedCells = _useState8[0],
|
|
33521
|
+
setCtrlSelectedCells = _useState8[1];
|
|
33522
|
+
var _useState9 = React.useState(false),
|
|
33523
|
+
ctrlSelection = _useState9[0],
|
|
33524
|
+
setCtrlSelection = _useState9[1];
|
|
33512
33525
|
var _useState10 = React.useState(false),
|
|
33513
|
-
|
|
33514
|
-
|
|
33515
|
-
var _useState11 = React.useState(
|
|
33516
|
-
|
|
33517
|
-
|
|
33518
|
-
var _useState12 = React.useState(0),
|
|
33519
|
-
scrollPosition = _useState12[0],
|
|
33520
|
-
setScrollPosition = _useState12[1];
|
|
33521
|
-
var _useState13 = React.useState(0),
|
|
33522
|
-
rowCount = _useState13[0],
|
|
33523
|
-
setRowCount = _useState13[1];
|
|
33526
|
+
contentReady = _useState10[0],
|
|
33527
|
+
setContentReady = _useState10[1];
|
|
33528
|
+
var _useState11 = React.useState(0),
|
|
33529
|
+
scrollPosition = _useState11[0],
|
|
33530
|
+
setScrollPosition = _useState11[1];
|
|
33524
33531
|
var _useStyles = useStyles(),
|
|
33525
33532
|
gridStyle = _useStyles.styles;
|
|
33526
33533
|
React.useEffect(function () {
|
|
@@ -33529,7 +33536,6 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
33529
33536
|
constants.totalRecordCount = 0;
|
|
33530
33537
|
}, [props.dataGridPageName]);
|
|
33531
33538
|
React.useEffect(function () {
|
|
33532
|
-
console.log(rowCount);
|
|
33533
33539
|
if (props.columns !== undefined && props.columns.length > 0) {
|
|
33534
33540
|
var newColumns = props.columns.map(function (colItem) {
|
|
33535
33541
|
if (colItem.tooltip !== undefined && colItem.tooltip.enable) {
|
|
@@ -33593,15 +33599,12 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
33593
33599
|
var dataGridInstance = gridRef.current.instance;
|
|
33594
33600
|
dataGridInstance.on("dataChanged", checkData);
|
|
33595
33601
|
checkData();
|
|
33596
|
-
setLoading(false);
|
|
33597
33602
|
return function () {
|
|
33598
33603
|
document.head.removeChild(styleSheet);
|
|
33599
33604
|
dataGridInstance.off("dataChanged", checkData);
|
|
33600
33605
|
};
|
|
33601
33606
|
}, [data]);
|
|
33602
33607
|
var onCustomSelectionChanged = React.useCallback(function (e) {
|
|
33603
|
-
var selectedRows = gridRef.current.instance.getSelectedRowsData();
|
|
33604
|
-
setRowCount(selectedRows.length);
|
|
33605
33608
|
if (props.onSelectionChanged) {
|
|
33606
33609
|
props.onSelectionChanged(e);
|
|
33607
33610
|
}
|
|
@@ -33954,10 +33957,6 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
33954
33957
|
var handleContentReady = function handleContentReady(e) {
|
|
33955
33958
|
var dataGridInstance = e.component;
|
|
33956
33959
|
var filteredDataCount = dataGridInstance.totalCount();
|
|
33957
|
-
if (gridRef.current && gridRef.current.instance) {
|
|
33958
|
-
var selectedRows = gridRef.current.instance.getSelectedRowsData();
|
|
33959
|
-
setRowCount(selectedRows.length);
|
|
33960
|
-
}
|
|
33961
33960
|
if (filterApplied.current && filteredDataCount > 0) {
|
|
33962
33961
|
setFilteredRowCount(filteredDataCount);
|
|
33963
33962
|
} else {
|
|
@@ -34275,9 +34274,6 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
34275
34274
|
showInfo: false
|
|
34276
34275
|
}), React__default.createElement(DataGrid.Scrolling, {
|
|
34277
34276
|
mode: "infinite"
|
|
34278
|
-
}), loading && React__default.createElement(DataGrid.LoadPanel, {
|
|
34279
|
-
enabled: true,
|
|
34280
|
-
shadingColor: "rgba(0,0,0,0.4)"
|
|
34281
34277
|
}), React__default.createElement(DataGrid.SearchPanel, {
|
|
34282
34278
|
visible: true
|
|
34283
34279
|
}), React__default.createElement(DataGrid.FilterRow, {
|
|
@@ -35001,16 +34997,17 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35001
34997
|
var _useState = React.useState(50),
|
|
35002
34998
|
currentPageSize = _useState[0],
|
|
35003
34999
|
setCurrentPageSize = _useState[1];
|
|
35004
|
-
var _useState2 = React.useState(
|
|
35005
|
-
|
|
35006
|
-
|
|
35007
|
-
var _useState3 = React.useState(
|
|
35008
|
-
|
|
35009
|
-
|
|
35000
|
+
var _useState2 = React.useState(0),
|
|
35001
|
+
currentPage = _useState2[0],
|
|
35002
|
+
setCurrentPage = _useState2[1];
|
|
35003
|
+
var _useState3 = React.useState(false),
|
|
35004
|
+
filterApplied = _useState3[0],
|
|
35005
|
+
setFilterApplied = _useState3[1];
|
|
35006
|
+
var totalUnfilteredCount = React.useRef(0);
|
|
35007
|
+
var totalFilteredCount = React.useRef(0);
|
|
35010
35008
|
var _useState4 = React.useState(false),
|
|
35011
|
-
|
|
35012
|
-
|
|
35013
|
-
var filteredRowCount = React.useRef(0);
|
|
35009
|
+
updateTrigger = _useState4[0],
|
|
35010
|
+
setUpdateTrigger = _useState4[1];
|
|
35014
35011
|
var lastPageIndexRef = React.useRef(null);
|
|
35015
35012
|
var _useState5 = React.useState({}),
|
|
35016
35013
|
filterOptions = _useState5[0],
|
|
@@ -35022,63 +35019,23 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35022
35019
|
gridStyle = _useStyles.styles;
|
|
35023
35020
|
var renderTotal = React.useCallback(function () {
|
|
35024
35021
|
var _props$customSummary, _props$customSummary2, _props$customSummary3, _props$customSummary4;
|
|
35025
|
-
var totalLoaded =
|
|
35022
|
+
var totalLoaded = filterApplied ? totalFilteredCount.current : totalUnfilteredCount.current;
|
|
35026
35023
|
var loadedPage = currentPage + 1;
|
|
35027
35024
|
var totalRecords = props.totalRecordCount;
|
|
35028
35025
|
var totalPageCount = Math.ceil(totalRecords / currentPageSize);
|
|
35029
|
-
if (totalLoaded === 0) {
|
|
35026
|
+
if (totalLoaded === 0 || totalLoaded === -1) {
|
|
35030
35027
|
return "";
|
|
35031
35028
|
}
|
|
35032
35029
|
var displayText = filterApplied ? totalLoaded + " " + ((_props$customSummary = props.customSummary) === null || _props$customSummary === void 0 ? void 0 : _props$customSummary.summaryFilteredDataLabel) + " - " : totalLoaded + " " + ((_props$customSummary2 = props.customSummary) === null || _props$customSummary2 === void 0 ? void 0 : _props$customSummary2.summaryLoadedDataLabel) + " - ";
|
|
35033
35030
|
var result = "" + displayText + totalRecords + " " + ((_props$customSummary3 = props.customSummary) === null || _props$customSummary3 === void 0 ? void 0 : _props$customSummary3.summaryTotalDataLabel);
|
|
35034
35031
|
result += " - " + ((_props$customSummary4 = props.customSummary) === null || _props$customSummary4 === void 0 ? void 0 : _props$customSummary4.summaryTotalPageCountLabel) + " " + loadedPage + " / " + totalPageCount;
|
|
35035
35032
|
return result;
|
|
35036
|
-
}, [
|
|
35037
|
-
React.useEffect(function () {
|
|
35038
|
-
var loadFilterData = function loadFilterData() {
|
|
35039
|
-
try {
|
|
35040
|
-
var newFilterOptions = {};
|
|
35041
|
-
var _loop = function _loop() {
|
|
35042
|
-
var col = _step.value;
|
|
35043
|
-
try {
|
|
35044
|
-
if (headerFilterData.length > 0) {
|
|
35045
|
-
var newData = headerFilterData.filter(function (item) {
|
|
35046
|
-
return item[col.dataField] != null && item[col.dataField] !== "";
|
|
35047
|
-
}).map(function (item) {
|
|
35048
|
-
return item[col.dataField].toString();
|
|
35049
|
-
});
|
|
35050
|
-
var values = newData.map(function (group) {
|
|
35051
|
-
return {
|
|
35052
|
-
text: group,
|
|
35053
|
-
value: group
|
|
35054
|
-
};
|
|
35055
|
-
});
|
|
35056
|
-
newFilterOptions[col.dataField] = values;
|
|
35057
|
-
}
|
|
35058
|
-
} catch (error) {
|
|
35059
|
-
console.error('Error loading data for header filter:', error);
|
|
35060
|
-
}
|
|
35061
|
-
};
|
|
35062
|
-
for (var _iterator = _createForOfIteratorHelperLoose(props.columns), _step; !(_step = _iterator()).done;) {
|
|
35063
|
-
_loop();
|
|
35064
|
-
}
|
|
35065
|
-
setFilterOptions(newFilterOptions);
|
|
35066
|
-
return Promise.resolve();
|
|
35067
|
-
} catch (e) {
|
|
35068
|
-
return Promise.reject(e);
|
|
35069
|
-
}
|
|
35070
|
-
};
|
|
35071
|
-
loadFilterData();
|
|
35072
|
-
}, [headerFilterData]);
|
|
35073
|
-
React.useEffect(function () {
|
|
35074
|
-
setHeaderFilterData([]);
|
|
35075
|
-
}, []);
|
|
35033
|
+
}, [currentPage, currentPageSize, filterApplied, props.customSummary, props.totalRecordCount]);
|
|
35076
35034
|
var handleContentReady = React.useCallback(function (e) {
|
|
35077
35035
|
var _dataGridInstance$get;
|
|
35078
35036
|
var dataGridInstance = e.component;
|
|
35079
35037
|
var currentPageIndex = dataGridInstance.pageIndex();
|
|
35080
35038
|
var currentTotalCount = dataGridInstance.totalCount();
|
|
35081
|
-
var currentPageSizeValue = dataGridInstance.pageSize();
|
|
35082
35039
|
var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
|
|
35083
35040
|
if (lastPageIndexRef.current !== currentPageIndex && newData && newData.length > 0) {
|
|
35084
35041
|
setHeaderFilterData(function (prevData) {
|
|
@@ -35107,24 +35064,94 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35107
35064
|
});
|
|
35108
35065
|
return [].concat(prevData, newItems);
|
|
35109
35066
|
});
|
|
35067
|
+
setCurrentPage(currentPageIndex);
|
|
35068
|
+
setCurrentPageSize(dataGridInstance.pageSize());
|
|
35069
|
+
rowCount.current = currentTotalCount;
|
|
35070
|
+
if (filterApplied) {
|
|
35071
|
+
totalFilteredCount.current = currentTotalCount;
|
|
35072
|
+
} else {
|
|
35073
|
+
totalUnfilteredCount.current = currentTotalCount;
|
|
35074
|
+
}
|
|
35075
|
+
if (!filterApplied && totalFilteredCount.current === 0) {
|
|
35076
|
+
totalFilteredCount.current = totalUnfilteredCount.current;
|
|
35077
|
+
}
|
|
35078
|
+
setUpdateTrigger(function (prev) {
|
|
35079
|
+
return !prev;
|
|
35080
|
+
});
|
|
35110
35081
|
lastPageIndexRef.current = currentPageIndex;
|
|
35111
|
-
if (!contentReady) setContentReady(true);
|
|
35112
35082
|
}
|
|
35113
|
-
|
|
35114
|
-
setCurrentPageSize(currentPageSizeValue);
|
|
35115
|
-
rowCount.current = currentTotalCount > -1 ? currentTotalCount : rowCount.current;
|
|
35116
|
-
}, []);
|
|
35083
|
+
}, [props.columns, filterApplied]);
|
|
35117
35084
|
var handleOptionChanged = React.useCallback(function (e) {
|
|
35085
|
+
var dataGrid = props.dataGridRef.current.instance;
|
|
35086
|
+
var updateFilterStatus = function updateFilterStatus(value) {
|
|
35087
|
+
var active = value !== "" && value !== null && value !== undefined && !(Array.isArray(value) && value.length === 0);
|
|
35088
|
+
setFilterApplied(active);
|
|
35089
|
+
return active;
|
|
35090
|
+
};
|
|
35118
35091
|
if (e.fullName.includes("sortOrder")) {
|
|
35119
|
-
|
|
35092
|
+
dataGrid.getScrollable().scrollTo(0);
|
|
35120
35093
|
}
|
|
35094
|
+
var filterActive = false;
|
|
35121
35095
|
if (e.name === "filterValue") {
|
|
35122
|
-
|
|
35096
|
+
filterActive = updateFilterStatus(e.value);
|
|
35123
35097
|
} else if (e.name === "columns" && e.fullName.includes("filterValue")) {
|
|
35124
|
-
|
|
35125
|
-
} else if (e.name === "filterPanel" && e.fullName
|
|
35098
|
+
filterActive = updateFilterStatus(e.value);
|
|
35099
|
+
} else if (e.name === "filterPanel" && e.fullName.includes("filterPanel.filterEnabled")) {
|
|
35126
35100
|
setFilterApplied(e.value);
|
|
35101
|
+
filterActive = e.value;
|
|
35102
|
+
} else if (e.fullName.includes("searchPanel.text")) {
|
|
35103
|
+
filterActive = updateFilterStatus(e.value);
|
|
35104
|
+
}
|
|
35105
|
+
if (filterActive) {
|
|
35106
|
+
setTimeout(function () {
|
|
35107
|
+
dataGrid.refresh().done(function () {
|
|
35108
|
+
totalFilteredCount.current = dataGrid.totalCount();
|
|
35109
|
+
setUpdateTrigger(function (prev) {
|
|
35110
|
+
return !prev;
|
|
35111
|
+
});
|
|
35112
|
+
});
|
|
35113
|
+
}, 0);
|
|
35127
35114
|
}
|
|
35115
|
+
}, [props.dataGridRef]);
|
|
35116
|
+
React.useEffect(function () {}, [updateTrigger]);
|
|
35117
|
+
React.useEffect(function () {
|
|
35118
|
+
var loadFilterData = function loadFilterData() {
|
|
35119
|
+
try {
|
|
35120
|
+
var newFilterOptions = {};
|
|
35121
|
+
var _loop = function _loop() {
|
|
35122
|
+
var col = _step.value;
|
|
35123
|
+
try {
|
|
35124
|
+
if (headerFilterData.length > 0) {
|
|
35125
|
+
var newData = headerFilterData.filter(function (item) {
|
|
35126
|
+
return item[col.dataField] != null && item[col.dataField] !== "";
|
|
35127
|
+
}).map(function (item) {
|
|
35128
|
+
return item[col.dataField].toString();
|
|
35129
|
+
});
|
|
35130
|
+
var values = newData.map(function (group) {
|
|
35131
|
+
return {
|
|
35132
|
+
text: group,
|
|
35133
|
+
value: group
|
|
35134
|
+
};
|
|
35135
|
+
});
|
|
35136
|
+
newFilterOptions[col.dataField] = values;
|
|
35137
|
+
}
|
|
35138
|
+
} catch (error) {
|
|
35139
|
+
console.error('Error loading data for header filter:', error);
|
|
35140
|
+
}
|
|
35141
|
+
};
|
|
35142
|
+
for (var _iterator = _createForOfIteratorHelperLoose(props.columns), _step; !(_step = _iterator()).done;) {
|
|
35143
|
+
_loop();
|
|
35144
|
+
}
|
|
35145
|
+
setFilterOptions(newFilterOptions);
|
|
35146
|
+
return Promise.resolve();
|
|
35147
|
+
} catch (e) {
|
|
35148
|
+
return Promise.reject(e);
|
|
35149
|
+
}
|
|
35150
|
+
};
|
|
35151
|
+
loadFilterData();
|
|
35152
|
+
}, [headerFilterData, props.columns]);
|
|
35153
|
+
React.useEffect(function () {
|
|
35154
|
+
setHeaderFilterData([]);
|
|
35128
35155
|
}, []);
|
|
35129
35156
|
var actionButtons = React.useMemo(function () {
|
|
35130
35157
|
if (props.actionButtonGroup) {
|