ods-component-lib 1.18.117 → 1.18.122
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/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/OdsServerSideDatagrid/OdsServerSideDatagrid.Types.d.ts +1 -0
- package/dist/components/devextreme/treeview/DxTreeView.d.ts +3 -0
- package/dist/index.js +196 -77
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +196 -77
- 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/OdsLink/OdsLink.stories.d.ts +59 -0
- package/dist/stories/OdsTimePicker/Samples/TimeRangePicker.d.ts +2 -0
- package/dist/utils/ExportDataGridtoExcel.d.ts +9 -0
- package/package.json +1 -1
- /package/dist/components/antd/datepicker/{OdsDateRangepicker.d.ts → OdsDateRangePicker.d.ts} +0 -0
|
@@ -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
|
@@ -25,7 +25,7 @@ var outline = require('ods-icon/react/24/outline');
|
|
|
25
25
|
var devextremeReact = require('devextreme-react');
|
|
26
26
|
var antdStyle = require('antd-style');
|
|
27
27
|
require('devextreme/dist/css/dx.light.css');
|
|
28
|
-
var
|
|
28
|
+
var FileSaver = require('file-saver');
|
|
29
29
|
|
|
30
30
|
function _extends() {
|
|
31
31
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -60,6 +60,37 @@ function _taggedTemplateLiteralLoose(strings, raw) {
|
|
|
60
60
|
strings.raw = raw;
|
|
61
61
|
return strings;
|
|
62
62
|
}
|
|
63
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
64
|
+
if (!o) return;
|
|
65
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
66
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
67
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
68
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
69
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
70
|
+
}
|
|
71
|
+
function _arrayLikeToArray(arr, len) {
|
|
72
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
73
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
74
|
+
return arr2;
|
|
75
|
+
}
|
|
76
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
77
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
78
|
+
if (it) return (it = it.call(o)).next.bind(it);
|
|
79
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
80
|
+
if (it) o = it;
|
|
81
|
+
var i = 0;
|
|
82
|
+
return function () {
|
|
83
|
+
if (i >= o.length) return {
|
|
84
|
+
done: true
|
|
85
|
+
};
|
|
86
|
+
return {
|
|
87
|
+
done: false,
|
|
88
|
+
value: o[i++]
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
93
|
+
}
|
|
63
94
|
|
|
64
95
|
var _templateObject;
|
|
65
96
|
var StyledAlert = styled__default(antd.Alert)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n //\n"])));
|
|
@@ -33859,10 +33890,11 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
33859
33890
|
};
|
|
33860
33891
|
}, [data]);
|
|
33861
33892
|
var onCustomSelectionChanged = React.useCallback(function (e) {
|
|
33862
|
-
|
|
33863
|
-
|
|
33864
|
-
|
|
33865
|
-
|
|
33893
|
+
var selectedRows = gridRef.current.instance.getSelectedRowsData();
|
|
33894
|
+
setRowCount(selectedRows.length);
|
|
33895
|
+
if (props.onSelectionChanged) {
|
|
33896
|
+
props.onSelectionChanged(e);
|
|
33897
|
+
}
|
|
33866
33898
|
}, []);
|
|
33867
33899
|
var checkSortingPropertyForInitilaize = function checkSortingPropertyForInitilaize() {
|
|
33868
33900
|
var onOptionChanged = props.onOptionChanged;
|
|
@@ -34386,9 +34418,8 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
34386
34418
|
var dataGridInstance = e.component;
|
|
34387
34419
|
var filteredDataCount = dataGridInstance.totalCount();
|
|
34388
34420
|
if (gridRef.current && gridRef.current.instance) {
|
|
34389
|
-
gridRef.current.instance.getSelectedRowsData()
|
|
34390
|
-
|
|
34391
|
-
});
|
|
34421
|
+
var selectedRows = gridRef.current.instance.getSelectedRowsData();
|
|
34422
|
+
setRowCount(selectedRows.length);
|
|
34392
34423
|
}
|
|
34393
34424
|
if (filterApplied.current && filteredDataCount > 0) {
|
|
34394
34425
|
setFilteredRowCount(filteredDataCount);
|
|
@@ -35070,71 +35101,6 @@ var useStyles$1 = antdStyle.createStyles(function (_ref) {
|
|
|
35070
35101
|
};
|
|
35071
35102
|
});
|
|
35072
35103
|
|
|
35073
|
-
var onExporting = function onExporting(e, baseFileName, getSummary) {
|
|
35074
|
-
if (baseFileName === void 0) {
|
|
35075
|
-
baseFileName = 'DataGrid';
|
|
35076
|
-
}
|
|
35077
|
-
var workbook = new exceljs.Workbook();
|
|
35078
|
-
var worksheet = workbook.addWorksheet('Main sheet');
|
|
35079
|
-
var rowCount = 0;
|
|
35080
|
-
var lastProcessedRowData = null;
|
|
35081
|
-
var now = new Date();
|
|
35082
|
-
var datePart = ('0' + now.getDate()).slice(-2) + "." + ('0' + (now.getMonth() + 1)).slice(-2) + "." + now.getFullYear();
|
|
35083
|
-
var timePart = ('0' + now.getHours()).slice(-2) + ":" + ('0' + now.getMinutes()).slice(-2);
|
|
35084
|
-
var fullFileName = baseFileName + "-" + datePart + " / " + timePart + ".xlsx";
|
|
35085
|
-
excel_exporter.exportDataGrid({
|
|
35086
|
-
component: e.component,
|
|
35087
|
-
worksheet: worksheet,
|
|
35088
|
-
selectedRowsOnly: e.selectedRowsOnly,
|
|
35089
|
-
customizeCell: function customizeCell(_ref) {
|
|
35090
|
-
var gridCell = _ref.gridCell,
|
|
35091
|
-
excelCell = _ref.excelCell;
|
|
35092
|
-
if (gridCell.rowType === 'data' && lastProcessedRowData !== gridCell.data) {
|
|
35093
|
-
rowCount++;
|
|
35094
|
-
lastProcessedRowData = gridCell.data;
|
|
35095
|
-
}
|
|
35096
|
-
if (gridCell.column.dataType === "datetime" && gridCell.value) {
|
|
35097
|
-
var date = moment(gridCell.value);
|
|
35098
|
-
var offsetMinutes = date.utcOffset();
|
|
35099
|
-
var sign = offsetMinutes >= 0 ? "+" : "-";
|
|
35100
|
-
var hours = Math.floor(Math.abs(offsetMinutes) / 60);
|
|
35101
|
-
var minutes = Math.abs(offsetMinutes) % 60;
|
|
35102
|
-
var formattedOffset = "UTC" + sign + hours.toString().padStart(2, "0") + ":" + minutes.toString().padStart(2, "0");
|
|
35103
|
-
var formattedDate = date.format("DD.MM.YYYY HH:mm") + " " + formattedOffset;
|
|
35104
|
-
excelCell.value = formattedDate;
|
|
35105
|
-
} else {
|
|
35106
|
-
excelCell.font = {
|
|
35107
|
-
name: 'Arial',
|
|
35108
|
-
size: 12
|
|
35109
|
-
};
|
|
35110
|
-
excelCell.alignment = {
|
|
35111
|
-
horizontal: 'left'
|
|
35112
|
-
};
|
|
35113
|
-
}
|
|
35114
|
-
}
|
|
35115
|
-
}).then(function () {
|
|
35116
|
-
var summaryResult = getSummary();
|
|
35117
|
-
var summaryText = e.selectedRowsOnly ? summaryResult + " - " + rowCount + " Selected" : summaryResult;
|
|
35118
|
-
if (summaryText) {
|
|
35119
|
-
var lastRow = worksheet.addRow([summaryText]);
|
|
35120
|
-
lastRow.font = {
|
|
35121
|
-
name: 'Arial',
|
|
35122
|
-
size: 10,
|
|
35123
|
-
bold: true
|
|
35124
|
-
};
|
|
35125
|
-
lastRow.alignment = {
|
|
35126
|
-
horizontal: 'left'
|
|
35127
|
-
};
|
|
35128
|
-
}
|
|
35129
|
-
workbook.xlsx.writeBuffer().then(function (buffer) {
|
|
35130
|
-
saveAs(new Blob([buffer], {
|
|
35131
|
-
type: 'application/octet-stream'
|
|
35132
|
-
}), fullFileName);
|
|
35133
|
-
});
|
|
35134
|
-
});
|
|
35135
|
-
e.cancel = true;
|
|
35136
|
-
};
|
|
35137
|
-
|
|
35138
35104
|
var iconComponents = {
|
|
35139
35105
|
edit: outline.EditIcon,
|
|
35140
35106
|
"delete": outline.Trash1Icon,
|
|
@@ -35156,6 +35122,67 @@ var DynamicIcon = function DynamicIcon(_ref) {
|
|
|
35156
35122
|
return React__default.createElement(IconComponent, null);
|
|
35157
35123
|
};
|
|
35158
35124
|
|
|
35125
|
+
var ExportDataGridToExcel = function ExportDataGridToExcel(_ref) {
|
|
35126
|
+
var gridComponent = _ref.gridComponent,
|
|
35127
|
+
baseFileName = _ref.baseFileName,
|
|
35128
|
+
selectedText = _ref.selectedText,
|
|
35129
|
+
getSummary = _ref.getSummary,
|
|
35130
|
+
selectedRowsOnly = _ref.selectedRowsOnly;
|
|
35131
|
+
var workbook = new exceljs.Workbook();
|
|
35132
|
+
var worksheet = workbook.addWorksheet('Main Sheet');
|
|
35133
|
+
var lastProcessedRowData = null;
|
|
35134
|
+
var rowCount = 0;
|
|
35135
|
+
excel_exporter.exportDataGrid({
|
|
35136
|
+
component: gridComponent,
|
|
35137
|
+
worksheet: worksheet,
|
|
35138
|
+
selectedRowsOnly: selectedRowsOnly,
|
|
35139
|
+
customizeCell: function customizeCell(options) {
|
|
35140
|
+
var gridCell = options.gridCell,
|
|
35141
|
+
excelCell = options.excelCell;
|
|
35142
|
+
if (gridCell && excelCell) {
|
|
35143
|
+
if (gridCell.rowType === 'data' && lastProcessedRowData !== gridCell.data) {
|
|
35144
|
+
rowCount++;
|
|
35145
|
+
lastProcessedRowData = gridCell.data;
|
|
35146
|
+
}
|
|
35147
|
+
if (gridCell.column.dataType === "datetime" && gridCell.value) {
|
|
35148
|
+
var date = moment(gridCell.value);
|
|
35149
|
+
var formattedDate = date.format("DD.MM.YYYY HH:mm [UTC]Z");
|
|
35150
|
+
excelCell.value = formattedDate;
|
|
35151
|
+
} else {
|
|
35152
|
+
excelCell.font = {
|
|
35153
|
+
name: 'Arial',
|
|
35154
|
+
size: 12
|
|
35155
|
+
};
|
|
35156
|
+
excelCell.alignment = {
|
|
35157
|
+
horizontal: 'left'
|
|
35158
|
+
};
|
|
35159
|
+
}
|
|
35160
|
+
}
|
|
35161
|
+
}
|
|
35162
|
+
}).then(function () {
|
|
35163
|
+
var summaryResult = getSummary();
|
|
35164
|
+
var summaryText = selectedRowsOnly ? summaryResult + " - " + rowCount + " " + selectedText : summaryResult;
|
|
35165
|
+
var lastRow = worksheet.addRow([summaryText]);
|
|
35166
|
+
lastRow.font = {
|
|
35167
|
+
name: 'Arial',
|
|
35168
|
+
size: 10,
|
|
35169
|
+
bold: true
|
|
35170
|
+
};
|
|
35171
|
+
lastRow.alignment = {
|
|
35172
|
+
horizontal: 'left'
|
|
35173
|
+
};
|
|
35174
|
+
workbook.xlsx.writeBuffer().then(function (buffer) {
|
|
35175
|
+
var now = new Date();
|
|
35176
|
+
var datePart = ('0' + now.getDate()).slice(-2) + "-" + ('0' + (now.getMonth() + 1)).slice(-2) + "-" + now.getFullYear();
|
|
35177
|
+
var timePart = ('0' + now.getHours()).slice(-2) + ":" + ('0' + now.getMinutes()).slice(-2);
|
|
35178
|
+
var fullFileName = baseFileName + "-" + datePart + "-" + timePart + ".xlsx";
|
|
35179
|
+
FileSaver.saveAs(new Blob([buffer], {
|
|
35180
|
+
type: 'application/octet-stream'
|
|
35181
|
+
}), fullFileName);
|
|
35182
|
+
});
|
|
35183
|
+
});
|
|
35184
|
+
};
|
|
35185
|
+
|
|
35159
35186
|
var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
35160
35187
|
var _props$columnResizing, _props$pagerProps$vis, _props$pagerProps, _props$pagerProps$sho, _props$pagerProps2, _props$pagerProps$sho2, _props$pagerProps3, _props$pagerProps$dis, _props$pagerProps4, _props$pagerProps$inf, _props$pagerProps5, _props$exportProps;
|
|
35161
35188
|
var rowCount = React.useRef(0);
|
|
@@ -35172,8 +35199,13 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35172
35199
|
filterApplied = _useState4[0],
|
|
35173
35200
|
setFilterApplied = _useState4[1];
|
|
35174
35201
|
var filteredRowCount = React.useRef(0);
|
|
35175
|
-
var filterOptions = React.useRef({});
|
|
35176
35202
|
var lastPageIndexRef = React.useRef(null);
|
|
35203
|
+
var _useState5 = React.useState({}),
|
|
35204
|
+
filterOptions = _useState5[0],
|
|
35205
|
+
setFilterOptions = _useState5[1];
|
|
35206
|
+
var _useState6 = React.useState([]),
|
|
35207
|
+
headerFilterData = _useState6[0],
|
|
35208
|
+
setHeaderFilterData = _useState6[1];
|
|
35177
35209
|
var _useStyles = useStyles$1(),
|
|
35178
35210
|
gridStyle = _useStyles.styles;
|
|
35179
35211
|
var renderTotal = React.useCallback(function () {
|
|
@@ -35190,6 +35222,45 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35190
35222
|
result += " - " + ((_props$customSummary4 = props.customSummary) === null || _props$customSummary4 === void 0 ? void 0 : _props$customSummary4.summaryTotalPageCountLabel) + " " + loadedPage + " / " + totalPageCount;
|
|
35191
35223
|
return result;
|
|
35192
35224
|
}, [props.totalRecordCount, currentPageSize, props.customSummary, currentPage, filteredRowCount.current, filterApplied]);
|
|
35225
|
+
React.useEffect(function () {
|
|
35226
|
+
var loadFilterData = function loadFilterData() {
|
|
35227
|
+
try {
|
|
35228
|
+
var newFilterOptions = {};
|
|
35229
|
+
var _loop = function _loop() {
|
|
35230
|
+
var col = _step.value;
|
|
35231
|
+
try {
|
|
35232
|
+
if (headerFilterData.length > 0) {
|
|
35233
|
+
var newData = headerFilterData.filter(function (item) {
|
|
35234
|
+
return item[col.dataField] != null && item[col.dataField] !== "";
|
|
35235
|
+
}).map(function (item) {
|
|
35236
|
+
return item[col.dataField].toString();
|
|
35237
|
+
});
|
|
35238
|
+
var values = newData.map(function (group) {
|
|
35239
|
+
return {
|
|
35240
|
+
text: group,
|
|
35241
|
+
value: group
|
|
35242
|
+
};
|
|
35243
|
+
});
|
|
35244
|
+
newFilterOptions[col.dataField] = values;
|
|
35245
|
+
}
|
|
35246
|
+
} catch (error) {
|
|
35247
|
+
console.error('Error loading data for header filter:', error);
|
|
35248
|
+
}
|
|
35249
|
+
};
|
|
35250
|
+
for (var _iterator = _createForOfIteratorHelperLoose(props.columns), _step; !(_step = _iterator()).done;) {
|
|
35251
|
+
_loop();
|
|
35252
|
+
}
|
|
35253
|
+
setFilterOptions(newFilterOptions);
|
|
35254
|
+
return Promise.resolve();
|
|
35255
|
+
} catch (e) {
|
|
35256
|
+
return Promise.reject(e);
|
|
35257
|
+
}
|
|
35258
|
+
};
|
|
35259
|
+
loadFilterData();
|
|
35260
|
+
}, [headerFilterData]);
|
|
35261
|
+
React.useEffect(function () {
|
|
35262
|
+
setHeaderFilterData([]);
|
|
35263
|
+
}, []);
|
|
35193
35264
|
var handleContentReady = React.useCallback(function (e) {
|
|
35194
35265
|
var _dataGridInstance$get;
|
|
35195
35266
|
var dataGridInstance = e.component;
|
|
@@ -35198,6 +35269,32 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35198
35269
|
var currentPageSizeValue = dataGridInstance.pageSize();
|
|
35199
35270
|
var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
|
|
35200
35271
|
if (lastPageIndexRef.current !== currentPageIndex && newData && newData.length > 0) {
|
|
35272
|
+
setHeaderFilterData(function (prevData) {
|
|
35273
|
+
var uniqueValuesByColumn = {};
|
|
35274
|
+
props.columns.forEach(function (col) {
|
|
35275
|
+
uniqueValuesByColumn[col.dataField] = new Set(prevData.map(function (item) {
|
|
35276
|
+
return item[col.dataField];
|
|
35277
|
+
}).filter(function (val) {
|
|
35278
|
+
return val !== null && val !== "";
|
|
35279
|
+
}));
|
|
35280
|
+
});
|
|
35281
|
+
var newItems = [];
|
|
35282
|
+
newData.forEach(function (item) {
|
|
35283
|
+
var addItem = {};
|
|
35284
|
+
props.columns.forEach(function (col) {
|
|
35285
|
+
var _item$col$dataField;
|
|
35286
|
+
var colValue = (_item$col$dataField = item[col.dataField]) === null || _item$col$dataField === void 0 ? void 0 : _item$col$dataField.toString();
|
|
35287
|
+
if (colValue && !uniqueValuesByColumn[col.dataField].has(colValue)) {
|
|
35288
|
+
uniqueValuesByColumn[col.dataField].add(colValue);
|
|
35289
|
+
addItem[col.dataField] = colValue;
|
|
35290
|
+
}
|
|
35291
|
+
});
|
|
35292
|
+
if (Object.keys(addItem).length > 0) {
|
|
35293
|
+
newItems.push(addItem);
|
|
35294
|
+
}
|
|
35295
|
+
});
|
|
35296
|
+
return [].concat(prevData, newItems);
|
|
35297
|
+
});
|
|
35201
35298
|
lastPageIndexRef.current = currentPageIndex;
|
|
35202
35299
|
if (!contentReady) setContentReady(true);
|
|
35203
35300
|
}
|
|
@@ -35228,6 +35325,21 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35228
35325
|
return [];
|
|
35229
35326
|
}
|
|
35230
35327
|
}, [props.actionButtonGroup]);
|
|
35328
|
+
var onEditorPrepared = React.useCallback(function (info) {
|
|
35329
|
+
if (info.parentType === "filterRow" && info.editorName === "dxSelectBox" && info.dataField === "IsActive") {
|
|
35330
|
+
if (info.dataSource != null && info.dataSource.length > 0) {
|
|
35331
|
+
info.showAllText = info.dataSource.find(function (i) {
|
|
35332
|
+
return i.value === null;
|
|
35333
|
+
}).label;
|
|
35334
|
+
info.trueText = info.dataSource.find(function (i) {
|
|
35335
|
+
return i.value === true;
|
|
35336
|
+
}).label;
|
|
35337
|
+
info.falseText = info.dataSource.find(function (i) {
|
|
35338
|
+
return i.value === false;
|
|
35339
|
+
}).label;
|
|
35340
|
+
}
|
|
35341
|
+
}
|
|
35342
|
+
}, []);
|
|
35231
35343
|
function actionCellRender(cellData, props) {
|
|
35232
35344
|
var kebabMenuButtons = props.actionButtonGroup && props.actionButtonGroup.length >= 2 && !props.edit ? props.actionButtonGroup.slice(2).map(function (button) {
|
|
35233
35345
|
return {
|
|
@@ -35354,6 +35466,7 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35354
35466
|
enabled: true
|
|
35355
35467
|
},
|
|
35356
35468
|
focusedRowEnabled: false,
|
|
35469
|
+
onEditorPrepared: onEditorPrepared,
|
|
35357
35470
|
onCellClick: function onCellClick(e) {
|
|
35358
35471
|
e.cellElement.style.backgroundColor = "transparent";
|
|
35359
35472
|
},
|
|
@@ -35371,8 +35484,14 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35371
35484
|
}, props.sortingProps, {
|
|
35372
35485
|
"export": props.exportProps,
|
|
35373
35486
|
className: gridStyle.grid,
|
|
35374
|
-
onExporting: function onExporting
|
|
35375
|
-
return
|
|
35487
|
+
onExporting: function onExporting(e) {
|
|
35488
|
+
return ExportDataGridToExcel({
|
|
35489
|
+
gridComponent: e.component,
|
|
35490
|
+
baseFileName: props.exportProps.fileName,
|
|
35491
|
+
selectedText: props.exportProps.selectedText,
|
|
35492
|
+
getSummary: renderTotal,
|
|
35493
|
+
selectedRowsOnly: e.selectedRowsOnly
|
|
35494
|
+
});
|
|
35376
35495
|
},
|
|
35377
35496
|
onContentReady: handleContentReady,
|
|
35378
35497
|
onOptionChanged: handleOptionChanged,
|
|
@@ -35409,7 +35528,7 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
35409
35528
|
dataSource: [{
|
|
35410
35529
|
text: "(Blanks)",
|
|
35411
35530
|
value: null
|
|
35412
|
-
}].concat(filterOptions
|
|
35531
|
+
}].concat(filterOptions[col.dataField] || [])
|
|
35413
35532
|
}), col.multiLevelColumns && col.multiLevelColumns.map(function (multiLevelColItem) {
|
|
35414
35533
|
return React__default.createElement(DataGrid.Column, {
|
|
35415
35534
|
dataField: multiLevelColItem.dataField,
|