ods-component-lib 1.18.165 → 1.18.167
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/devextreme/OdsMasterDetailDataGrid/OdsMasterDetailDataGrid.d.ts +4 -0
- package/dist/components/devextreme/OdsMasterDetailDataGrid/handlers/OnActionButtons.d.ts +9 -0
- package/dist/components/devextreme/OdsMasterDetailDataGrid/handlers/OnActionCellRenderHandler.d.ts +11 -0
- package/dist/components/devextreme/OdsMasterDetailDataGrid/handlers/OnExportingHandler.d.ts +10 -0
- package/dist/components/devextreme/OdsMasterDetailDataGrid/types.d.ts +91 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +207 -21
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +207 -22
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/antd/form/OdsBasicForm.d.ts +0 -18
- package/dist/components/antd/icon/OdsIcon.d.ts +0 -10
- package/dist/components/antd/modal/OdsAdvanceModal.d.ts +0 -7
- package/dist/components/antd/select/OdsCustomMultiSelect.d.ts +0 -7
- package/dist/components/antd/select/OdsMultiSelect.d.ts +0 -9
- package/dist/components/custom/OdsLogin.d.ts +0 -8
- package/dist/components/devextreme/DxDataPopupForm.d.ts +0 -3
- package/dist/components/devextreme/DynamicIcon.d.ts +0 -5
- package/dist/components/devextreme/OdsDataGridNew.d.ts +0 -56
- package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/ContentHandlers.d.ts +0 -14
- package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/EditorPreparedHandlers.d.ts +0 -7
- package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OnExportingHandlers.d.ts +0 -19
- package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/OptionHandlers.d.ts +0 -7
- package/dist/components/devextreme/OdsInlineEditDataGrid/handlers/SummaryHandlers.d.ts +0 -21
- package/dist/components/devextreme/OdsInlineEditDataGrid/partials/ActionCellRender.d.ts +0 -15
- package/dist/components/devextreme/OdsInlineEditDataGrid/partials/EditingPartial.d.ts +0 -9
- package/dist/components/devextreme/OdsInlineEditDataGrid/partials/PageTitle.d.ts +0 -8
- package/dist/components/devextreme/OdsInlineEditDataGrid/utils.d.ts +0 -19
- package/dist/components/devextreme/OdsProfDataGrid.d.ts +0 -3
- package/dist/components/devextreme/treeview/DxTreeView.d.ts +0 -3
- package/dist/stories/OdsAdvanceModal/OdsAdvanceModal.stories.d.ts +0 -42
- package/dist/stories/OdsAdvanceModal/Samples/BasicOdsAdvanceModal.sample.d.ts +0 -8
- package/dist/stories/OdsCustomMultiSelect/OdsCustomMultiSelect.stories.d.ts +0 -9
- package/dist/stories/OdsCustomMultiSelect/Samples/Basic.Sample.d.ts +0 -1
- package/dist/stories/OdsCustomMultiSelect/Samples/ModeMultiple.Sample.d.ts +0 -1
- package/dist/stories/OdsLink/OdsLink.stories.d.ts +0 -59
- package/dist/stories/OdsTimePicker/Samples/TimeRangePicker.d.ts +0 -2
- /package/dist/components/antd/datepicker/{OdsDateRangePicker.d.ts → OdsDateRangepicker.d.ts} +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom React hook that determines which action buttons to display based on the edit state and the number of buttons.
|
|
3
|
+
* It limits the number of visible action buttons to the first two if there are more than three and editing is not active.
|
|
4
|
+
*
|
|
5
|
+
* @param {Array} actionButtonGroup - Array of all action button configurations.
|
|
6
|
+
* @param {boolean|Object} edit - Indicates if the edit mode is active, which may affect the visibility of action buttons.
|
|
7
|
+
* @returns {Array} A subset of action buttons based on the provided conditions.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useActionButtons(actionButtonGroup: any, edit: any): any;
|
package/dist/components/devextreme/OdsMasterDetailDataGrid/handlers/OnActionCellRenderHandler.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { IActionButtonsTooltipType, IButtonGrouOptions, IEditingOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Custom hook that returns a callback function for rendering action buttons in a cell.
|
|
5
|
+
* @param visibleActionButtons - An array of options for visible action buttons.
|
|
6
|
+
* @param actionButtonGroup - An array of options for action buttons.
|
|
7
|
+
* @param edit - An object containing editing options.
|
|
8
|
+
* @param tooltipType - The type of tooltip to display.
|
|
9
|
+
* @returns The onActionCellRender callback function.
|
|
10
|
+
*/
|
|
11
|
+
export declare const useOnActionCellRenderHandler: (visibleActionButtons: IButtonGrouOptions[] | undefined, actionButtonGroup: IButtonGrouOptions[] | undefined, edit?: IEditingOptions | undefined, actionButtonsTooltipType?: IActionButtonsTooltipType | undefined) => (cellData: any | undefined) => React.JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IExportOptions } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Handles the exporting of data from the grid component.
|
|
4
|
+
*
|
|
5
|
+
* @param {IExportOptions} exportProps - The export options for the data grid.
|
|
6
|
+
* @param {Function} callback - The callback function to be executed after exporting.
|
|
7
|
+
* @param {() => string} getSummary - The callback function to get the summary info.
|
|
8
|
+
* @returns {Function} - The onExporting event handler function.
|
|
9
|
+
*/
|
|
10
|
+
export declare const useOnExportingHandler: (exportProps: IExportOptions, getSummary: () => string, callback?: Function) => (e: any) => void;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IButtonProps, IColumnProps, IEditingProps, IExportProps, IScrollingProps, ISummaryProps } from "devextreme-react/data-grid";
|
|
3
|
+
import { ButtonType } from "devextreme/common";
|
|
4
|
+
export interface IColumnOptions extends Omit<IColumnProps, "cellRender" | "calculateFilterExpression" | "format"> {
|
|
5
|
+
cellRender?: (data: any) => JSX.Element | string;
|
|
6
|
+
calculateFilterExpression?: (value: any, operation: string, target: string) => any;
|
|
7
|
+
format?: string | object;
|
|
8
|
+
allowFiltering?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface IActionButton {
|
|
11
|
+
icon: JSX.Element;
|
|
12
|
+
visible: boolean;
|
|
13
|
+
disabled: boolean;
|
|
14
|
+
hint: string;
|
|
15
|
+
onClick?: () => void;
|
|
16
|
+
}
|
|
17
|
+
export interface IMasterDetailOptions {
|
|
18
|
+
enabled?: boolean;
|
|
19
|
+
component?: (row: any) => JSX.Element;
|
|
20
|
+
autoExpandAll?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface IMasterDetailFeatures {
|
|
23
|
+
allowActions?: boolean;
|
|
24
|
+
createFilter?: boolean;
|
|
25
|
+
showCheckbox?: boolean;
|
|
26
|
+
exportEnabled?: boolean;
|
|
27
|
+
toolbarItems?: React.ReactNode[];
|
|
28
|
+
dynamicHeight?: boolean;
|
|
29
|
+
columnChooser?: boolean;
|
|
30
|
+
maxHeight?: number;
|
|
31
|
+
detailData?: any[];
|
|
32
|
+
exportProps?: IExportOptions;
|
|
33
|
+
actionColumnEnable?: boolean;
|
|
34
|
+
detailGridColumns?: IColumnOptions[];
|
|
35
|
+
pageSize?: number;
|
|
36
|
+
showSearchPanel?: boolean;
|
|
37
|
+
masterActionButtonGroup?: IActionButton[];
|
|
38
|
+
detailToolbar?: (e: any) => void;
|
|
39
|
+
}
|
|
40
|
+
export interface IMasterDetailDatas {
|
|
41
|
+
detailData?: any;
|
|
42
|
+
detailGridColumns?: IColumnOptions[];
|
|
43
|
+
}
|
|
44
|
+
export interface IMasterDetailGridProps {
|
|
45
|
+
columns?: IColumnOptions[];
|
|
46
|
+
dataSource: any[];
|
|
47
|
+
masterDetailFeatures?: IMasterDetailFeatures;
|
|
48
|
+
masterDetailData?: IMasterDetailDatas;
|
|
49
|
+
}
|
|
50
|
+
export interface IButtonGrouOptions extends Omit<IButtonProps, "name"> {
|
|
51
|
+
name?: "cancel" | "delete" | "edit" | "save" | "undelete" | "unmap";
|
|
52
|
+
type?: ButtonType;
|
|
53
|
+
label?: string;
|
|
54
|
+
onclick?: React.MouseEventHandler<HTMLElement>;
|
|
55
|
+
actionPermission?: boolean;
|
|
56
|
+
icon: any;
|
|
57
|
+
}
|
|
58
|
+
export interface IScrollingOptions extends Partial<IScrollingProps> {
|
|
59
|
+
}
|
|
60
|
+
export declare type IActionButtonsTooltipType = "raw" | "styled";
|
|
61
|
+
export interface ISummaryRowOptions {
|
|
62
|
+
summaryLoadedDataLabel?: string;
|
|
63
|
+
summaryTotalDataLabel?: string;
|
|
64
|
+
summaryFilteredDataLabel?: string;
|
|
65
|
+
summaryItems?: ISummaryProps[];
|
|
66
|
+
summaryTotalCount?: number;
|
|
67
|
+
summaryTotalPageCountLabel?: string;
|
|
68
|
+
showSumInSummary?: boolean;
|
|
69
|
+
showAvgInSummary?: boolean;
|
|
70
|
+
showCountInSummary?: boolean;
|
|
71
|
+
showMaxInSummary?: boolean;
|
|
72
|
+
showMinInSummary?: boolean;
|
|
73
|
+
summarySumLabel?: string;
|
|
74
|
+
summaryAvgLabel?: string;
|
|
75
|
+
summaryMinLabel?: string;
|
|
76
|
+
summaryMaxLabel?: string;
|
|
77
|
+
summaryCountLabel?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface IEditingOptions extends Omit<IEditingProps, "mode"> {
|
|
80
|
+
mode?: "row" | "cell" | "batch";
|
|
81
|
+
formItems?: any[];
|
|
82
|
+
title?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface IExportOptions extends Partial<IExportProps> {
|
|
85
|
+
enabled: boolean;
|
|
86
|
+
allowExportSelectedData?: boolean;
|
|
87
|
+
fileName?: string;
|
|
88
|
+
selectedText?: string;
|
|
89
|
+
activeText?: string;
|
|
90
|
+
passiveText?: string;
|
|
91
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ import OdsBasicDataGrid from "./components/devextreme/OdsBasicDataGrid/OdsBasicD
|
|
|
54
54
|
import OdsTransfer from "./components/devextreme/OdsTransfer";
|
|
55
55
|
import OdsServerSideDatagrid from "./components/devextreme/OdsServerSideDatagrid/OdsServerSideDatagrid";
|
|
56
56
|
import OdsInlineEditDataGrid from "./components/devextreme/OdsInlineEditDataGrid/OdsInlineEditDataGrid";
|
|
57
|
+
import OdsMasterDetailDataGrid from "./components/devextreme/OdsMasterDetailDataGrid/OdsMasterDetailDataGrid";
|
|
57
58
|
export { OdsButton };
|
|
58
59
|
export { OdsInput };
|
|
59
60
|
export { OdsDropdownButton };
|
|
@@ -89,6 +90,7 @@ export { OdsTimeline };
|
|
|
89
90
|
export { OdsRangeTimepicker };
|
|
90
91
|
export { OdsInputNumber };
|
|
91
92
|
export { OdsPhoneInput };
|
|
93
|
+
export { OdsMasterDetailDataGrid };
|
|
92
94
|
export { OdsText };
|
|
93
95
|
export { OdsTitle };
|
|
94
96
|
export { OdsParagraph };
|
package/dist/index.js
CHANGED
|
@@ -32975,7 +32975,7 @@ var ExportDataGridToExcel = function ExportDataGridToExcel(_ref) {
|
|
|
32975
32975
|
horizontal: 'left'
|
|
32976
32976
|
};
|
|
32977
32977
|
}
|
|
32978
|
-
if (gridCell.
|
|
32978
|
+
if (gridCell.column.dataField.toLowerCase() === "isactive") {
|
|
32979
32979
|
excelCell.value = gridCell.value === true ? "" + activeText : "" + passiveText;
|
|
32980
32980
|
}
|
|
32981
32981
|
}
|
|
@@ -33707,6 +33707,7 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
|
|
|
33707
33707
|
key: col.dataField
|
|
33708
33708
|
}, col, {
|
|
33709
33709
|
minWidth: 50,
|
|
33710
|
+
width: 160,
|
|
33710
33711
|
cssClass: col.cssClass + " " + (hasFastUpdate ? "grid-cell-disable-text-selection" : "")
|
|
33711
33712
|
}), col.lookUp && React__default.createElement(devextremeReact.Lookup, Object.assign({}, col.lookUp)), (col.dataField === "IsActive" || col.dataField === "isActive") && React__default.createElement(DataGrid.HeaderFilter, {
|
|
33712
33713
|
dataSource: [{
|
|
@@ -34527,6 +34528,11 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
34527
34528
|
var currentPageIndex = dataGridInstance.pageCount();
|
|
34528
34529
|
var currentTotalCount = currentPageIndex == 0 ? 50 : dataGridInstance.totalCount();
|
|
34529
34530
|
var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
|
|
34531
|
+
if (filterApplied) {
|
|
34532
|
+
totalFilteredCount.current = currentTotalCount;
|
|
34533
|
+
} else {
|
|
34534
|
+
totalUnfilteredCount.current = currentTotalCount;
|
|
34535
|
+
}
|
|
34530
34536
|
if ((!filterApplied && currentPageIndex == 1 && currentTotalCount != totalUnfilteredCount.current || lastPageIndexRef.current !== currentPageIndex) && newData && newData.length > 0) {
|
|
34531
34537
|
setCurrentPage(currentPageIndex);
|
|
34532
34538
|
setCurrentPageSize(dataGridInstance.pageSize());
|
|
@@ -34536,16 +34542,6 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
34536
34542
|
});
|
|
34537
34543
|
lastPageIndexRef.current = currentPageIndex;
|
|
34538
34544
|
}
|
|
34539
|
-
if (currentTotalCount > 0) {
|
|
34540
|
-
if (filterApplied) {
|
|
34541
|
-
totalFilteredCount.current = currentTotalCount;
|
|
34542
|
-
} else {
|
|
34543
|
-
totalUnfilteredCount.current = currentTotalCount;
|
|
34544
|
-
}
|
|
34545
|
-
if (!filterApplied && totalFilteredCount.current === 0) {
|
|
34546
|
-
totalFilteredCount.current = totalUnfilteredCount.current;
|
|
34547
|
-
}
|
|
34548
|
-
}
|
|
34549
34545
|
}, [props.columns, filterApplied]);
|
|
34550
34546
|
var handleOptionChanged = React.useCallback(function (e) {
|
|
34551
34547
|
var dataGrid = props.dataGridRef.current.instance;
|
|
@@ -34766,7 +34762,8 @@ var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
|
|
|
34766
34762
|
return React__default.createElement(DataGrid.Column, Object.assign({
|
|
34767
34763
|
key: col.dataField
|
|
34768
34764
|
}, col, {
|
|
34769
|
-
minWidth: 10
|
|
34765
|
+
minWidth: 10,
|
|
34766
|
+
width: 160
|
|
34770
34767
|
}), col.lookUp && React__default.createElement(devextremeReact.Lookup, Object.assign({}, col.lookUp)), col.dataField === "IsActive" && React__default.createElement(DataGrid.HeaderFilter, {
|
|
34771
34768
|
dataSource: [{
|
|
34772
34769
|
text: "Active",
|
|
@@ -34929,17 +34926,17 @@ var useOnContentReadyHandler = function useOnContentReadyHandler(columns, lastPa
|
|
|
34929
34926
|
var currentPageIndex = dataGridInstance.pageIndex();
|
|
34930
34927
|
var currentTotalCount = dataGridInstance.totalCount();
|
|
34931
34928
|
var newData = dataGridInstance === null || dataGridInstance === void 0 ? void 0 : (_dataGridInstance$get = dataGridInstance.getDataSource()) === null || _dataGridInstance$get === void 0 ? void 0 : _dataGridInstance$get.items();
|
|
34929
|
+
if (filterApplied) {
|
|
34930
|
+
totalFilteredCount.current = currentTotalCount;
|
|
34931
|
+
} else {
|
|
34932
|
+
totalUnfilteredCount.current = currentTotalCount;
|
|
34933
|
+
}
|
|
34934
|
+
if (!filterApplied && totalFilteredCount.current === 0) {
|
|
34935
|
+
totalFilteredCount.current = totalUnfilteredCount.current;
|
|
34936
|
+
}
|
|
34932
34937
|
if (lastPageIndexRef.current !== currentPageIndex && newData && newData.length > 0) {
|
|
34933
34938
|
setCurrentPage(currentPageIndex);
|
|
34934
34939
|
setCurrentPageSize(dataGridInstance.pageSize());
|
|
34935
|
-
if (filterApplied) {
|
|
34936
|
-
totalFilteredCount.current = currentTotalCount;
|
|
34937
|
-
} else {
|
|
34938
|
-
totalUnfilteredCount.current = currentTotalCount;
|
|
34939
|
-
}
|
|
34940
|
-
if (!filterApplied && totalFilteredCount.current === 0) {
|
|
34941
|
-
totalFilteredCount.current = totalUnfilteredCount.current;
|
|
34942
|
-
}
|
|
34943
34940
|
setUpdateTrigger(function (prev) {
|
|
34944
34941
|
return !prev;
|
|
34945
34942
|
});
|
|
@@ -35187,7 +35184,8 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
|
|
|
35187
35184
|
return React__default.createElement(DataGrid.Column, Object.assign({
|
|
35188
35185
|
key: col.dataField
|
|
35189
35186
|
}, col, {
|
|
35190
|
-
minWidth: 10
|
|
35187
|
+
minWidth: 10,
|
|
35188
|
+
width: 160
|
|
35191
35189
|
}), col.lookup && React__default.createElement(DataGrid.Lookup, Object.assign({}, col.lookup)), col.headerFilter && React__default.createElement(DataGrid.HeaderFilter, Object.assign({}, col.headerFilter, {
|
|
35192
35190
|
visible: true,
|
|
35193
35191
|
allowSearch: true
|
|
@@ -35279,6 +35277,193 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
|
|
|
35279
35277
|
}, React__default.createElement("p", null, renderTotal())));
|
|
35280
35278
|
};
|
|
35281
35279
|
|
|
35280
|
+
var useOnActionCellRenderHandler$1 = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
|
|
35281
|
+
var onActionCellRender = React.useCallback(function (cellData) {
|
|
35282
|
+
if (!cellData || !visibleActionButtons) return null;
|
|
35283
|
+
var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
|
|
35284
|
+
return {
|
|
35285
|
+
icon: button.icon,
|
|
35286
|
+
onClick: function onClick(event) {
|
|
35287
|
+
var customEvent = {
|
|
35288
|
+
column: cellData.column,
|
|
35289
|
+
component: cellData.component,
|
|
35290
|
+
element: cellData.element,
|
|
35291
|
+
event: event,
|
|
35292
|
+
model: cellData.data,
|
|
35293
|
+
row: cellData.row
|
|
35294
|
+
};
|
|
35295
|
+
button.onClick(customEvent);
|
|
35296
|
+
}
|
|
35297
|
+
};
|
|
35298
|
+
}) : [];
|
|
35299
|
+
var buttonElements = visibleActionButtons.map(function (buttonItem) {
|
|
35300
|
+
var isVisible = typeof buttonItem.visible === "function" ? buttonItem.visible({
|
|
35301
|
+
column: cellData.column,
|
|
35302
|
+
component: cellData.component,
|
|
35303
|
+
row: cellData.row
|
|
35304
|
+
}) : buttonItem.visible;
|
|
35305
|
+
return React__default.createElement(OdsDataGrdiRowButton, Object.assign({
|
|
35306
|
+
key: "action-button-" + buttonItem.name,
|
|
35307
|
+
name: buttonItem.name,
|
|
35308
|
+
hint: buttonItem.hint,
|
|
35309
|
+
visible: isVisible,
|
|
35310
|
+
size: "small",
|
|
35311
|
+
type: "text",
|
|
35312
|
+
disabled: buttonItem.actionPermission === undefined ? false : !buttonItem.actionPermission,
|
|
35313
|
+
icon: buttonItem.icon
|
|
35314
|
+
}, actionButtonsTooltipType === "styled" && {
|
|
35315
|
+
tooltip: buttonItem.hint
|
|
35316
|
+
}, {
|
|
35317
|
+
onClick: function onClick(event) {
|
|
35318
|
+
if (buttonItem.onClick) {
|
|
35319
|
+
var customEvent = {
|
|
35320
|
+
column: cellData.column,
|
|
35321
|
+
component: cellData.component,
|
|
35322
|
+
element: cellData.element,
|
|
35323
|
+
event: event,
|
|
35324
|
+
model: cellData.data,
|
|
35325
|
+
row: cellData.row
|
|
35326
|
+
};
|
|
35327
|
+
buttonItem.onClick(customEvent);
|
|
35328
|
+
}
|
|
35329
|
+
}
|
|
35330
|
+
}));
|
|
35331
|
+
});
|
|
35332
|
+
if (kebabMenuButtons.length > 0) {
|
|
35333
|
+
buttonElements.push(React__default.createElement(OdsDropdown, {
|
|
35334
|
+
key: "dropdown-" + (cellData.rowIndex || cellData.data.ID),
|
|
35335
|
+
menuItems: kebabMenuButtons
|
|
35336
|
+
}, React__default.createElement(OdsDataGrdiRowButton, {
|
|
35337
|
+
type: "text",
|
|
35338
|
+
icon: React__default.createElement(DynamicIcon, {
|
|
35339
|
+
iconName: "kebabMenu"
|
|
35340
|
+
})
|
|
35341
|
+
})));
|
|
35342
|
+
}
|
|
35343
|
+
return React__default.createElement(React__default.Fragment, null, buttonElements);
|
|
35344
|
+
}, [visibleActionButtons]);
|
|
35345
|
+
return onActionCellRender;
|
|
35346
|
+
};
|
|
35347
|
+
|
|
35348
|
+
var useOnExportingHandler$1 = function useOnExportingHandler(exportProps, getSummary, callback) {
|
|
35349
|
+
var onExporting = React.useCallback(function (e) {
|
|
35350
|
+
if (exportProps) {
|
|
35351
|
+
var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
|
|
35352
|
+
ExportDataGridToExcel({
|
|
35353
|
+
gridComponent: e.component,
|
|
35354
|
+
baseFileName: (_exportProps$fileName = exportProps.fileName) != null ? _exportProps$fileName : "DataGrid",
|
|
35355
|
+
selectedText: exportProps.selectedText,
|
|
35356
|
+
getSummary: getSummary,
|
|
35357
|
+
selectedRowsOnly: e.selectedRowsOnly,
|
|
35358
|
+
activeText: (_exportProps$activeTe = exportProps.activeText) != null ? _exportProps$activeTe : "Active",
|
|
35359
|
+
passiveText: (_exportProps$passiveT = exportProps.passiveText) != null ? _exportProps$passiveT : "Passive"
|
|
35360
|
+
});
|
|
35361
|
+
}
|
|
35362
|
+
if (callback) {
|
|
35363
|
+
callback(e);
|
|
35364
|
+
}
|
|
35365
|
+
}, [getSummary]);
|
|
35366
|
+
return onExporting;
|
|
35367
|
+
};
|
|
35368
|
+
|
|
35369
|
+
var MasterDetailDataGrid = function MasterDetailDataGrid(_ref) {
|
|
35370
|
+
var columns = _ref.columns,
|
|
35371
|
+
dataSource = _ref.dataSource,
|
|
35372
|
+
_ref$masterDetailFeat = _ref.masterDetailFeatures,
|
|
35373
|
+
masterDetailFeatures = _ref$masterDetailFeat === void 0 ? {} : _ref$masterDetailFeat,
|
|
35374
|
+
masterDetailData = _ref.masterDetailData;
|
|
35375
|
+
var visibleActionButtons = React.useMemo(function () {
|
|
35376
|
+
if (masterDetailFeatures.masterActionButtonGroup && masterDetailFeatures.masterActionButtonGroup.length >= 2) {
|
|
35377
|
+
return masterDetailFeatures.masterActionButtonGroup.slice(0, 2);
|
|
35378
|
+
}
|
|
35379
|
+
return masterDetailFeatures.masterActionButtonGroup || [];
|
|
35380
|
+
}, [masterDetailFeatures.masterActionButtonGroup]);
|
|
35381
|
+
var onActionCellRender = useOnActionCellRenderHandler$1(visibleActionButtons, masterDetailFeatures.masterActionButtonGroup);
|
|
35382
|
+
var getTotalDataCount = function getTotalDataCount() {
|
|
35383
|
+
return "" + dataSource.length;
|
|
35384
|
+
};
|
|
35385
|
+
var handleExporting = useOnExportingHandler$1(masterDetailFeatures.exportProps, getTotalDataCount);
|
|
35386
|
+
var effectiveColumns = (masterDetailData === null || masterDetailData === void 0 ? void 0 : masterDetailData.detailGridColumns) || columns || (dataSource[0] ? Object.keys(dataSource[0]).map(function (key) {
|
|
35387
|
+
return {
|
|
35388
|
+
dataField: key,
|
|
35389
|
+
caption: key.charAt(0).toUpperCase() + key.slice(1),
|
|
35390
|
+
allowFiltering: true
|
|
35391
|
+
};
|
|
35392
|
+
}) : []);
|
|
35393
|
+
return React__default.createElement(DataGrid__default, {
|
|
35394
|
+
style: {
|
|
35395
|
+
maxHeight: masterDetailFeatures.maxHeight ? masterDetailFeatures.maxHeight + "px" : "400px",
|
|
35396
|
+
overflow: "auto"
|
|
35397
|
+
},
|
|
35398
|
+
dataSource: dataSource,
|
|
35399
|
+
showBorders: true,
|
|
35400
|
+
columnAutoWidth: true,
|
|
35401
|
+
allowColumnReordering: true,
|
|
35402
|
+
selection: {
|
|
35403
|
+
mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
|
|
35404
|
+
},
|
|
35405
|
+
paging: {
|
|
35406
|
+
enabled: true,
|
|
35407
|
+
pageSize: masterDetailFeatures.pageSize || 20
|
|
35408
|
+
},
|
|
35409
|
+
filterRow: {
|
|
35410
|
+
visible: masterDetailFeatures.createFilter
|
|
35411
|
+
},
|
|
35412
|
+
onExporting: handleExporting,
|
|
35413
|
+
onToolbarPreparing: masterDetailFeatures.detailToolbar
|
|
35414
|
+
}, effectiveColumns.map(function (col) {
|
|
35415
|
+
return React__default.createElement(DataGrid.Column, Object.assign({
|
|
35416
|
+
key: col.dataField
|
|
35417
|
+
}, col, {
|
|
35418
|
+
headerFilter: {
|
|
35419
|
+
visible: col.allowFiltering
|
|
35420
|
+
}
|
|
35421
|
+
}));
|
|
35422
|
+
}), React__default.createElement(DataGrid.ColumnChooser, {
|
|
35423
|
+
enabled: masterDetailFeatures.columnChooser,
|
|
35424
|
+
mode: "select"
|
|
35425
|
+
}, React__default.createElement(DataGrid.Position, {
|
|
35426
|
+
my: "right top",
|
|
35427
|
+
at: "right bottom",
|
|
35428
|
+
of: document.querySelector("." + "props.dataGridPageName") ? "." + "props.dataGridPageName" + " .dx-datagrid-column-chooser-button" : ".dx-datagrid-column-chooser-button"
|
|
35429
|
+
}), React__default.createElement(DataGrid.ColumnChooserSearch, {
|
|
35430
|
+
enabled: true,
|
|
35431
|
+
editorOptions: {
|
|
35432
|
+
placeholder: ""
|
|
35433
|
+
}
|
|
35434
|
+
}), React__default.createElement(DataGrid.HeaderFilter, {
|
|
35435
|
+
visible: true
|
|
35436
|
+
}), React__default.createElement(DataGrid.ColumnChooserSelection, {
|
|
35437
|
+
allowSelectAll: true,
|
|
35438
|
+
selectByClick: true,
|
|
35439
|
+
recursive: true
|
|
35440
|
+
})), (masterDetailFeatures === null || masterDetailFeatures === void 0 ? void 0 : masterDetailFeatures.exportEnabled) && React__default.createElement(DataGrid.Export, Object.assign({}, masterDetailFeatures.exportProps)), masterDetailFeatures.actionColumnEnable && React__default.createElement(DataGrid.Column, {
|
|
35441
|
+
dataField: "Actions",
|
|
35442
|
+
caption: "",
|
|
35443
|
+
minWidth: 10,
|
|
35444
|
+
width: 160,
|
|
35445
|
+
fixed: true,
|
|
35446
|
+
allowSorting: false,
|
|
35447
|
+
type: "buttons",
|
|
35448
|
+
showInColumnChooser: false,
|
|
35449
|
+
cellRender: onActionCellRender
|
|
35450
|
+
}), React__default.createElement(DataGrid.FilterRow, {
|
|
35451
|
+
visible: masterDetailFeatures.createFilter
|
|
35452
|
+
}), React__default.createElement(DataGrid.Selection, {
|
|
35453
|
+
mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
|
|
35454
|
+
}), React__default.createElement(DataGrid.SearchPanel, {
|
|
35455
|
+
visible: masterDetailFeatures.showSearchPanel
|
|
35456
|
+
}), React__default.createElement(DataGrid.Toolbar, null, React__default.createElement(DataGrid.Item, {
|
|
35457
|
+
name: "searchPanel"
|
|
35458
|
+
}), React__default.createElement(DataGrid.Item, {
|
|
35459
|
+
name: "columnChooserButton",
|
|
35460
|
+
cssClass: "toolbarPanelItems"
|
|
35461
|
+
}), React__default.createElement(DataGrid.Item, {
|
|
35462
|
+
name: "exportButton",
|
|
35463
|
+
cssClass: "toolbarPanelItems"
|
|
35464
|
+
})));
|
|
35465
|
+
};
|
|
35466
|
+
|
|
35282
35467
|
/**
|
|
35283
35468
|
* Checks if `value` is the
|
|
35284
35469
|
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
|
|
@@ -36957,6 +37142,7 @@ exports.OdsInput = OdsInput;
|
|
|
36957
37142
|
exports.OdsInputNumber = OdsInputNumber;
|
|
36958
37143
|
exports.OdsLink = OdsLink;
|
|
36959
37144
|
exports.OdsList = OdsList;
|
|
37145
|
+
exports.OdsMasterDetailDataGrid = MasterDetailDataGrid;
|
|
36960
37146
|
exports.OdsModal = OdsModal;
|
|
36961
37147
|
exports.OdsModalOld = OdsModalOld;
|
|
36962
37148
|
exports.OdsMultiSelect = OdsMultiSelect;
|